uvm1.2 sequencer 有动作是 如何告诉sequence
时间: 2023-12-17 22:03:30 浏览: 83
在 UVM 1.2 中,如果 sequencer 接收到一个 transaction,它将调用 `seq_item_export` 将该 transaction 传递给相关的 sequence。此外,如果你想在 sequencer 中执行某些操作并通知 sequence,请使用以下方法:
1. 在 sequence 中创建一个任务或函数,并在其中等待来自 sequencer 的信号。
```
task my_sequence_task();
// 等待来自 sequencer 的信号
@(sequencer.my_signal);
// 继续执行其他操作
endtask
```
2. 在 sequencer 中,执行某些操作并使用 `seq_item_export` 向 sequence 发送信号。
```
task my_sequencer_task();
// 执行某些操作
// ...
// 向 sequence 发送信号
seq_item_export.write(my_signal);
endtask
```
在上面的示例代码中,我们在 sequence 中创建了一个名为 `my_sequence_task` 的任务,并在其中等待来自 sequencer 的 `my_signal` 信号。在 sequencer 中,我们执行了一些操作,并使用 `seq_item_export` 向 sequence 发送了 `my_signal` 信号。
当 sequencer 调用 `seq_item_export.write(my_signal)` 时,它将向与其关联的 sequence 发送 `my_signal` 信号。此时,sequence 中等待来自 sequencer 的 `my_signal` 信号的任务将被唤醒,并继续执行其他操作。
阅读全文