在将事务随机化并设置了数据值之后,它会使用“finish_item”发送给driver进行处理,finish_item应该被真正称为“EXECUTE_ITEM”。此时,driver获取句柄并执行它。一旦driver调用“item_done”,然后finish_item将返回并且事务将会被执行。 执行一个序列——The Driver(驱动器) Driver的代码相对简单,它从uvm_driver派生并...
seqr_execute_item [-new_thread <0|1>] 在序列发生器中执行一个序列项。 f. 用户自定义调试命令 除了uvm_debug库附带的内置调试命令之外,用户还可以通过创建调试命令回调函数来创建自定义调试命令,用户可以在其中调用测试平台中的任何函数或任务。用户不必显式注册自定义调试命令。唯一需要的设置是创建调试命令回调...
8.task uvm_execute(item, ...); // can use the `uvm_do macros as well start_item(item); item.randomize(); finish_item(item); item.end_event.wait_on(); // get_response(rsp, item.get_transaction_id()); //if needed endtask 9. A simple two-stage pipeline driver that can execut...
uvm_transaction uvm_transaction继承自uvm_object,添加了timing和recording接口,该类是uvm_sequence_item的基类。这个类提供了时间戳属性(timestamp properties),通知事件(notification events),和交易记录(transaction recording)支持。其子类uvm_sequence_item应当作为基类为所有用户定义的事务类型。 //---///CLASS: uvm...
model都是直接派生自uvm_component。reference model的作用就是模仿DUT,完成与DUT相同的功能。DUT是用Verilog写成的时序电路,而reference model则可以直接使用SystemVerilog高级语言的特性,同时还可以通过DPI等接口调用其他语言来完成与DUT相同的功能。 UVM中还有一个比较常用的元素uvm_sequence_item,它不构成UVM树 《UVM实...
4.6.1 UVM中TLM的关键概念4.6.1.1 对事务建模在UVM中, 从uvm_sequence_item继承而来的任何类都是事务。用户根据需要定义事务类的字段和方法,用来在验证环境中不同组件之间进行信息交换。例如,一个简单的包如下所示:1. class simple_packet extends uvm_sequence_item;2. rand int src_addr;3. rand int dst_...
item.read_data=read_data;re<=0;end we<=0;endendtask:execute '''The Monitor''' 代码语言:javascript 复制 task sfr_monitor::run_phase(uvm_phase phase);sfr_seq_item item;forever begin item=sfr_seq_item::type_id::create("item");SFR.monitor...
虽然通常driver会负责正常的硬件同步,但sequence运行过程中可能需要与硬件事件同步,例如边界信号的转换或复位事件的结束。 不应该去修改driver然后为sequence_item添加一个新的字段,而是建议在包含指向virtual interface的指针的配置对象中实现 wait_for_hardware_event 方法。
After the transaction has been randomized, and the data values set, it is sent to the driver for processing using finish_item. Finish_item should really be called execute_item. At this time, the driver gets the transaction handle and will execute it. Once the driver calls item_done (), ...
parent_seq.post_do(item) (func) / Attempting to execute a sequence viastart_item/finish_itemwill produce a run-time error. Summary uvm_sequence_base The uvm_sequence_base class provides the interfaces needed to create streams of sequence items and/or other sequences. ...