Subscriber基本上是analysis port的listener。它們訂閱broadcaster並透過連接的analysis port廣播時接收object。 uvm_component沒有內建analysis port,而uvm_subscriber是一個擴展版本,具有名為analysis_export 的analysis port。
Class definition
1 | virtual class uvm_subscriber #(type T=int) extends uvm_component; |
Use Case
在通常情況下,agent有一個用於其monitor的 TLM analysis port,以便與其他testbench 的component共享在agent的interface上收集的data object。因此,建立一個繼承自uvm_subscriber的class並使用內建的analysis_export實作來連接到agent的analysis port會比較容易。例如,在subscriber中有 functional coverage groups和coverpoints,並在其從agent接收到object時進行取樣。
1 | class my_coverage extends uvm_subscriber #(bus_pkt); |