在将事务随机化并设置了数据值之后,它会使用“finish_item”发送给driver进行处理,finish_item应该被真正称为“EXECUTE_ITEM”。此时,driver获取句柄并执行它。一旦driver调用“item_done”,然后finish_item将返回并且事务将会被执行。 执行一个序列——The Driver(驱动器) Driver的代码相对简单,它从uvm_driver派生并...
execute_item(item):创建一个临时的seq用来执行传进来的item,并且sqr没有接收rsp的能力,会在driver返回超过限度的rsp后溢出,除非调用set_response_queue_error_report_disabled(); start_phase_sequence(uvm_phase phase):启动该sqr默认的seq,默认的seq可以是seq的实例化也可以是一个seq的object_wrapper,如果两者都存...
seqr_execute_item [-new_thread <0|1>] 在序列发生器中执行一个序列项。 f. 用户自定义调试命令 除了uvm_debug库附带的内置调试命令之外,用户还可以通过创建调试命令回调函数来创建自定义调试命令,用户可以在其中调用测试平台中的任何函数或任务。用户不必显式注册自定义调试命令。唯一需要的设置是创建调试命令回调...
我们在sequence中往driver发包时,最常用的方法就是使用uvm_do()系列宏,偶尔会使用方法start_item()和finish_item()的组合,极个别场景下会 使用`uvm_create()和`uvm_send()宏,极极个别场景下还会看到create_item()方法的使用,这些宏和方法有什么区别,各自使用场景有什么局限和注意事项,他们分别定义在了UVM源代码...
如图8所示,即执行到最后一个phase节点(m_successor.size() == 0表明这是最后一个节点)的execute_...
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 ...
uvm_transaction继承自uvm_object,添加了timing和recording接口,该类是uvm_sequence_item的基类。这个类提供了时间戳属性(timestamp properties),通知事件(notification events),和交易记录(transaction recording)支持。其子类uvm_sequence_item应当作为基类为所有用户定义的事务类型。
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_...
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 (), ...
☐ Create user-defined transaction classes by extending the class uvm_sequence_item. As opposed to extending class uvm_transaction, which cannot be used a sequence item. ☐ Try to minimize the number of distinct transaction classes. Use the same transaction class for...