UVM验证
文章平均质量分 88
学的乱七八糟的白小杨
这个作者很懒,什么都没留下…
展开
-
RAL寄存器模型
UVM 寄存器模型的本质就是重新定义了验证平台与DUT 的寄存器接您证人员更好地组织及配置寄存器,简化流程、减少工作量。 uvm_reg_field:这是寄存器模型中的最小单位。uvm_reg:它比 uvm_reg_fied高一个级别,但是依然是比较小的单位。一个寄存器中至少包含一个uvm_reg_field.uvm_reg_block :它是一个比较大的单位,在其中可以加入许多的uvm_reg.也可以加入其他的uvm_reg_ block。一个寄存器模型中至少包含一个 uvm _reg_block。uv原创 2023-10-08 11:29:36 · 91 阅读 · 1 评论 -
TLM通信
。如 my_transaction 就是把一个MAC 里的各个字段封装在了一起。1)在这程中,A 称为“发起者”,而B 称为“目标”。A具有的端口(用方框表示)称为 PORTB 的端口(用圆圈表示)称为 EXPORT。这个过程中,。2)。在这个过程中, A 依然是发起者”,B 依然是“目标”,A上的端口依然是 PORT,而B 上的端口依然是 EXPORT。这过程中,。到这里,读者应该意识到,而不是数据流。原创 2023-10-07 22:07:01 · 411 阅读 · 1 评论 -
Callback机制
1.定义一个A类。2.声明一个A _pool类。3.在要预留 callback 函数/任务接口的类中调用uvm_register_cb 宏。4.在要调用 callback 函数/任务接口的函数/任务中,使用uvm _do _callbacks宏。原创 2023-10-04 14:57:59 · 68 阅读 · 1 评论 -
factory机制及重载
factory 机制的本质在没有factory 机制之前,要创建一个类的实例,只能使用 new 函数但是有了factory 机制之后,除了使用 new 函数外,还可以根据类名创建这个类的一个实例;另外,还可以在创建类的实例时根据是否有重载记录来决定是创建原始的类,还是创建重载的类.所以,从本质上来看,factory 机制其实是对 SystemVerilog 中 new 函数的重载。因为创建重载的类的实例。这个原始的 new 函数实在是太简单了,功能太少了。原创 2023-10-03 16:44:36 · 87 阅读 · 1 评论 -
config_db机制
config_db 机制用于在 UVM 验证平台间传递参数。一个component内可以通过 get_full_name()获取这个component 的路径。原创 2023-10-03 16:37:44 · 144 阅读 · 1 评论 -
UVM的信息打印机制
UVM通过冗会度级别的设管提高了仿日志的可读性。在打印信息之前。UVM会较要显示信息的冗余度级别与默认的冗余度阈值,如果小于等于阀值,就会显示,否则不会显示。默认的冗余度值是 UVM_MEDIUM,所有低于等于UVM_MEDIUM(如UVM_LOW)的信息都会被打印出来。原创 2023-10-03 15:29:44 · 763 阅读 · 1 评论 -
field automation 机制
这里一共出现了 15 种。联合数组有两大识别标志,一是索引的类型,二是存储数据类型。在这一系列 uvm_field 系列宏中,出现的第一个类型是存储数据类型,第二个类型是索引类型,如uvm field_aa_int_string 用于声明那些存储的数据是int,而其索引是 string型的联合数组。原创 2023-10-03 14:24:34 · 180 阅读 · 1 评论 -
sequence 机制
从 driver 中剥离激励产生功能, 使用 sequence 机制之后,在不同的测试用例中,将不同的sequence 设置成sequencer 的 main_phase 的 default_sequence。当sequencer 执行到 main phase 时,发现有default_sequence,那么它就启动 sequence.原创 2023-10-01 22:35:22 · 130 阅读 · 0 评论 -
objection 机制以及domain
在第2章的例子中,最初是在 driver 中raise_objection,但是事实上,在 driver中raise_objection 的时刻并不多。那么在进人 main phase 时,UVM 发现没有任何 objection 被提起,于是虽然 driver 中有一个延时 100个单位时间的代码,monitor 中有一个无限循环,UVM 也都不理会,它会直接跳转到 post main phase,假设进人 main_phase 的时刻为 0,那么进人 post_main.phase 的时刻还是为0。原创 2023-09-28 22:36:51 · 72 阅读 · 0 评论 -
UVM phase机制
UVM的设哲学就是在 build_phase 中做实例化的工作,driver 和 monitor 都是 agent 的成员变量、所以它们的实例化都要在 agent 的 build_phase 中执行。所谓深度优先,指的是如果 i_agt 的 build phase 执行完毕后,它接下来执行的是其孩子的 build_phase,如果孩子还有孩子,那么再继续执行下去,一直到整棵以 i_agt 为树根的UVM 子树的 build_phase 执行完毕,之后再执行i_agt 的兄弟的 build phase。原创 2023-09-28 16:23:40 · 67 阅读 · 0 评论