5.3vseq&vsqr-vseq的构建与启动

1.vseq的构建

1.1 vseq_base

(1) 由于所有的virtual sequence都需要访问定义于virtual sequencer中的sub-sequencer句柄. 所以virtual sequence需要使用`uvm_declare_p_sequencer宏.

(2) 由于每一个virtual sequence都需要执行这些步骤,所以推荐将这部分代码放到virtual sequence base class内.

(3) vseq_base示例

1.2 基于vseq_base创建vseq

 

1.3 vseq示例1-vseq内使用uvm_do宏启动其他seq

1.4 vseq示例2-vseq内使用start task启动其他seq

(1) 用start启动sequence的优势是可以向其中传递一些值;

 

 

 

1.5 vseq示例3-vseq内启动其他 vseq

2.vseq的启动

(1) 一般来讲, virtual sequence会使用start方法启动.

`uvm_do_on宏不能在test组建中直接调用,只能在派生的sequence中调用. `uvm_do_on宏所需的方法create_item(), start_item()和finish_item()都不能在uvm_test以及其他UVM component中调用.

注:使用start方法启动vseq时,可以为start方法传递null参数,或者传递vsqr;

(2) 常见的好方法是创建一个test_base类,在其中声明一些公用的方法,然后在其派生的test类中启动sequence.

在派生的类中定义了run_phase, 在run_phase中创建一个virtual sequencer,并调用raise_objection()和drop_objection()方法,在其中使用start()方法开启virtual sequence.

(3) 示例

 

 

 

 

 

posted on   知北游。。  阅读(813)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示