文章目录
sequence机制
sequence概述
- sequence产生激励;
- sequencer将sequence_item发送给driver
uvm_sequence class 普通成员
- 事务的基类是sequence_sequence_item
不存在任何自动执行的函数,仅仅是数据和对数据的处理; - 在uvm_sequence中产生激励;
具有可自动执行的函数
执行流程
sequence class要求
- 通过uvm_sequence基类派生所需要的sequence
- body()实现了sequence的代码
`uvm_do宏定义可以随机创建并传递事务到驱动器; - sequence使用raise和drop objection 保证sequence满足整个仿真时间
sequence默认执行starting_phase
也可以显示配置starting_phase
sequence执行start()程序会回调以下程序
start() {
pre_start (task)
pre_body (task) //if call_pre_post ==1 for sub_sequence
body() (task) //if your simulation code
post_body (task) //if call_pre_post ==1 for sub_sequence
post_start(task)
}
可以将pre_start和post_start单独写出来,body主体只写方法
实现scenario型的sequence
sequence的嵌套
在测试案例中配置default_sequence
利用config机制配置sequence
个性化单独配置
整体配置
通过sequencer配置
在agent中配置
在这里插入图片描述
显示调用start 执行sequence
sequence的优先级和权重设置
driver可以get_response返回给sequence
乱序端口