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) 示例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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吗?