08 2014 档案

摘要:代码的书写顺序会影响代码的实现,在不同的时间做不同的事情,这是UVM phase的设计哲学,UVM phase提供了一个通用的TB phase 解决方案。支持显示的隐式的同步方案,运行时刻的线程控制和跳转。只要把代码填入对应的phase,这些代码就会自动执行。phase 的引入在很大程度上解决了代码顺序杂乱可能会引发的问题。它本质上是通过把代码顺序强制固定来实现这个目的的,如 build_phas... 阅读全文
posted @ 2014-08-24 21:05 啊松 阅读(18206) 评论(1) 推荐(0)
摘要:override功能是UVM中一个比较重要的功能,这个功能也是在factory里面实现的,我们会在env或者具体的case中使用override功能。class case_x extends base_test; function void build_phase(uvm_phase phase); … set_type_override_by_type(my_dri... 阅读全文
posted @ 2014-08-06 21:07 啊松 阅读(10813) 评论(1) 推荐(1)
摘要:factory机制的一大特点就是根据类的名字来创建类的实例。factory 机制中根据类名来创建类的实例所用到的技术:一是参数化的类,二是静态变量和静态函数。这两者是factory机制实现的根本所在。UVM 中有两大关键类,uvm_object 和 uvm_component。一个 uvm_object 在定义时一般要调用 uvm_object_utils 宏,而一个 uvm_component ... 阅读全文
posted @ 2014-08-06 21:06 啊松 阅读(6229) 评论(0) 推荐(0)
摘要:从名字上面就知道,uvm_factory用来制造uvm_objects和component。在一个仿真过程中,只有一个factory的例化存在。用户定义的object和component types通过typedef或者宏在factory中注册,factory产生和保存轻量级的代理(proxy): 1. uvm_object_registry #(T,Tname) for objects ... 阅读全文
posted @ 2014-08-02 11:44 啊松 阅读(2128) 评论(1) 推荐(0)