- 博客(6)
- 收藏
- 关注
原创 不同的test case 如何合并覆盖率
在利用不同的test case 生产不同的覆盖率vdb文件的时候,由于test case的名字及module名不同,且灌输的激励也不一样,故生成的vdb文件也是不一样的。最后在用urg命令合并覆盖率的时候会提示某些模块无法合并,而且合并完了之后的总覆盖率还是很低(实际是没有合并起来)。2、以上表示将2和3的dut层次的覆盖率合并到1里面取,由于我们只需要统计dut层次的覆盖率,测试激励层的覆盖率无需统计。3、-map后面的dut是dut顶层的模块名,不是tb里面的实例化名称,否则也会报错。
2024-08-28 17:53:05
608
原创 UVM学习笔记--uvm_do宏干了啥?
除了uvm_do宏外,uvm_send宏、uvm_rand_send宏、uvm_create宏,其第一个参数都可以是sequence的指针。唯一例外的是start_item与finish_item,这两个任务的参数必须是transaction的指针。此系列一共有8个(do系列和do_on系列各4个),其实这8个系列宏最底层都是uvm_do_on_pri_with这个宏,其他7个都是对他的4个参数做了不同的固化后而形成,先看看他的参数定义。m_sequencer中。的指针,即在哪个sequencer上启动。
2024-04-15 18:58:58
2698
4
原创 UVM学习笔记--sequencer的lock和grab以及sequence的有效性
发现依然是无效状态,则继续调用wait_for_relevant。如果两个sequence都试图使用lock任务来获取sequencer的所有权则会如何呢?的所有权,比lock操作优先级更高,它几乎是一发出就拥有了sequencer的所有权。任务还是比较讲文明的,虽然它会插队,但是绝不会打断别人正在进行的事情。答:先获得所有权的sequence在执行完毕后才。执行完毕后才会将所有权交还给另外一个试图所有权的。函数 一样,在先获得所有权的sequence。的所有权将会如何呢?的所有权前,另外一个。
2024-04-15 12:10:51
637
1
原创 UVM学习笔记--在同一sequencer上启动多个sequence
因此,还必须设置seqr的仲裁算法:env.i_agt.sqr.set_arbitration(SEQ_ARB_STRICT_FIFO)或者env.i_agt.sqr.set_arbitration(SEQ_ARB_STRICT_RANDOM)。严格按照优先级的,当有多个同一优先级的sequence时,按照先入先出的顺序选择。严格按照优先级的,当有多个同一优先级的sequence时,随机从最高优先级中选择。设置优先级的本质即设置其内产生的transaction的优先级。的优先级是默认的优先级,即-1。
2024-04-15 11:17:33
1183
1
原创 UVM学习笔记--analysis 端口
2、这样的好处是在自己的覆盖率cov里面不用再定义一个analysis_imp端口,可以直接在env的connect_phase里面直接将定义的analysis_port(这个需要自己在相应的class里面定义)与cov的analysis_imp进行连接。,派生自uvm_component,但是没有过多扩展,仅仅加了一个analysis_imp(analysis_export),同时定义了一个纯虚函数write。因为它本身就是广播,不必等待与其相连的其他端口的响应,所以不存在阻塞和非阻塞。
2024-04-14 22:58:07
1068
1
空空如也
ADS7828读取数据问题
2025-02-27
如何用verdi进行混合编译
2024-09-24
Makefile变量传递
2024-08-28
如何在verdi里面将task的输入输出端口信号添加到波形
2024-08-27
关于atpg之后的仿真疑问
2023-09-19
用dc软件打开ddc文件的时候出错
2023-09-19
用dc打开.V文件提示语法错误
2023-09-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人