virtual sequence和sequence
时间: 2023-04-15 15:02:54 浏览: 210
Virtual sequence和sequence都是在验证中使用的概念。
Sequence是一种用于描述输入序列的抽象概念,它可以包含多个item,每个item可以是一个信号或者一组信号。Sequence可以用于生成测试用例,也可以用于检查设计是否符合规范。
Virtual sequence是一种在sequence基础上进一步抽象的概念,它可以包含多个sequence,并且可以定义sequence之间的关系和顺序。Virtual sequence可以用于描述复杂的输入序列,例如多个时钟域之间的交互、多个协议之间的交互等。
总的来说,Virtual sequence是在sequence的基础上提供了更高层次的抽象,可以更方便地描述复杂的输入序列。
相关问题
virtual sequence 和virtual sequencer
Virtual sequence和virtual sequencer是在测试平台体系结构中添加的一层。它们不是UVM中的预定义类,而是对现有UVM类的扩展。默认情况下,uvm_sequence类有一个名为m_sequencer的句柄,其类型为uvm_sequencer base。从uvm_sequence类扩展的类也是如此。而virtual sequencer类将具有物理sequencer的句柄,用于指向环境build phase构建阶段的物理sequencer。而virtual sequence具有物理sequencer和virtual sequencer的句柄。\[1\]
在使用virtual sequence时,需要将泛型m_sequencer指向virtual sequencer,并调用virtual sequence的body方法。由于m_sequencer是父类型,而virtual sequencer是子类型,为了访问子类的内容,需要使用另一个子类句柄,并将m_sequencer动态转换为本地子句柄。这就是为什么在virtual sequence中需要virtual sequencer的本地句柄。\[2\]
需要注意的是,虽然virtual sequence和virtual sequencer在测试平台中起到了重要的作用,但它们只是对现有UVM类的扩展,并没有单独的virtual sequence或virtual sequencer类。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [virtual sequence 和virtual sequencer](https://blog.csdn.net/weixin_46076353/article/details/127015624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
get virtual sequence
引用\[1\]:虚拟的sequence。 虚拟的意思就是它根本就不发送transaction, 它只是控制其他的sequence, 起统一调度的作用 。引用\[2\]:virtual sequence:承载不同目标sequencer的sequence群落,实现sequence同步;virtual sequence一般只会挂载到virtual sequencer上,且没有自己的sequence_item,只用于控制其他的sequence执行顺序,起统一调度作用。virtual sequencer:桥接其它sequencer,即连接所有底层sequencer的句柄(指针),是一个中心化的路由器。virtual sequencer本身并不传送item数据对象,因此不需要与driver进行TLM连接。所以用户需在顶层的connect阶段做好virtual sequencer中各个sequencer句柄与sequencer实体对象的一一连接,避免句柄悬空。
问题:如何获取虚拟sequence?
回答:要获取虚拟sequence,需要创建一个virtual sequence对象,并将其挂载到virtual sequencer上。虚拟sequence不发送transaction,而是控制其他的sequence的执行顺序,起到统一调度的作用。虚拟sequence一般只会挂载到virtual sequencer上,没有自己的sequence_item。\[1\]\[2\]
#### 引用[.reference_title]
- *1* [virtual sequence 和 virtual sequencer start 启动流程](https://blog.csdn.net/hyykq/article/details/122848466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [UVM——虚序列器与虚序列(virtual sequencer与virtual sequence)](https://blog.csdn.net/weixin_46022434/article/details/105869127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【UVM基础】虚序列器与虚序列(virtual sequencer与virtual sequence)快速上手指南](https://blog.csdn.net/ReCclay/article/details/123319463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文