摘要:作用: 监测DUT的行为,driver负责把transaction级别的数据转变成DUT的端口级别,并驱动给DUT,monitor的行为与其相对,用于收集DUT的端口数据,并将其转换成transaction交给后续的组件如reference model,scoreboard等处理。 一些代码中用到的
阅读全文
摘要:env的作用: 实例化验证平台的各个组件,作为一个容器类,在这个容器里面实例化其他组件,然后再调用run_test时传递的参数就不再是my_driver,而是这个容器类,即让UVM自动创建这个容器类的实例。 所有env都应该派生自uvm_env,且与my_driver一样,容器类在仿真中也一直是存在
阅读全文
摘要:transaction概念: 可以简单地将transaction理解为一个包,在不同的验证平台中的transaction也不相同。 一个简单的transaction如下: 在这些代码中,其中dmac是48bit的以太网目的地址,smac是48bit的以太网源地址,ether_type是以太网类型,p
阅读全文
摘要:为了保证验证平台的可移植性,在根本上来说应该杜绝在验证平台中使用绝对路径 1.使用宏(这里不提) 2.使用interface 定义完interface之后,在top_tb中实例化DUT时就可以直接使用: 上面是在top_tb中使用interface,那如何在driver中使用interface呢?
阅读全文
摘要:先分析前面的: 上一节中虽然输出了"main_phase is called",但是"data is drived"并没有输出。但是既然进入了main_phase,应该会把这一整个任务执行完成才对,但是这里好像在执行的过程中被外力kill掉了? UVM中通过objection来控制验证平台的关闭 在
阅读全文
摘要:driver代码: 这里的factory机制被集成在了一个宏中:uvm_comphonent_utils。这个宏所做的事情非常多,其中之一就是将my_driver登记在UVM内部的一张表中,这张表是factory功能实现的基础。只要在定义一个新的类时使用这个宏,就相当于把这个类注册到了这个表中。 在
阅读全文
摘要:书中的DUT(待测设计)定义如下: 这个DUT的功能非常简单,通过rxd接收数据,再通过txd发送出去,其中rx_dv是接收的数据有效指示,tx_en是发送数据的有效指示。本章中的所有例子都是基于这个DUT. 验证平台中的所有组件都应该派生自UVM中的类。 比如UVM验证平台中的driver应该派生
阅读全文
摘要:使用pandas库中的iloc方法: https://blog.csdn.net/Bigboss7/article/details/118597351 (loc与iloc方法) 使用iloc方法可以提取某行或者某列: iloc[行:,列] 比如iloc[:,1]的意思就是提取第一列,iloc[1:3
阅读全文
摘要:描述: 现在我们有一个项目名,项目状态以及项目负责人统计的exl表格,第一列是项目名称,第二列是项目完成 状态,第三列是项目负责人。但是同一个项目可能有多个负责人,但是最开始的表格并没有将这几个负责人 合并起来放入同一行,所以这里就是为了将第一列相同的数据合并在一起,在owner中同时现实多个负责人
阅读全文
摘要:使用pandas库: pandas 相当于 python 中 excel:它使用表(也就是 dataframe),能在数据上做各种变换,但还有其他很多功能。 os库: 在使用之前都要先导入这个库(确保已经安装): 下面是一个csv文件转成exl文件的实例: 这个代码中定义了一个根据一定规则处理csv
阅读全文