2017-09-04 114 views
0

在UVM中,測試臺對DUT的內部寄存器沒有任何可見性。那麼爲什麼在UVM測試平臺架構中鏡像和創建註冊模型?它的用途是什麼?註冊模型在UVM中的用途是什麼?

測試平臺不會知道狀態位等是否更新或不在DUT內部,因爲它只能訪問其輸入輸出端口。

+0

您對可訪問性有錯誤的假設。可以從測試臺訪問任何DUT的寄存器或網絡。 – Serge

+0

如果我們不在我們的測試平臺中使用寄存器模型,會產生什麼影響?僅僅是爲了DUT寄存器提供參考模型還是有其他目的? –

+0

@Serge那麼你的意思是所有內部寄存器的寫入和讀取值都可以從DUT輸入輸出端口訪問? –

回答

1

DUT可能沒有通過端口直接訪問內部寄存器,但有些寄存器可通過接口協議訪問。寄存器模型主要用於這些寄存器。但是你可以通過後門訪問設計中的任何寄存器(但並不總是可取的,因爲它需要更多的工作來設置和維護)。

鏡像存儲的是測試臺認爲是DUT的寄存器值的值。當您執行.mirror()時,寄存器模型會將寄存器值(實際)與鏡像(預期)進行比較。

狀態位通常很難預測。爲了簡化操作,您可以關閉字段(或寄存器)與.set_compare(UVM_NO_CHECK)的比較。如果您在現場級別禁用檢查,則仍然會比較同一個寄存器中的其他字段。

如果您的氛圍,並希望做狀態位更復雜的預測/鏡比較,那麼你確實有選項,如註冊回調或延長uvm_reguvm_reg_field類覆蓋.predict.mirror方法。

+0

在這種情況下,沒有任何寄存器在測試臺中可見,是否有任何使用UVM寄存器模型呢? –

+0

註冊模式是否總是使用後門訪問?我可以從這篇文章中看到https://stackoverflow.com/q/32454818/6641380 –

+0

支持前端和後門,默認情況下通常是前端。 https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1d/html/files/reg/uvm_reg-svh.html#uvm_reg.mirror – Greg

1

UVM RAL提供了幾個好處

  1. 它提供了高層次的抽象在設計中讀寫寄存器。當你的寄存器的RTL已經從另一個描述中編譯時,這是特別有用的。所有的地址和位域都可以用人類可讀的名稱替換。
  2. 您的測試可以獨立於物理總線接口編寫。只需調用讀/寫方法即可。
  3. 鏡像寄存器使您可以輕鬆瞭解DUT的狀態/配置,而無需添加自己的一組鏡像變量或執行額外的讀取操作。
+0

當你提到這些要點時,他們是指前門還是後門? –

+0

此外,我有一個想法,即測試平臺DUT之間的每個交互發生在物理接口級別上,這就是爲什麼我想知道圖片中RAL如何。但是現在看來我的假設是部分錯誤的。 –

+0

這些好處是有前面或後門訪問。我們正在努力提高將UVM測試平臺寫入交易的抽象級別。測試平臺的時間變化不大,因爲大部分信號都與特定的時鐘相關聯。 –