在UVM中运行序列库时出现问题

时间:2019-08-04 07:13:18

标签: uvm

当我在UVM中运行序列库时,出现以下错误:“ [SEQLIB / START]在未知阶段启动序列库top_random_seq_lib_v1:在UVM_SEQ_LIB_RANDC模式下进行10次迭代”。我很困惑为什么在“未知阶段”上有消息,因为我在主阶段启动了这个序列库。似乎此序列库无法正常工作。有人可以帮助我确定问题出在哪里吗?谢谢。

我的代码是这样的:

    class digit_top_base_random_test2 extends digit_top_base test;
        ......
        top_random_seq_lib_v1      m_seq_master;  // this is my sequence library for master
        top_random_seq_lib_v1      m_seq_slave;  // this is my sequence library for slave
        base_sequence              m_base_seq_master;
        base_sequence              m_base_seq_slave;

        ........


        virtual function void build_phase(uvm_phase phase);
            ....
            m_seq_master=top_random_seq_lib_v1::type_id::create("m_seq_master");    
            m_seq_slave=top_random_seq_lib_v1::type_id::create("m_seq_slave");
        endfunction

        virtual task configure_phase(uvm_phase phase);
            super.configure_phase(phase);

            m_seq_master.selection_mode = UVM_SEQ_LIB_RANDC;
            m_seq_master.min_random_count=1;
            m_seq_master.max_random_count=5;
            m_seq_master.add_typewide_sequence(m_base_seq_master.get_type());

            m_seq_slave.selection_mode = UVM_SEQ_LIB_RAND;
            m_seq_slave.min_random_count=1;
            m_seq_slave.max_random_count=5;
            m_seq_slave.add_typewide_sequence(m_base_seq_slave.get_type());

            m_seq_master.init_sequence_library();
            m_seq_slave.init_sequence_library();
        endtask

        ........

        virtual task main_phase(uvm_phase phase);
            super.main_phase(phase);
            phase.raise_objection(this);
            m_seq_master.start(m_digit_top_env.m_agent_master.m_seqr0);
            m_seq_slave.start(m_digit_top_env.m_agent_slave.m_seqr0);
            phase.drop_objection(this);
        endtask
    endclass

1 个答案:

答案 0 :(得分:0)

经过几天的调试,终于找到了答案:我键入了错误的代码,这导致了错误的音序器分配。该错误代码未在我的帖子中显示。纠正该错误后,代码可以正常工作。感谢那些评论了这篇文章的人。