谁把 sequence 里的 transaction 拽出来给 driver?
在 UVM 验证平台中,driver 只负责驱动 transaction,不负责产生 transaction。那么 sequence 里产生的 transaction 是怎么跑到 driver 手里的?答案就是 sequencer——它站在 sequence 和 driver 中间,负责调度和转发。
sequencer 是“枪”,sequence 是“弹夹”
在 UVM 圈子里有一个非常经典的比喻:transaction 是子弹,sequence 是弹夹,sequencer 是一把枪。弹夹(sequence)只有放入枪(sequencer)中才有意义,枪只有在装上弹夹后才能发挥威力。
更严谨地说:
-
uvm_sequencer 是一个 uvm_component,在验证平台中始终存在。它本质上是一个 TLM 中介,内部持有 FIFO 队列,负责管理多个 sequence 并对它们进行仲裁。sequencer 与 driver 之间通过 seq_item_port / seq_item_export 进行 TLM 通信。
-
uvm_sequence 是一个 uvm_object,生命周期比 component 短。它就像一份“剧本”,在 body() 任务里定义要产生什么样的 transaction 序列。sequence 必须
网硕互联帮助中心




评论前必须登录!
注册