UVM register layer classes用于為DUV中的memory-mapped寄存器和內存的read/write操作創建一個high-level和object-oriented的模型。
這種抽象機制允許驗證環境和測試用例從模塊級遷移到系統級,而無需進行任何修改。寄存器模型還可以在寄存器之間移動唯一命名的字段,而不需要在驗證環境或測試用例中進行修改(因為寄存器模型是按照字符串索引操作的,而不是按照字段offset操作的)。
UVM還提供了一個寄存器測試sequence庫,你可以用來驗證DUV中registers和memories的功能。
register model通常也是層次結構的。Blocks可以包含registers、register files和memories,以及其他Blocks。
register layer classes支持front-door a和back-door訪問。
由于register layer classes涉及眾多的細節,所以通常是由model generator從設計中的registers和memories的規格生成的。
register model 是一個register block的實例,它可以包含任意數量的registers、register files、memories和其他blocks。一個block通常對應于一個設計,它有自己的處理器接口,地址解碼以及memory-mapped registers和memories。每個register file包含任意數量的registers和其他register files。每個寄存器包含任意數量的字段(fields),它們反映(mirror)了硬件中相應域段的值。
如果一個memories作為設計模塊地址空間的一部分通過寄存器模型進行訪問,那么該memories被認為是寄存器模型的一部分。
所有的數據域段都被建模為fields。fields代表一組連續的比特,完全包含在一個register中。
一個register可以橫跨多個地址,重復的結構可以被建模為register arrays, register file arrays或者block arrays。下圖顯示了一個包含兩個寄存器(分別有2個和3個字段)、一個內部存儲器和一個外部存儲器的設計。
相應的寄存器模型如下:
當使用 register model時,fields、registers和memory是通過其相應的抽象類中的讀寫方法(不通過地址,而是通過字符串名稱)來訪問的。寄存器模型通過適當的總線驅動將這些抽象的訪問變成特定地址的實際讀寫。
例 如,上圖所示的CONFIG寄存器中的字段ADDR可以通過CODEC.CONFIG.ADDR.read() 方 法 訪 問 。同 樣 , BFR 存 儲 器 中 的 位 置“7”可以用CODEC.BFR.write(7,value)方法訪問。
-
寄存器
+關注
關注
31文章
5363瀏覽量
121172 -
接口
+關注
關注
33文章
8691瀏覽量
151920 -
模型
+關注
關注
1文章
3312瀏覽量
49226
原文標題:UVM寄存器模型概述
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論