ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

5. UVM -- suquence机制

2022-07-21 18:37:06  阅读:250  来源: 互联网

标签:sequence -- req 1.8 item UVM suquence phase


UVM -- suquence机制

1.1. sequence 机制的原理

1.2. sequence机制的使用


1.3. sequence 的启动 (2种方法)

1.3.1. 方法一:设置default_sequence

1.3.2. 方法二:手动启动sequence (更常用)

task my_base_test::run_phase(uvm_phase phase);
    my0_seq m_seq = my0_seq::type_id::create("m_seq");

    super.run_phase(phase);
    phase.raise_objection(this);
    `uvm_info(get_type_name(), "< 005 > : run_phase ", UVM_DEBUG)

    // seq start
    m_seq.start(m_env.m0_agent.m0_seqr);

    phase.get_objection().set_drain_time(this, 1000);
    phase.drop_objection(this);
endtask: run_phase


1.4. sequence do_item 方法

1.4.1. 方法一:start_item(req);

    repeat(100) begin
        @(posedge MY0.clk);
        req = my0_seq_item::type_id::create("req"); // 1. create item
        start_item(req); // 2. start item to sequencer
        assert(req.randomize() with {req.pwdata == 100;}); // 3. randomize()
        finish_item(req); // 4. send item to driver
        `uvm_info(get_type_name(), $sformatf("< SEQ-2-1 > : %h, %h", req.paddr, req.pwdata), UVM_DEBUG)
    end

1.4.2. 方法二:uvm_do_with()

    repeat(100) begin
        @(posedge MY0.clk);
        req = new("req"); // 1. create item
        `uvm_do_with(req, {req.paddr < 32'h40000000; req.pwdata == 32'h4444FFFF;})
        `uvm_info(get_type_name(), $sformatf("< SEQ-2-2 > : %h, %h", req.paddr, req.pwdata), UVM_DEBUG)
    end


1.5. sequence 的嵌套


1.6. sequence 的仲裁


1.7. sequence获取响应

1.8. UVM sequence library

1.8.1. 什么是UVM sequence library

本质是一个sequence, 相对于普通的sequence, sequence library有以下功能:

  • 其他sequence可以向sequence library注册
  • 可根据配置产生并且执行已经在其内部注册过的sequence
  • 具有多种内嵌的选择sequence的算法
  • 支持用户自定义的sequence;选择算法
  • 注册方式的多样化

1.8.2. 向UVM sequence library注册sequence

1.8.2.1. 永久注册


1.8.2.2. 临时注册


1.8.3. sequence_library中添加sequence

1.8.4. UVM sequence library相关变量及配置类

1.8.4.1. 相关变量


1.8.4.2. 配置类

1.9. Virtual sequence

1.9.1. 什么是Virtual sequence 及 Virtual sequencer

1.9.2. Virtual sequence 与 Virtual sequencer 的使用方法

标签:sequence,--,req,1.8,item,UVM,suquence,phase
来源: https://www.cnblogs.com/thisway2014/p/16503021.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有