用于片上系統 (SoC) 中功能塊連接和管理的 ARM? AMBA4? 規范現在具有支持多核計算的高級可擴展接口 (AXI) ? 一致性擴展 (ACE ?)。ACE 規范支持跨多核處理器群集的系統級緩存一致性。在規劃此類系統的功能驗證時,這些一致性擴展帶來了自己的復雜挑戰,例如系統級緩存一致性驗證和緩存狀態轉換驗證。在任何給定時間,驗證 ACE 互連是否可以在系統中的不同 ACE 主節點之間保持緩存一致性非常重要。隨著硬件中的一致性支持以及相關的支持協議,系統和底層組件的復雜性大大增加。因此,這種系統的核查面臨若干挑戰。讓我們掌握對激勵生成基礎設施的要求,以驗證緩存一致性系統。
基于 AMBA ACE 互連的系統可以通過相干互連連接各種主站和從站。每個主組件和從組件都可以單獨支持完整的 ACE、ACE-Lite?、AXI4? 或 AXI3? 協議,并且可以使用不同的總線寬度或時鐘頻率。不同的排列涉及以下參數:緩存狀態、事務類型、突發長度和大小、偵聽機制、偵聽緩存狀態、偵聽響應、對推理獲取的支持、對偵聽過濾的支持以及用戶指定的互連調度。
所有這些交叉組合導致了非常大的驗證空間,從而產生了四個關鍵挑戰:
生成映射到所有這些的激勵包括,確保每個單獨的主、從或互連與其支持的協議完全兼容;
確保啟動主存儲器、偵聽主存儲器和從主存儲器之間所有可能的并發訪問組合都經過驗證,并符合ACE規范;
確保涵蓋所有用戶特定的功能并按預期工作;和
確保核查的完整性
您如何創建一個可以處理所有這些的刺激發電基礎設施?
在這里,我們嘗試向您展示如何做到這一點?這個想法是確保您擁有所有正確的構建塊,并逐步組織它們并將它們拼接在一起以獲得您需要的東西。
我們在VC驗證IP(VIP)中所做的非常相似:我們從一些久經考驗的原生SystemVerilog UVM原子序列開始,并逐步轉向創建復雜的序列。鑒于 UVM 提供的功能,將低級、經過驗證或驗證的方案拼接在一起以創建更復雜的方案要方便得多。無需在序列主體中創建扁平化實現,可以創建分層或嵌套序列以利用之前創建的基本序列。這可以上升到多個層次結構級別,因此可以收斂以滿足最復雜方案的要求。
隨著多個 ACE 組件的復雜性增加,可能需要跨多個序列器和驅動程序協調序列。這些都是通過虛擬序列和序列器實現的。從刺激生成的角度來看,另一個重要功能是序列的分組和分層序列的創建。在UVM中,相似的序列可以組合到一個序列庫中。使用 UVM 基類,您可以創建庫基礎結構,該基礎結構允許通過庫 API 將任何序列注冊到序列庫。在仿真中選取庫后,默認功能會導致選取并執行隨機數量的序列。因此,AXI VIP附帶的序列庫可以用作滿足用戶要求的起點。
可以通過更改關聯配置類的參數來修改序列庫的默認模式。因此,可以拾取特定數量的序列,啟用隨機循環序列,以及編程用戶定義的序列執行。
為序列庫創建自定義規則不僅有助于簡化不同仿真中的多個序列,還有助于避免冗余,并逐步實現所有有趣的系統級場景的融合。因此,無需編寫多個測試,我就可以通過虛擬序列器跨多個序列庫、跨不同接口創建自定義序列執行,從而生成激勵管理設置,有助于更快地滿足所有激勵生成要求。在某些情況下,序列必須知道功能配置,以便根據系統級要求進行重新配置。VC VIP 利用 UVM 資源機制提供的大部分功能,在 ACE 環境中提供可配置性和復雜的激勵生成要求。通過資源機制啟用的可配置性本身就是一個非常有趣的話題,我可以在后續文章中討論它。
在這里,我有一個示例,展示了如何使用序列集合創建自定義序列生成要求。讓我們以需要驗證與 Readclean 事務關聯的所有緩存行狀態的情況為例。(“ReadClean 是一個讀取事務,用于可與其他主節點共享的內存區域。保證 ReadClean 事務不會將更新主內存的責任傳遞給啟動主服務器。通常,ReadClean 事務由想要獲取緩存行的干凈副本的主節點使用,例如具有直寫緩存的主節點。那么,您如何發起此類交易?
ReadClean 事務需要緩存行初始化,然后是緩存行失效,然后是基本的 Readclean。讓我們看看你有什么作為構建塊。首先,采用“緩存行初始化”序列,該序列將主緩存及其對等方緩存的緩存行狀態初始化為一組隨機但有效的狀態。這可確保驗證由主服務器啟動的一致事務的所有不同緩存行狀態轉換。這將需要一個序列,該序列將寫入啟動主服務器本地緩存。數據現在在本地緩存中是臟的。隨后,另一個主節點啟動“寫入”內存。現在,本地緩存中的數據是干凈的,緩存中的數據與內存中的數據匹配。接下來是“BasicReadShared”,它將通過從啟動主服務器獲取干凈的數據將數據讀入每個主服務器的本地緩存中。然后,您將需要一個使主節點的緩存行無效的序列。這將是緩存行失效序列。 對于非推理負載事務,可能需要這樣做。最后,你需要有一個基本的 Readclean 序列:
可以使用嵌套序列和虛擬序列模擬完整的驗證場景。使用分層方法,無論任何場景生成需求有多復雜,對任何場景生成需求進行建模都變得相對容易。這種方法與虛擬序列結合使用時有助于跨多個接口利用此功能,并且在系統上下文中高度相關,如上所示。因此,作為庫一部分的多個虛擬序列可以執行從不同主站到同一從站或不同從站的不同順序相干事務的組合。
隨著協議復雜性的不斷增加和發展,驗證協議所需的基礎設施也需要在復雜性上擴大規模。UVM等高級方法一直在不斷發展,以滿足許多復雜的要求。驗證基本緩存一致性系統本身就具有挑戰性。ACE 協議帶來的額外復雜性對所使用的驗證方法提出了很高的要求。UVM 庫提供的序列生成、分布式相位和配置管理以及最新更新(可通過 UVM-1.2 庫獲得)的功能可以使 VIP 實施利用這些功能來滿足不同系統中的驗證要求。
審核編輯:郭婷
-
服務器
+關注
關注
12文章
9024瀏覽量
85186 -
總線
+關注
關注
10文章
2868瀏覽量
87991 -
AMBA
+關注
關注
0文章
68瀏覽量
14952
發布評論請先 登錄
相關推薦
評論