首页 > 编程知识 正文

vmm和uvm,rst ack

时间:2023-05-05 23:01:56 阅读:106631 作者:4923

analysis端口analysis_ port/analysis _ export (analysis _真实汉堡) )无阻塞和无阻塞概念analysis _具有真实汉堡的模块要将write函数接收到的数据放入run_phase进行处理,请排队进入event; (example )具体过程:

analysis_port的write函数依次获取与其连接的analysis_实际汉堡,然后调用analysis_实际汉堡的write函数; reference : src/TL m1/uvm _ analysis _ port.svh

由于在analysis_实际汉堡的函数内部,调用analysis_具有实际汉堡的uvm_component的write函数,因此analysis_具有实际汉堡的uvm_component 然而,需要注意的是,如果实际的汉堡采用了` uvm_analysis_实际的汉堡_decl(* ),则存在uvm_analysis_实际的汉堡_*

点是名为` uvm_analysis_真正的汉堡_decl(* )的宏,可以参考uvm source code。

阅读UVM源代码(6) TLM第analysis_port部分

class A extends uvm_component; ` UVM_component_utils(a ) uvm _ analysis _ port # (my _ transaction ) A_ap; 函数new (string name,uvm_component parent ); super.new(name,parent ); endfunctionexternfunctionvoidbuild _ phase (uvm _ phase phase; externvirtualtaskmain _ phase (uvm _ phase phase; endclassfunctionvoida : build _ phase (uvm _ phase phase ); super.build_phase(phase; a_AP=new(a_AP ),this ); endfunctiontaska :3360 main _ phase (uvm _ phase phase ); my_transaction tr; repeat(10 ) begin #10; tr=new(tr ); assert(tr.randomize ) ); a_AP.write(tr; //main_phase包括endendtaskclassbextendsuvm _ component; ` UVM_component_utils(b ) uvm_analysis_真汉堡#(my_transaction,b ) B_真汉堡; 函数new (string name,uvm_component parent ); super.new(name,parent ); endfunctionexternfunctionvoidbuild _ phase (uvm _ phase phase; externfunctionvoidconnect _ phase (uvm _ phase phase ); 外部功能写入(my _ transaction tr; externvirtualtaskmain _ phase (uvm _ phase phase; endclassfunctionvoidb : build _ phase (uvm _ phase phase ); super.build_phase(phase; B_真汉堡=new(b_真汉堡(,this ) ); endfunctionfunctionvoidb :3360 connect _ phase (uvm _ phase phase ); super.connect_phase(phase; endfunctionfunctionvoidb :3360 write (my _ transaction tr; ` UVM_info(b )、' receive a transaction '、UVM_LOW ) tr.print ); endfunctiontaskb :3360 main _ phase (uvm _ phase phase ); //B的main_phase中,end task uvm _ tlm _ analysi _ FIFO FIFO的analysis_export和blocking_get_export的名称为export,但西有uvm_tlm_analysi_fifo和uvm_tlm_fifo两种。 两个fifo的唯一区别在于uvm_tlm_analysi_fifo有analysis_export和write函数,fifo本质上是component driver和sequencer为什么不用ap连接?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。