【UVM】生成激励并传给dut的过程

在UVM(Universal Verification Methodology)中,my_transaction生成随机激励,对激励的约束也在这里,my_transaction中声明的字段,就是发送出去的transaction中包含的信号;my_sequence创建my_transaction实例,启动my_transaction的随机化并将其发送给sequencer;sequencer对多个sequence(如果有的话)仲裁并发送给driver;driver将transaction中需要的信号拆成dut要求的格式并传给dut。以下是详细过程:

  1. 定义my_transaction

    • my_transaction类通常继承自uvm_sequence_item或更具体的某个UVM事务基类。
    • 在这个类中,使用rand关键字声明的字段表示需要随机化的信号。
    • 这些随机化字段代表了将被传递给DUT(被测设备)的激励数据。
  2. 随机化过程

    • my_sequencebody任务或其他相关方法中,通过调用create_itemstart_itemfinish_item等UVM宏来创建和准备my_transaction实例。
    • 在这个过程中,my_transaction实例中的rand字段会被UVM框架随机化。
    • 随机化的过程可能受到在my_transaction类中定义的约束(constraints)的限制。
  3. 传递给driver

    • 随机化后的my_transaction实例通过my_sequencemy_sequencer的协作被传递给driver
    • my_sequencer作为桥梁,负责将事务从sequence(即my_sequence)传递给driver
    • driver通过其seq_item_port接收来自sequencer的事务,并对其进行处理(如驱动到DUT的接口上)。
  4. driver处理事务

    • driver接收到事务后,会从中提取出需要传递给DUT的信号。
    • 这些信号通常对应于my_transaction中用rand字段随机化的信号。
    • driver根据这些信号生成相应的激励,并将其驱动到DUT的接口上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值