Analysis port
对于多个组件对同一个数据进行运算处理,采用analysis_port.
从一个initiator到多个target端的连接方式。
在initiator端调用write() 函数时,实际上是通过循环的方式将所有连接的target端内置的write()函数进行了调用。函数具有立即返回的特点,无论连接了多少个target端,initiator端调用write()总是可以立即返回。 与单一端口函数调用不同,即使没有target与之相连,调用write()函数时不会发生错误?
analysis port 包含: uvm_analysis_port ( broadcasts transaction to imp), uvm_analysis_imp ( receives transaction by port ), uvm_analysis_export (export to imp).
uvm_analysis_port (initiator)
实现对所有订阅者(uvm_analysis_imp)广播一个值 :T
本质为参数化的类:
class uvm_analysis_port # (
type T = int
) extends uvm_port_base # (uvm_tlm_if_base #(T,T))
其包含一个function: write
// function write: Send specified value to all connected interface
function void write (
input T t
)