RISC-V處理器IP驗證流程
2023-02-27 11:53:27 EETOP一、簡介
RISC-V是一種具有多種擴展功能的通用免許可開放指令集架構 [ISA]。它是一個開源指令集,分為一個小的基本整型 ISA,可用作定制加速器和可選標準擴展的基礎,以支持通用軟件開發。RISC-V 支持應用程序、操作系統內核和硬件實現的 32 位和 64 位地址空間變體。因此,它適用于所有計算系統,從嵌入式微控制器到云服務器。
在這個開放的計算時代,RISC-V 社區成員雄心勃勃地使用 RISC-V 開放 ISA 創建各種 RISC 處理器。然而,使用 RISC-V ISA 的風險更高,因為經過驗證的處理器驗證流程仍然是成熟的處理器無晶圓廠 IP 公司和 IDM 的專有信息,屬于未公開的秘密。那么,如何才能讓RISC-V驗證流程開放,為RISC-V社區賦能呢?
本文將引述來自印度的科技公司Maven Silicon 的文章,展開論述。并帶您了解 Maven Silicon 的 RISC-V 驗證流程。
2. 驗證策略
使用形式驗證驗證所有 RISC-V IP 基本構建模塊,如 ALU、解碼器、程序計數器、寄存器、指令和數據存儲器。對 RISC-V IP 構建塊進行 RTL 編碼的設計工程師 [DE] 可以將斷言 [SVA/PSL] 嵌入到 RTL 模塊中。驗證工程師 [VE] 將使用形式驗證 EDA 工具驗證 RISC-V RTL IP 模塊。DE 可以綜合經過驗證的 RTL 模塊并修復所有與綜合相關的問題。
最后,VE可以進一步驗證這些可綜合的RTL模塊并創建RISC-V IP模塊庫。
2.2 IP級的驗證:使用預先驗證的RISC-V IP塊庫來驗證RISC-V IP,該IP是使用約束隨機覆蓋率驅動的驗證[CRCDV]建立的。
DE可以使用預先驗證的RISC-V IP基本塊庫實現任何一種多級流水線RISC-V處理器。VE將在UVM中創建驗證環境,并使用CRCDV驗證RISC-V多級流水線處理器。
VE 還將創建必要的參考模型、用于協議驗證的接口斷言和功能覆蓋模型。最后,VE 將sign off基于覆蓋率閉包 [代碼 + 功能覆蓋率] 的 IP 級回歸測試。
如果RISC-V處理器IP實現了一個支持標準Unix-like操作系統的通用處理器,那么經過驗證的RISC-V處理器IP可以通過使用FPGA原型驗證啟動操作系統來進一步驗證。
如圖 1 所示,Maven Silicon 的 RISC-V 驗證流程實現了上述驗證策略。
IP 級 VE 可以使用UVM(Universal Verification Methodology) 創建驗證環境,如圖 2 所示。
由于我們的Maven Silicon的RISC-V IP RTL設計使用AHB接口,因此我們將指令和數據存儲器建模為AHB從屬UVM代理UVM Agent。RISC-V 處理器參考模型建模為 AHB 主 UVM 代理,通過背靠背連接 RISC-V AHB 代理來驗證包含所有測試平臺組件記分牌、具有覆蓋模型的用戶、復位、中斷和 RAL UVM 代理的完整 UVM 環境,特別是驗證數據流和覆蓋范圍生成。一旦驗證環境變得穩定,其中一個參考模型就被RTL取代。UVM RAL被廣泛用于對RISC-V IP寄存器和存儲器進行采樣,以便在記分牌中進行數據比較。
由于我們Maven Silicon的RISC-V IP RTL設計使用AHB接口,我們將指令和數據存儲器建模為AHB從UVM Agent。RISC-V處理器參考模型被建模為AHB主UVM Agent,通過背靠背連接RISC-V AHB Agent來驗證完整的UVM環境,包括所有的測試平臺組件UVM scoreboard、帶有覆蓋模型的用戶、復位、中斷和RAL UVM Agent特別是驗證數據流和覆蓋生成。一旦驗證環境變得穩定,其中一個參考模型就被RTL所取代。UVM RAL被廣泛用于對RISC-V IP寄存器和存儲器進行采樣,以便在UVM Scoreboard進行數據比較。
要了解此驗證環境的工作原理,請觀看此演示視頻:
(請關注創芯大講堂視頻號觀看)
圖 2:Maven Silicon 的 RISC-V IP UVM 驗證環境
還可以考慮將 Google 的用于刺激生成的指令流生成器和開源指令集模擬器 [ISS](如 Spike)作為參考模型集成到他們的 UVM 環境中,并有效地進行詳盡驗證。
高效、高質量的 RISC-V IP 驗證只能通過形式驗證、使用 UVM 的 CRCDV 和使用 FPGA 原型設計的操作系統啟動等 各種驗證方法的有效組合, 以及重用性 (如重用預驗證的 RISC-V 塊庫和可擴展性)來實現IP 級 UVM 測試平臺。由于 RISC-V 是一個開放的 ISA,我們可以創建可重用的 RISC-V 基本塊預驗證庫,并作為開源 RISC-V 庫為 RISC-V International 做出貢獻。使用這個預先驗證的庫,RISC-V 社區成員可以創建他們喜歡的任何類型的多級流水線 RISC-V 處理器,并按照本技術論文中解釋的流程驗證他們的 RISC-V 處理器。 在不冒 TTM 風險的情況下,這不是驗證 RISC-V 處理器的更有效方法嗎?
關鍵詞: RISC-V