2017-03-10 21 views
0

UVM TB組件中使用

我有奇偶校驗編碼器解碼器中的驗證TB結構等所示,其中我在驅動數據到編碼器,得到了輸出,增加隨機誤差,並傳遞它作爲解碼器的輸入。

我的問題是我需要兩個驅動程序來驅動1)Data_in_08p和2)Data_corrupted_in?我應該有一個在隨機位置產生隨機錯誤的組件,並用Data_out_08p對其進行異或。該組件的性質應該是什麼,即它應該是一個驅動程序?我可以在1位代理商中擁有兩名司機,還是需要在此創建兩名代理商?

準確地說,當DUT的一個輸入取決於DUT輸出時,我們如何定義我們的驅動程序/ env?將有多少個序列和音序器和監視器?

+0

你不能同時驗證編碼器和解碼器分開?你爲什麼要通用測試平臺來驗證2個不同的塊? –

回答

1

該會爲了驗證DUT要求可能會是這樣的UVM測試平臺框圖:

enter image description here

在UVM而言,你需要下列藥劑:

  1. 一個活動代理將事務發送到編碼器塊的輸入。
  2. 一個被動代理,用於捕獲編碼器塊輸出處的事務。
  3. 一個反應代理將事務發送到解碼器塊的輸入。
  4. 一個被動代理,用於在解碼器塊的輸出處捕獲事務。

請注意,在監視器坐在編碼器輸出代理將捕獲的交易,並通過分析端口是坐在解碼器輸入代理序發送。這被稱爲「被動」代理,因爲它等待,直到收到一些事情來生成事務。然後,您將從解碼器輸入代理的音序器上運行的序列中注入錯誤。

Verilab有一個很好的論文,在關於「無代理」細節談: http://www.verilab.com/files/mastering_reactive_slaves.pdf

+0

我也可以在我的解碼器輸入代理中使用驅動程序回調嗎? –

+0

您必須更具體地說明您的驅動程序回調是什麼意思。 – AndresM

+0

到目前爲止,我所做的是將被動監聽器的DUT信號傳遞給重新激活的音序器,然後在順序項目中生成錯誤數據包。相反,我想有一個回調驅動程序,它會產生錯誤,並將它們驅動到DUT。我可以做嗎。另外如果這是可能的,我可以在我的uvm_config_db中有一個開關,我可以配置它來執行這兩種方法中的任何一種? –