大多數dut都有許多不同的接口(interface),每個接口都有自己特有的協議。 UVM agent的任務就是集中管理和這個接口相關的所有內容 ,主要是各種用于驅動和監測DUT的驗證組件(uvm_components),這些組件的命令最好都使用同一個前綴進行命名。
Uvm_agent中的package通常包括:
**? A Sequence_item ** -agent 中可能存在一個或多個sequence item,這些事務定義了agent驅動和監測DUT的信號級內容.
? A Driver - .driver 用于將sequence_items中的數據轉換為信號級行為。
**? A Sequencer ** - sequencer 的作用是將sequence_items從生成的sequence 路由到driver。
**? A Monitor ** - monitor 觀察DUT接口上的信號級行為,并將其觀察的結果數據轉換為sequence_items,然后發送到scoreboards 等組件,已生成預期數據或者其他的數據分析處理。
**? Configuration object ** - 一個配置容器,用于將信息由上層(env或者test case)傳遞給agent代理,從而影響agent的行為方式,以及與DUT的接口連接。
每個agent 都應該有一個配置對象,其中可能包括:
1、virtual interface ,其被driver和monitor使用來訪問(驅動、監測)實際DUT接口信號,即組件的連接。
2、控制agent子組件的創建與否 (是否需要創建driver和sequencer )以及 具體行為 (錯誤注入、組件行為延時控制等等),即組件的行為配置按鈕。
**? Functional coverage monitor ** - 收集協議特定的功能覆蓋率。
**? A responder ** - 響應接口的slave_driver,注意不是主動激勵接口的driver。
**? (API) Sequences ** - 調用driver的一個API,即BFM。
-
接口
+關注
關注
33文章
8526瀏覽量
150863 -
UVM
+關注
關注
0文章
181瀏覽量
19144 -
DUT
+關注
關注
0文章
189瀏覽量
12348
發布評論請先 登錄
相關推薦
評論