通常我们环境中的两个uvm_component之间进行通信时,都会用一个uvm_tlm_analysis_fifo作为媒介,发送数据的组件(如monitor)内部定义一个uvm_analysis_port连接fifo的analysis_export,对应的通信方法是write;接受数据的组件内定义一个uvm_blocking_get_port连接到fifo的blocking_get_export,通信方法用的是get。 那么在这个uv...
(2) uvm_tlm_analysis_fifo内的缓冲使用system verilog中的mailbox实现; (3)需要补充fifo的相关函数,如put,get,try_put,try_get; 注:下图表示当sb收到monitor通过ap传来的result时,会从cmd_f中pop trans,得到cmd信息,根据cmd信息计算expected result,并与actual result进行比较; 注:注意下图中uvm_tlm_analysis...
uvm_tlm_analysis_fifo来解决这个问题,我们在scoreboard中使用这种机制实现同一个subscriber中获取不同参数类型的analysisport的数据:uvm_tlm_analysi_fifo是一个参数化的类,此fifo在一侧实现了analysis_export,在另一侧使用try_get函数。我们通过analysis_export从analysis_port获得数据,通过try_get从FIFO中吧 ...