1.Sequence Classes/uvm_sequence_item get_sequencer --- 返回sequence使用的默认sequencer的引用。 get_sequencer function uvm_sequencer_base get_sequencer() 返回sequence使用的默认sequencer的引用。 2.uvm_reg_transaction_order_policy/uvm_reg_map get_sequencer --- 获取与此映射相关总线的sequencer。 get_seq...
// Function: get_sequencer // 返回一个指向默认sequencer的指针 // Returns a reference to the default sequencer used by this sequence. function uvm_sequencer_baseget_sequencer(); returnm_sequencer; endfunction
所有的sequence都要在sequencer中启动:如case0_sequence.start(my_sequencer),当sequence启动的时候,m_sequencer 句柄就指向了my_sequencer,若case0_sequence.start(my_sequencer1),则此时m_sequencer 句柄指向了my_sequencer1。 sequence是从uvm_object拓展而来,它不能访问uvm_component组成的uvm层次结构的,如果非要访问...
uvm_reg_adapter,继承自uvm_object,从其中设置一个uvm_reg_item,需要实现两个function,bus2reg和reg2bus。 其中的变量supports_byte_enable, 影响sequence的个数。provides_reponses,影响sequencer和driver之间的交互。 uvm_reg_predictor,当auto_predict关闭的时候,需要例化的component,连接到寄存器的monitor。 在write函...
agent是代理模块,包含sequencer、driver和monitor等组件。sequencer作为激励产生器,通过sequence生成激励信号。driver将激励信号转化为驱动信号传递给DUT。monitor负责采集DUT信号,封装为transaction进行比较。这些组件共同协作,实现DUT的验证。scoreboard作为记分板,负责收集DUT输出与期望值进行比对。它能够自动完成...
UVM bench结构自上而下分为四个层级:最顶层是testbench,中间是interface,连接testbench与DUT(待测设计),底层是DUT本身。testbench的最外层是test,这是验证平台的启动点。内部则包括environment、agent、sequencer、driver、monitor等组件,各司其职,共同构建高效、可重复使用的验证流程。在UVM体系中,...
刚刚阐述了uvm中各个组件的功能和作用,接下来说明uvm验证平台的层次划分。 最上层是测试(test)层,由各种testcase组成,接下来是场景(scenario)层,由产生激励的sequencer构成,第三层是功能层,包括scoreboard等组件,第四层是命令(command)层,由driver和monitor这种和interface打交道的组件构成,最底下是信号(signal)层,这...
常规的激励发送顺序是sequence->sequencer->driver,driver里面返回seq_item_port.item_done之后,sequence可以继续发送下一个req。这种单向交互机制不涉及driver返回给sequence具体的信息,只需要一个完成指示。但是对于一些复杂场景,譬如:sequecne中等待driver返回credit、特殊状态,driver中接收多种不同类型的req分别对接一套in...
刚刚阐述了uvm中各个组件的功能和作用,接下来说明uvm验证平台的层次划分。 最上层是测试(test)层,由各种testcase组成,接下来是场景(scenario)层,由产生激励的sequencer构成,第三层是功能层,包括scoreboard等组件,第四层是命令(command)层,由driver和monitor这种和interface打交...
sequence里的response_handler(xxx)函数在uvm_driver调用seq_item_export.put_response(rsp)的时会自动被调用执行,故此我们从seq_item_export.put_response(rsp)讲起。 uvm_driver调用put_response(rsp)时,会调用uvm_sequencer_param_base里的put_response(rsp)函数,这个函数的定义为: ...