![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UVM
better_xiaoxuan
Man needs his difficulties because they are necessary to enjoy success.
展开
-
UVM overwrite
`ifndef TEST_COLLECTION__SV `define TEST_COLLECTION__SV `include "router_env.sv" class test_base extends uvm_test; `uvm_component_utils(test_base) router_env env; function new(string原创 2016-10-16 15:21:56 · 1204 阅读 · 0 评论 -
SV run : Fatal: (SIGSEGV) Bad handle or reference.
SVTB编译并没有出错,一旦运行就会出现** Fatal: (SIGSEGV) Bad handle or reference. 错误指向了driver的new函数 错误原因:组件new的顺序错误,同时要注意new函数调用参数的申明。原错误代码rcvr = new("rcvr",sb.receiver_mbox, reg_io);drvr = new("drvr", gen.out_box,原创 2016-12-23 16:11:01 · 2689 阅读 · 0 评论 -
验证结构中IMonitor的作用
DUT 的 input 端口采用的monitor 是干嘛的呢?根据白书: 一,大型项目中,driver 根据协议发送数据,而monitor根据协议接收数据。如果driver和monitor由不同人实现,那么可以大大减少其中任意一方对协议理解的错误。二,便于复用???另外,我的一点理解是:用于判断是否真的将输入,打入了DUT。????就一般环境,IF与dri原创 2017-07-17 21:50:58 · 936 阅读 · 0 评论 -
Virtual sequence 和test 启动的关系
这是一个UVM的基本结构问题。sequecne的启动先理解一个sequence 的启动机制吧。白书第二章有讲解。 对于一个sequence,在环境中的任意一处实际调用sequence.start就可以启动啦。 但是一般会在前后加上raise/drop_objection().这就又是,objection机制了,在程序进入到某一个phase时,UVM会收集这个phase 所有的objection,原创 2017-07-30 18:11:50 · 1692 阅读 · 0 评论 -
UVM-regmodel
为什么要用reg model?依据白书,寄存器模型是为了方便环境中组件、如refence model 或 scoreboard 等对寄存器的操控而设定的组件。例如从ref model中向DUT读值的时候,就必须采取前门访问,必须考虑两个问题1,如何操纵参考模型来控制发送启动sequence,以读取reg的值?A:设置全局事件,在refmodel 中触发这一事件,在virtu原创 2017-07-18 14:12:54 · 1970 阅读 · 0 评论