在UVM(Universal Verification Methodology)中,my_transaction生成随机激励,对激励的约束也在这里,my_transaction中声明的字段,就是发送出去的transaction中包含的信号;my_sequence创建my_transaction实例,启动my_transaction的随机化并将其发送给sequencer;sequencer对多个sequence(如果有的话)仲裁并发送给driver;driver将transaction中需要的信号拆成dut要求的格式并传给dut。以下是详细过程:
-
定义
my_transaction:my_transaction类通常继承自uvm_sequence_item或更具体的某个UVM事务基类。- 在这个类中,使用
rand关键字声明的字段表示需要随机化的信号。 - 这些随机化字段代表了将被传递给DUT(被测设备)的激励数据。
-
随机化过程:
- 在
my_sequence的body任务或其他相关方法中,通过调用create_item、start_item、finish_item等UVM宏来创建和准备my_transaction实例。 - 在这个过程中,
my_transaction实例中的rand字段会被UVM框架随机化。 - 随机化的过程可能受到在
my_transaction类中定义的约束(constraints)的限制。
- 在
-
传递给
driver:- 随机化后的
my_transaction实例通过my_sequence和my_sequencer的协作被传递给driver。 my_sequencer作为桥梁,负责将事务从sequence(即my_sequence)传递给driver。driver通过其seq_item_port接收来自sequencer的事务,并对其进行处理(如驱动到DUT的接口上)。
- 随机化后的
-
driver处理事务:driver接收到事务后,会从中提取出需要传递给DUT的信号。- 这些信号通常对应于
my_transaction中用rand字段随机化的信号。 driver根据这些信号生成相应的激励,并将其驱动到DUT的接口上。
3957

被折叠的 条评论
为什么被折叠?



