UVM
簡時光℃
这个作者很懒,什么都没留下…
展开
-
uvm_sequence启动方法之start
uvm_sequence作为UVM的重要机制,在启动sequence时一种方法便是通过调用start任务来实现. 1.start任务 start任务的入口参数有4个:sequencer指定了xaction从哪个sqr发送出去,parent_sequence影响是否调用父类的pre_d...转载 2020-09-12 23:46:12 · 3147 阅读 · 0 评论 -
UVM之sequence的使用及其的task/function的执行顺序
#[tog]一.sequnece 的使用UVM中Driver,transaction,sequence,sequencer之间的关系。UVM将原来在Driver中的数据定义部分,单独拿出来成为Transaction,主要完成数据的randomize and constrained.在Transaction之上有增加一层sequence,它可以调用,控制同一类型的transaction。在UVM中增减component名叫sequencer,来留下与sequence的接口,并控制sequence的启转载 2020-09-12 23:44:53 · 5726 阅读 · 1 评论 -
UVM_启动流程
UVM中通过objection机制来控制验证平台的关闭。在每个phase中,UVM会检查是否有objection被提起(raise_objection),如果有,那么等待这个objection被撤销(drop_objection)后停止仿真;如果没有,则马上结束当前phase。ra...原创 2020-09-12 17:34:56 · 4741 阅读 · 0 评论 -
UVM-Phase机制
代码的书写顺序会影响代码的实现,在不同的时间做不同的事情,这是UVM phase的设计哲学,UVM phase提供了一个通用的TB phase 解决方案。支持显示的隐式的同步方案,运行时刻的线程控制和跳转。只要把代码填入对应的phase,这些代码就会自动执行。phase 的引入在很大程度上解决了代码顺序杂乱可能会引发的问题。它本质上是通过把代码顺序强制固定来实现这个目的的,如 build_phase 的代码一定在connect_phase之前执行 ,而 connect_phase的代码一定在 end_of_转载 2020-09-12 14:56:03 · 955 阅读 · 0 评论 -
UVM中启动sequence方法总结
方法有三:通过sequnce.start的方式启动通过`uvm_do系列宏来启动通过default sequence来启动下面简单地展开说明.通过sequence.start方式启动:start方法是“uvm_seuquence_base”类中的一个task。原型为:virtual task start (uvm_sequencer_base sequencer,uvm_sequence_base parent_sequence = null,int this_priority = -1,转载 2020-08-26 22:34:49 · 3810 阅读 · 0 评论 -
UVM——Callback机制(作用、使用步骤实例)
文章目录一、Callback机制的作用二、回调函数callback的使用步骤:三、代码code应用实例3.1.声明一个UVM callback空壳类3.2.在组件...转载 2020-08-23 21:23:34 · 4100 阅读 · 2 评论 -
UVM之callback
在UVM验证平台中,callback的最大用处就是提高验证平台的复用性。很多情况下,我们期望在一个项目中开发的验证平台能够用于另一个项目。但是,通常来说,完全复用是非常难实现的,两个不同的项目之间或多或少有一些差异。如果把两个项目不同的地方使用callback来做,而把相同的地方写成一个完整的env,这样复用时,env可以完全的复用,只要改变相关的callback即可。callback简介先来看一个最贱的callback函数。前面介绍过的mac_trransaction为例:这个transacti转载 2020-08-23 21:14:23 · 912 阅读 · 0 评论