随笔分类 -  15.UVM

摘要:UVM工厂机制3问 1、注册在干啥 注册时添加的uvm_object_utils(class_name)或者uvm_component_utils(class_name)展开后有一条m_uvm_object_registry_internal的宏,这个宏定义了一个uvm_object_registr 阅读全文
posted @ 2023-09-25 10:36 下夕阳 阅读(61) 评论(0) 推荐(0) 编辑
摘要: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 阅读全文
posted @ 2023-09-25 10:31 下夕阳 阅读(680) 评论(0) 推荐(0) 编辑
摘要:UVM宏 1、注册宏 // 注册object类 `uvm_object_utils(类名) `uvm_object_parm_utils(类名) `uvm_object_utils_begin(类名) // 注册component类 `uvm_component_utils(类名) `uvm_com 阅读全文
posted @ 2023-09-13 10:55 下夕阳 阅读(33) 评论(0) 推荐(0) 编辑
摘要:UVM重要函数 1、get_full_name() 获取这个节点的完整层次,这函数在object中就有定义,但是在component类中进行了重载,实现输出从uvm_test_top到当前节点的路径(是通过执行m_set_full_name是保存路径在m_name中)。返回值如:env.agt.dr 阅读全文
posted @ 2023-09-13 10:53 下夕阳 阅读(108) 评论(0) 推荐(0) 编辑
摘要:TLM传输数据导致多线程访问同一个数据 原因 TLM发送数据跟mailbox类似,都是发送的引用,这样发送端和接收端的引用都指向同一个数据,这样就会出现发送端修改数据会影响到接收端,比如发送的时候数据时A,接收端接收后,发送端又修改了这个数据为B,就会导致接收端接收的是B。 举例 monitor发送 阅读全文
posted @ 2021-12-14 23:43 下夕阳 阅读(66) 评论(0) 推荐(0) 编辑
摘要:验证环境配置传递 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例 阅读全文
posted @ 2021-12-14 23:36 下夕阳 阅读(253) 评论(0) 推荐(0) 编辑