随笔分类 - 15.UVM
摘要:UVM工厂机制3问 1、注册在干啥 注册时添加的uvm_object_utils(class_name)或者uvm_component_utils(class_name)展开后有一条m_uvm_object_registry_internal的宏,这个宏定义了一个uvm_object_registr
阅读全文
摘要:UVM的用例选择机制run_test() 1、编写基于UVM的最简单代码 harness.v module harness(clk, rst); input clk; input rst; endmodule test_uvm.sv ```sv `include "uvm_pkg.sv" impor
阅读全文
摘要:UVM宏 1、注册宏 // 注册object类 `uvm_object_utils(类名) `uvm_object_parm_utils(类名) `uvm_object_utils_begin(类名) // 注册component类 `uvm_component_utils(类名) `uvm_com
阅读全文
摘要:UVM重要函数 1、get_full_name() 获取这个节点的完整层次,这函数在object中就有定义,但是在component类中进行了重载,实现输出从uvm_test_top到当前节点的路径(是通过执行m_set_full_name是保存路径在m_name中)。返回值如:env.agt.dr
阅读全文
摘要:TLM传输数据导致多线程访问同一个数据 原因 TLM发送数据跟mailbox类似,都是发送的引用,这样发送端和接收端的引用都指向同一个数据,这样就会出现发送端修改数据会影响到接收端,比如发送的时候数据时A,接收端接收后,发送端又修改了这个数据为B,就会导致接收端接收的是B。 举例 monitor发送
阅读全文
摘要:验证环境配置传递 tc配置env 继承关系: tc_base tc_base_bt tc_xx base_env xx_env base_env_cfg xx_env_cfg 在tc_base_bt的new函数中设置env和env_cfg的override tc_base中的build_phase例
阅读全文