在UVM(Universal Verification Methodology)中,uvm_tlm_analysis_fifo 是一个用于传输分析端口数据的 FIFO(先进先出)队列。设置 uvm_tlm_analysis_fifo 的深度通常是通过构造函数参数来完成的。以下是关于如何设置 uvm_tlm_analysis_fifo 深度的详细解答: 查找uvm_tlm_analysis_fifo 的文档或源代码: 在UVM 的官方文档...
1.uvm_tlm_analysis_fifo 有众多端口: 1)所有圆圈表示的export 虽然名字中有export,但本质上都是IMP。 2)peek 和 get 的区别是peek调用时,FIFO 会把transaction 复制一份发出去,内部缓存中的transaction 数量并不会减少。 3)除了12 个IMP外,还有两个analysis_port:put_ap 和 get_ap。当blocking_put_export ...
1.uvm_tlm_analysis_fifo(参数化的类) (1) uvm_tlm_analysis_fifo中的*_export,虽然名字中有export,但是本质上都是IMP; (2) uvm_tlm_analysis_fifo内的缓冲使用system verilog中的mailbox实现; (3)需要补充fifo的相关函数,如put,get,try_put,try_get; 注:下图表示当sb收到monitor通过ap传来的result时,会...
所以uvm_tlm_analysis_fifo所在层次的hierarchy一般也不会影响到UVM环境的运行,所以理论上我们在创建uvm_tlm_analysis_fifo实例时是可以缺省参数parent的,这样UVM环境的拓扑结构就会如图9所示,uvm_tlm_analysis_fifo跟uvm_test_top在同一个hierarchy中并列。
通常我们环境中的两个uvm_component之间进行通信时,都会用一个uvm_tlm_analysis_fifo作为媒介,发送数据的组件(如monitor)内部定义一个uvm_analysis_port连接fifo的analysis_export,对应的通信方法是write;接受数据的组件内定义一个uvm_blocking_get_port连接到fifo的blocking_get_export,通信方法用的是get。
连接producer_1组件和consumer_2组件的一种非常常见的方法是使用uvm_tlm_fifo组件。uvm_tlm_fifo是参数化的FIFO以指定存储在fifo中的对象类型,具有put export和get exports。uvm_tlm_fifo的构造函数具有一个用于指示fifo的最大深度(默认为1)的参数。 代码语言:javascript ...
uvm_tlm_analysis_fifo的用法 uvm_tlm_analysis_fifo的用法
在uvm_test_top,env或者i_agt中,对driver中的某些变量通过config_db机制进行设置,称为直线的设置。但是若在其他component,如scoreboard中,对driver的某些变量使用config_db机制进行设置,则称为非直线的设置。 在UVM树中,build_phase是自上而下执行的,但是对于UVM树来说,scb与i_agt处于同一级别中,UVM并没有明文...
这个时候需要用:uvm_analysis_imp_decl(_标记) 这个macro,然后“write”函数变成 “write_标记()”函数,analysis_port所在component不用变,还是调write()函数即可。 代码示例如下:使用macro声明write函数变名字analysis_port所在component实现不变。使用uvm_analysis_fifo(uvm_tlm_analysis_fifo), analysis_ 30、fifo的...
Tools & Simulators Compile Options Run Options Run Time: Userun.doTcl file Userun.bashshell script Runcustom file Custom File ShowHTMLafter run Userun.bashshell script