在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3815|回复: 6

[求助] 求助:关于改变default_sequence的问题

[复制链接]
发表于 2013-5-23 09:06:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 oscillator_cn1 于 2013-5-23 09:10 编辑

各位:
      最近正在使用UVM搭建仿真平台,遇到一个改变default_sequence的问题。嗯,先上代码:

class wdma_base_test extends uvm_test;
    wdma_tb          tb0;
    vsequencer  vsqr;
    vi_config   vdo_cfg;
    `uvm_component_utils(wdma_base_test)


    function new(string name="wdma_base_test",uvm_component parent);
        super.new(name,parent);
    endfunction : new


    virtual function void set_default_sequence();
         uvm_config_db#(uvm_object_wrapper)::set(this,"vsqr.run_phase","default_sequence",wdma_1080p_ud_seq::type_id::get());  
    endfunction : set_default_sequence

    virtual function void build_phase(uvm_phase phase);
        super.build_phase(phase);
        tb0=wdma_tb::type_id::create("tb0",this);
        vsqr=vsequencer::type_id::create("vsqr",this);
        vdo_cfg=vi_config::type_id::create("vdo_cfg");        


        uvm_config_db#(vi_config)::set(this,"*","vdo_cfg",vdo_cfg);
        uvm_config_object::set(this,"tb0.vdo0*","cfg",vdo_cfg);


       set_default_sequence();
           
    endfunction : build_phase   


    virtual function void connect_phase(uvm_phase phase);
        super.connect_phase(phase);
        vsqr.vdo_sqr=tb0.vdo0.master.sequencer;
    endfunction : connect_phase   


    virtual task run_phase(uvm_phase phase);
        super.run_phase(phase);
        tb0.print();
    endtask : run_phase
endclass : wdma_base_test


class wdma_1080p_30hz_test extends wdma_base_test;
    `uvm_component_utils(wdma_1080p_30hz_test)

    function new(string name, uvm_component parent);
        super.new(name,parent);
    endfunction : new

    function void set_default_sequence();
        uvm_config_db#(uvm_object_wrapper)::set(this,"vsqr.run_phase","default_sequence",wdma_1080p_30hz_seq::type_id::get());
    endfunction : set_default_sequence

    function void build_phase(uvm_phase phase);
        super.build_phase(phase);
        $display("30hz");
    endfunction : build_phase

    function void connect_phase(uvm_phase phase);
        super.connect_phase(phase);
    endfunction : connect_phase

endclass : wdma_1080p_30hz_test



可是问题是,当我跑wdma_1080p_30hz_test时,启动的还是wdma_1080p_ud_seq,就好像wdma_1080p_30hz_test中改写的set_default_sequence()函数没有起作用一样。各位有什么办法解决呢?
发表于 2013-5-23 10:28:02 | 显示全部楼层
没有经验,不敢乱说,帮顶!
发表于 2013-5-23 10:30:14 | 显示全部楼层
顶起  好东西
发表于 2013-5-23 10:47:33 | 显示全部楼层
不知道楼主用的UVM的哪个版本,很多写法跟UVM1.1的好像有点不大一样。
你的uvm_config_db怎么没有设置set的路径?
还有connect,写法感觉挺与众不同的。
我是UVM初学者,说说自己的看法。
发表于 2013-5-23 11:41:11 | 显示全部楼层
$display("30hz");?打印出来了?
 楼主| 发表于 2013-5-23 13:47:42 | 显示全部楼层
回复 5# duge0413

恩。出来了。
 楼主| 发表于 2013-5-23 13:48:59 | 显示全部楼层
回复 4# freedos

也是1.1
有啊,不过那行太长,自动换行了呗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-26 05:08 , Processed in 0.020907 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表