0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Sequencer上启动一个Sequence

芯片验证工程师 来源:芯片验证工程师 2023-06-10 09:10 次阅读

Sequencer默认不执行任何Sequence。验证工程师可以通过调用start()启动一个Sequence,也可以通过uvm_config_db指定一个自动启动的Sequence。

手动启动Sequence

验证工程师可以实例化,然后随机化一个Sequence,最后调用start()启动这个Sequence。

自动启动Sequence

随着run-time phase的启动,sequencer将检查该phase是否有一个Sequence可以自动启动。这样的“自动启动Sequence”通常在test case中设置。

393c64c0-0723-11ee-962d-dac502259ad0.png

也可以启动一个Sequence的特定实例

396f200e-0723-11ee-962d-dac502259ad0.png

进入指定phase后,该Sequence实例将被启动。sequencer不会对Sequence的实例进行随机化。

覆盖Sequence Items和Sequences

在用户定义的uvm_test中,例如base_test_ubus_demo,你可以通过factory配置uvm验证环境来创建不一样的SequencesSequence Items

a) 扩展基类simple_item,声明一个用户定义的Sequence Items类word_aligned_item。

b) 调用合适的 uvm_factory覆盖方法,类型覆盖或者实例覆盖。假设simple_seq_do sequence由simple_sequencer sequencer执行,你可以选择用word_aligned_item类型来替换simple_item类型。

3994e69a-0723-11ee-962d-dac502259ad0.png

39c27f24-0723-11ee-962d-dac502259ad0.png

覆盖生效之后,将创建一个word_aligned_item,而不是一个simple_item。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67512
  • 验证
    +关注

    关注

    0

    文章

    57

    浏览量

    15077
  • Sequencer
    +关注

    关注

    0

    文章

    8

    浏览量

    8169
  • sequence
    +关注

    关注

    0

    文章

    23

    浏览量

    2807

原文标题:在Sequencer上启动一个Sequence

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    UVM sequence分层有哪几种方式呢

    sequencer和low-layer sequencer),如下图所示。每一个sequence都有
    发表于 04-11 16:37

    请问一下在UVM中的UVMsequences是什么意思啊

    sequences ,并在sequencer启动这些序列。sequencer-driver之间的接口 将
    发表于 04-11 16:43

    UVM sequence分层的几种体现

    sequencer和low-layer sequencer),如下图所示。每一个sequence都有
    发表于 04-14 11:08

    如何配置sequence的仲裁算法和优先级及中断sequence的执行

    01 ArbitraryUVM中,多个sequence可以同时被绑定到相同的sequencer启动。这种测试场景实际中是存在的,比如在
    发表于 09-23 14:35

    介绍两种交互方法来完成Sequencer和Driver的握手机制

    UVM框架下,测试激励从产生到最终作用于DUT接口的这过程,遵守Sequence-Sequencer-Driver这基本结构。在这
    发表于 09-23 14:39

    sequence item实际应用中应该包含哪些东西

    等。基于以上这些需求,UVM类库提供的代码示例基础,整理成以下般框架,可用于指导日常开发。02 用户自定义方法在上面定义的sequence item框架中,有
    发表于 09-23 14:42

    UVM中seq.start()和default_sequence执行顺序

    seqr.start_phase_sequence(phase)解析  start_phase_sequence(xxx)是定义uvm_sequencer_base类里的,具体看s
    发表于 04-04 17:15

    谈UVM之sequence/item见解 sequencer特性及应用(下)

    本文将接着分享sequencer的相关知识,对于sequencer的仲裁特性有几种可选,UVM_SEQ_ARB_FIFO ;UVM_SEQ_ARB_WEIGHTED
    的头像 发表于 02-19 10:14 4560次阅读
    谈UVM之<b class='flag-5'>sequence</b>/item见解 <b class='flag-5'>sequencer</b>特性及应用(下)

    如何在定义后启动一个sequence

    激励最初产生在driver中,后来产生在sequence中。为什么会有这个过程呢?
    的头像 发表于 09-09 09:41 838次阅读

    如何配置sequence的仲裁算法和优先级

    这样一来,在验证环境运行中就会出现竞争的问题,当多个sequence同时企图向下游发transaction的时候,sequencer需要能够决定处理这些transaction的顺序。而给出答案的,是sequencer内建的仲裁机
    的头像 发表于 09-14 15:59 1054次阅读

    UVM sequence机制中response的简单使用

    sequence作为UVM几个核心机制之一,它有效地将transaction的产生从driver中剥离出来,并且通过和sequencer相互配合,成功地将driver的负担降低至仅聚焦于根据协议
    的头像 发表于 09-22 09:26 1955次阅读

    start()如何执行uvm_sequence

    要使用start()启动一个sequence,就必须要指定相应的sequencer句柄, **另外的几个选项一般用不上** 。其中
    的头像 发表于 03-21 11:37 508次阅读
    start()如何执行uvm_<b class='flag-5'>sequence</b>

    如何配置sequence的仲裁算法和优先级?

    在UVM中,多个sequence可以同时被绑定到相同的sequencer启动。这种测试场景在实际中是存在的,比如在模拟同一个总线master口上的不同类型的数据流时
    的头像 发表于 04-27 15:20 829次阅读
    如何配置<b class='flag-5'>sequence</b>的仲裁算法和优先级?

    我眼中UVM启动sequence的几种常见方式

    最简单粗暴的一种方式,只需要在某个component,如my_sequencer、my_env甚至base_test的main_phase中启动
    的头像 发表于 06-16 11:31 1807次阅读

    为什么要同时存在m_sequencer和p_sequencer他们两个?

    在构建复杂的sequence序列的时候,我们经常会用到m_sequencer和p_sequencer,并且在很多资料中都提到两者实际指向的是同一个对象,那么为什么要同时存在他们两个,存在一个不就够用了吗?为此,本文通过示例说明下
    的头像 发表于 06-19 10:02 787次阅读
    为什么要同时存在m_<b class='flag-5'>sequencer</b>和p_<b class='flag-5'>sequencer</b>他们两个?