描述
內容簡介
|
作者簡介
|
目錄
▌第1章 可重用的UVM 驗證環境
1.1 背景技術方案及缺陷 1.1.1 現有方案 1.1.2 主要缺陷 1.2 解決的技術問題 1.3 提供的技術方案 1.3.1 結構 1.3.2 原理 1.3.3 優點 1.3.4 具體步驟
▌第2章 interface 快速宣告、連接和配置傳遞的方法 2.1 背景技術方案及缺陷 2.1.1 現有方案 2.1.2 主要缺陷 2.2 解決的技術問題 2.3 提供的技術方案 2.3.1 結構 2.3.2 原理 2.3.3 優點 2.3.4 具體步驟
▌第3章 在可重用驗證環境中連接interface 的方法 3.1 背景技術方案及缺陷 3.1.1 現有方案 3.1.2 主要缺陷 3.2 解決的技術問題 3.3 提供的技術方案 3.3.1 結構 3.3.2 原理 3.3.3 優點 3.3.4 具體步驟
▌第4章 支援結構通訊埠資料型態的連接interface 的方法 4.1 背景技術方案及缺陷 4.1.1 現有方案 4.1.2 主要缺陷 4.2 解決的技術問題 4.3 提供的技術方案 4.3.1 結構 4.3.2 原理 4.3.3 優點 4.3.4 具體步驟
▌第5章 快速配置和傳遞驗證環境中配置物件的方法 5.1 背景技術方案及缺陷 5.1.1 現有方案 5.1.2 主要缺陷 5.2 解決的技術問題 5.3 提供的技術方案 5.3.1 結構 5.3.2 原理 5.3.3 優點 5.3.4 具體步驟
▌第6章 對採用reactive slave 方式驗證的改進方法 6.1 背景技術方案及缺陷 6.1.1 現有方案 6.1.2 主要缺陷 6.2 解決的技術問題 6.3 提供的技術方案 6.3.1 結構 6.3.2 原理 6.3.3 優點 6.3.4 具體步驟
▌第7章 應用sequence 回饋機制的激勵控制方法 7.1 背景技術方案及缺陷 7.1.1 現有方案 7.1.2 主要缺陷 7.2 解決的技術問題 7.3 提供的技術方案 7.3.1 結構 7.3.2 原理 7.3.3 優點 7.3.4 具體步驟
▌第8章 應用uvm_tlm_analysis_fifo 的激勵控制方法 8.1 背景技術方案及缺陷 8.1.1 現有方案 8.1.2 主要缺陷 8.2 解決的技術問題 8.3 提供的技術方案 8.3.1 結構 8.3.2 原理 8.3.3 優點 8.3.4 具體步驟
▌第9章 快速建立DUT 替代模型的記分板標準方法 9.1 背景技術方案及缺陷 9.1.1 現有方案 9.1.2 主要缺陷 9.2 解決的技術問題 9.3 提供的技術方案 9.3.1 結構 9.3.2 原理 9.3.3 優點 9.3.4 具體步驟
▌第10章 支援亂序比較的記分板的快速實現方法 10.1 背景技術方案及缺陷 10.1.1 現有方案 10.1.2 主要缺陷 10.2 解決的技術問題 10.3 提供的技術方案 10.3.1 結構 10.3.2 原理 10.3.3 優點 10.3.4 具體步驟
▌第11章 對固定延遲輸出結果的RTL 介面訊號的monitor 的簡便方法 11.1 背景技術方案及缺陷 11.1.1 現有方案 11.1.2 主要缺陷 11.2 解決的技術問題 11.3 提供的技術方案 11.3.1 結構 11.3.2 原理 11.3.3 優點 11.3.4 具體步驟
▌第12章 監測和控制DUT 內部訊號的方法 12.1 背景技術方案及缺陷 12.1.1 現有方案 12.1.2 主要缺陷 12.2 解決的技術問題 12.3 提供的技術方案 12.3.1 結構 12.3.2 原理 12.3.3 優點 12.3.4 具體步驟
▌第13章 向UVM 驗證環境中傳遞設計參數的方法 13.1 背景技術方案及缺陷 13.1.1 現有方案 13.1.2 主要缺陷 13.2 解決的技術問題 13.3 提供的技術方案 13.3.1 結構 13.3.2 原理 13.3.3 優點 13.3.4 具體步驟
▌第14章 對設計與驗證平臺連接整合的改進方法 14.1 背景技術方案及缺陷 14.1.1 現有方案 14.1.2 主要缺陷 14.2 解決的技術問題 14.3 提供的技術方案 14.3.1 結構 14.3.2 原理 14.3.3 優點 14.3.4 具體步驟
▌第15章 應用於路由類別模組設計的transaction 偵錯追蹤和控制的方法 15.1 背景技術方案及缺陷 15.1.1 現有方案 15.1.2 主要缺陷 15.2 解決的技術問題 15.3 提供的技術方案 15.3.1 結構 15.3.2 原理 15.3.3 優點 15.3.4 具體步驟
▌第16章 使用UVM sequence item 對包含layered protocol 的RTL 設計進行驗證的簡便方法 16.1 背景技術方案及缺陷 16.1.1 現有方案 16.1.2 主要缺陷 16.2 解決的技術問題 16.3 提供的技術方案 16.3.1 結構 16.3.2 原理 16.3.3 優點 16.3.4 具體步驟
▌第17章 應用於VIP 的存取者模式方法 17.1 背景技術方案及缺陷 17.1.1 現有方案 17.1.2 主要缺陷 17.2 解決的技術問題 17.3 提供的技術方案 17.3.1 結構 17.3.2 原理 17.3.3 優點 17.3.4 具體步驟
▌第18章 設置UVM 目標phase 的額外等待時間的方法 18.1 背景技術方案及缺陷 18.1.1 現有方案 18.1.2 主要缺陷 18.2 解決的技術問題 18.3 提供的技術方案 18.3.1 結構 18.3.2 原理 18.3.3 優點 18.3.4 具體步驟
▌第19章 基於UVM 驗證平臺的模擬結束機制 19.1 背景技術方案及缺陷 19.1.1 現有方案 19.1.2 主要缺陷 19.2 解決的技術問題 19.3 提供的技術方案 19.3.1 結構 19.3.2 原理 19.3.3 優點 19.3.4 具體步驟
▌第20章 記分板和斷言檢查相結合的驗證方法 20.1 背景技術方案及缺陷 20.1.1 現有方案 20.1.2 主要缺陷 20.2 解決的技術問題 20.3 提供的技術方案 20.3.1 結構 20.3.2 原理 20.3.3 優點 20.3.4 具體步驟
▌第21章 支援錯誤注入驗證測試的驗證平臺 21.1 背景技術方案及缺陷 21.1.1 現有方案 21.1.2 主要缺陷 21.2 解決的技術問題 21.3 提供的技術方案 21.3.1 結構 21.3.2 原理 21.3.3 優點 21.3.4 具體步驟
▌第22章 一種基於bind 的ECC 儲存注錯測試方法 22.1 背景技術方案及缺陷 22.1.1 現有方案 22.1.2 主要缺陷 22.2 解決的技術問題 22.3 提供的技術方案 22.3.1 結構 22.3.2 原理 22.3.3 優點 22.3.4 具體步驟
▌第23章 在驗證環境中更優的列舉型態變數的宣告使用方法 23.1 背景技術方案及缺陷 23.1.1 現有方案 23.1.2 主要缺陷 23.2 解決的技術問題 23.3 提供的技術方案 23.3.1 結構 23.3.2 原理 23.3.3 優點 23.3.4 具體步驟
▌第24章 基於UVM 方法學的SVA 封裝方法 24.1 背景技術方案及缺陷 24.1.1 現有方案 24.1.2 主要缺陷 24.2 解決的技術問題 24.3 提供的技術方案 24.3.1 結構 24.3.2 原理 24.3.3 優點 24.3.4 具體步驟
▌第25章 增強對SVA 偵錯和控制的方法 25.1 背景技術方案及缺陷 25.1.1 現有方案 25.1.2 主要缺陷 25.2 解決的技術問題 25.3 提供的技術方案 25.3.1 結構 25.3.2 原理 25.3.3 優點 25.3.4 具體步驟
▌第26章 針對晶片重置測試場景下的驗證框架 26.1 背景技術方案及缺陷 26.1.1 現有方案 26.1.2 主要缺陷 26.2 解決的技術問題 26.3 提供的技術方案 26.3.1 結構 26.3.2 原理 26.3.3 優點 26.3.4 具體步驟
▌第27章 採用事件觸發的晶片重置測試方法 27.1 背景技術方案及缺陷 27.1.1 現有方案 27.1.2 主要缺陷 27.2 解決的技術問題 27.3 提供的技術方案 27.3.1 結構 27.3.2 原理 27.3.3 優點 27.3.4 具體步驟
▌第28章 支援多空間域的晶片重置測試方法 28.1 背景技術方案及缺陷 28.1.1 現有方案 28.1.2 主要缺陷 28.2 解決的技術問題 28.3 提供的技術方案 28.3.1 結構 28.3.2 原理 28.3.3 優點 28.3.4 具體步驟
▌第29章 對參數化類別的壓縮處理技術 29.1 背景技術方案及缺陷 29.1.1 現有方案 29.1.2 主要缺陷 29.2 解決的技術問題 29.3 提供的技術方案 29.3.1 結構 29.3.2 原理 29.3.3 優點 29.3.4 具體步驟
▌第30章 基於UVM 的中斷處理技術 30.1 背景技術方案及缺陷 30.1.1 現有方案 30.1.2 主要缺陷 30.2 解決的技術問題 30.3 提供的技術方案 30.3.1 結構 30.3.2 原理 30.3.3 優點 30.3.4 具體步驟
▌第31章 實現覆蓋率收集程式重用的方法 31.1 背景技術方案及缺陷 31.1.1 現有方案 31.1.2 主要缺陷 31.2 解決的技術問題 31.3 提供的技術方案 31.3.1 結構 31.3.2 原理 31.3.3 優點 31.3.4 具體步驟
▌第32章 對實現覆蓋率收集程式重用方法的改進 32.1 背景技術方案及缺陷 32.1.1 現有方案 32.1.2 主要缺陷 32.2 解決的技術問題 32.3 提供的技術方案 32.3.1 結構 32.3.2 原理 32.3.3 優點 32.3.4 具體步驟
▌第33章 針對相互依賴的成員變數的隨機約束方法 33.1 背景技術方案及缺陷 33.1.1 現有方案 33.1.2 主要缺陷 33.2 解決的技術問題 33.3 提供的技術方案 33.3.1 結構 33.3.2 原理 33.3.3 優點 33.3.4 具體步驟
▌第34章 對隨機約束區塊的控制管理及重用的方法 34.1 背景技術方案及缺陷 34.1.1 現有方案 34.1.2 主要缺陷 34.2 解決的技術問題 34.3 提供的技術方案 34.3.1 結構 34.3.2 原理 34.3.3 優點 34.3.4 具體步驟
▌第35章 隨機約束和覆蓋組同步技術 35.1 背景技術方案及缺陷 35.1.1 現有方案 35.1.2 主要缺陷 35.2 解決的技術問題 35.3 提供的技術方案 35.3.1 結構 35.3.2 原理 35.3.3 優點 35.3.4 具體步驟
▌第36章 在隨機約束物件中實現多重繼承的方法 36.1 背景技術方案及缺陷 36.1.1 現有方案 36.1.2 主要缺陷 36.2 解決的技術問題 36.3 提供的技術方案 36.3.1 結構 36.3.2 原理 36.3.3 優點 36.3.4 具體步驟
▌第37章 支援動態位址映射的暫存器建模方法 37.1 背景技術方案及缺陷 37.1.1 現有方案 37.1.2 主要缺陷 37.2 解決的技術問題 37.3 提供的技術方案 37.3.1 結構 37.3.2 原理 37.3.3 優點 37.3.4 具體步驟
▌第38章 對暫存器突發存取的建模方法 38.1 背景技術方案及缺陷 38.1.1 現有方案 38.1.2 主要缺陷 38.2 解決的技術問題 38.3 提供的技術方案 38.3.1 結構 38.3.2 原理 38.3.3 優點 38.3.4 具體步驟
▌第39章 基於UVM 儲存模型的暫存器突發存取的建模方法 39.1 背景技術方案及缺陷 39.1.1 現有方案 39.1.2 主要缺陷 39.2 解決的技術問題 39.3 提供的技術方案 39.3.2 原理 39.3.3 優點 39.3.4 具體步驟
▌第40章 暫存器間接存取的驗證模型實現框架 40.1 背景技術方案及缺陷 40.1.1 現有方案 40.1.2 主要缺陷 40.2 解決的技術問題 40.3 提供的技術方案 40.3.1 結構 40.3.2 原理 40.3.3 優點 40.3.4 具體步驟
▌第41章 基於UVM 的儲存建模最佳化方法 41.1 背景技術方案及缺陷 41.1.1 現有方案 41.1.2 主要缺陷 41.2 解決的技術問題 41.3 提供的技術方案 41.3.1 結構 41.3.2 原理 41.3.3 優點 41.3.4 具體步驟
▌第42章 對片上儲存空間動態管理的方法 42.1 背景技術方案及缺陷 42.1.1 現有方案 42.1.2 主要缺陷 42.2 解決的技術問題 42.3 提供的技術方案 42.3.1 結構 42.3.2 原理 42.3.3 優點 42.3.4 具體步驟 42.3.5 演算法性能測試 42.3.6 備註
▌第43章 簡便且靈活的暫存器覆蓋率統計收集方法 43.1 背景技術方案及缺陷 43.1.1 現有方案 43.1.2 主要缺陷 43.2 解決的技術問題 43.3 提供的技術方案 43.3.1 結構 43.3.2 原理 43.3.3 優點 43.3.4 具體步驟
▌第44章 模擬真實環境下的暫存器重配置的方法 44.1 背景技術方案及缺陷 44.1.1 現有方案 44.1.2 主要缺陷 44.2 解決的技術問題 44.3 提供的技術方案 44.3.1 結構 44.3.2 原理 44.3.3 優點 44.3.4 具體步驟
▌第45章 使用C 語言對UVM 環境中暫存器的讀寫存取方法 45.1 背景技術方案及缺陷 45.1.1 現有方案 45.1.2 主要缺陷 45.2 解決的技術問題 45.3 提供的技術方案 45.3.1 結構 45.3.2 原理 45.3.3 優點 45.3.4 具體步驟
▌第46章 提高對暫存器模型建模程式可讀性的方法 46.1 背景技術方案及缺陷 46.1.1 現有方案 46.1.2 主要缺陷 46.2 解決的技術問題 46.3 提供的技術方案 46.3.1 結構 46.3.2 原理 46.3.3 優點 46.3.4 具體步驟
▌第47章 相容UVM 的供應商儲存IP 的後門存取方法 47.1 背景技術方案及缺陷 47.1.1 現有方案 47.1.2 主要缺陷 47.2 解決的技術問題 47.3 提供的技術方案 47.3.1 結構 47.3.2 原理 47.3.3 優點 47.3.4 具體步驟 47.3.5 備註
▌第48章 應用於晶片領域的程式倉庫管理方法 48.1 背景技術方案及缺陷 48.1.1 現有方案 48.1.2 主要缺陷 48.2 解決的技術問題 48.3 提供的技術方案 48.3.1 結構 48.3.2 原理 48.3.3 優點 48.3.4 具體步驟
▌第49章 DPI 多執行緒模擬加速技術 49.1 背景技術方案及缺陷 49.1.1 現有方案 49.1.2 主要缺陷 49.2 解決的技術問題 49.3 提供的技術方案 49.3.1 結構 49.3.2 原理 49.3.3 優點 49.3.4 具體步驟
▌第50章 基於UVM 驗證平臺的硬體模擬加速技術 50.1 背景技術方案及缺陷 50.1.1 現有方案 50.1.2 主要缺陷 50.2 解決的技術問題 50.3 提供的技術方案 50.3.1 結構 50.3.2 原理 50.3.3 優點 50.3.4 具體步驟 |
序
前言
20 世紀 90 年代末,相關硬體語言和驗證方法學函式庫檔案不斷發展,開始解決抽象和可擴充性問題。e 語言帶來了隨機約束驗證特性,並且透過eRM 驗證方法引出了代理和功能覆蓋的關鍵概念,但所有這些特性都和特定的EDA 軟體進行了綁定。不久後,SystemVerilog 語言從 Vera 和 Superlog 演變而來,並與Verilog 進行了合併。 2006 年, 西門子EDA 發佈了AVM 作為開放原始碼類別庫。它最初是SystemC TLM 標準的 SystemVerilog 實現,但很快發展為支援標準化測試平臺的方法。隨後,西門子 EDA 和 Cadence 合作開發了 OVM,並於2008 年1 月OVM 首次發佈。這是一個開放原始碼的SystemVerilog 類別庫,結合了 eRM 和AVM 的功能特性,建立了一種被使用者社區認為是可行的方法,因為他們不再被迫使用被綁定的特定EDA 軟體。隨著多家公司開始提供驗證 IP (VIP),OVM的使用開始增加。 2010 年4 月,Accellera VIP 互通性技術委員會投票決定將在 OVM 的基礎上進一步推進以制定驗證方法學的業界標準,於是Synopsys 、西門子 EDA 、Cadence 及使用者社區一起努力建立了 UVM,該 UVM 主要基於 OVM,並補充了對執行階段(Run-time Phases)、暫存器套件(Register Package) 和 TLM2 的支援。 接過 AVM 和 OVM 的接力棒,UVM 被開發為一個開放原始碼的SystemVerilog 函式庫,旨在使其可以在任何支援IEEE 1800 SystemVerilog 標準的EDA 模擬平臺上執行——此舉旨在促進模擬驗證平臺形成一個統一的生態環境。如今,基於 UVM 的VIP 及 UVM 的模擬環境可以在不同EDA 模擬平臺之間輕鬆遷移。擁有業界標準方法帶來了許多優勢,其中最重要的是驗證團隊可以專注於開發驗證環境和測試用例,而不必從頭開始開發基於專案或公司的方法和測試平臺基礎設施,從而大大提升了效率。 而在驗證實際工作場景中,存在著諸多需要解決的工程問題,因此本書基於晶片驗證中廣泛使用的UVM 驗證方法學,舉出了針對具體問題的解決方法以供相關工程技術人員或相關專業在校生參考和學習。
本書內容 本書是基於UVM 驗證方法學的針對晶片驗證實際工程場景的技術專題工具書,包括對多種實際問題場景下的解決專題,推薦作為UVM 的進階教材進行學習。 第1 章介紹可重用的UVM驗證環境,舉出了架設可重用環境的想法和方法。 第2~4 章介紹待測設計(DUT) 與測試平臺連接的方法。 第5 章介紹在測試平臺中進行配置物件的快速配置和傳遞的方法。 第6 章對reactive slave 方式驗證舉出了分析和驗證環境架設的方法。 第7 章和第8 章介紹對於激勵控制的方法。 第9 章和第10 章介紹對於記分板的快速實現方法。 第11 章介紹對於固定延遲輸出結果的RTL 介面訊號的監測方法。 第12 章介紹監測和控制DUT 內部訊號的方法。 第13 章介紹向基於UVM 的驗證環境中傳遞設計參數的方法。 第14 章介紹驗證平臺和設計之間連接整合的改進方法。 第15 章和第16 章介紹事務級資料的偵錯追蹤和對layered protocol 設計驗證的簡便方法。 第17 章介紹應用於VIP 的存取者模式方法。 第18 章介紹設置UVM 目標phase 的額外等待時間的方法。 第19 章介紹基於UVM 驗證平臺的模擬結束機制。 第20 章介紹記分板和斷言檢查相結合的驗證方法。 第21 章介紹支援錯誤注入測試的驗證平臺的架設方法。 第22 章介紹一種基於bind 的ECC 儲存注錯測試方法。 第23 章介紹在驗證環境中使用列舉型態變數的改進方法。 第24 章和第25 章介紹基於UVM 的SVA 封裝、偵錯和控制的方法。 第26~28 章介紹多種對於晶片重置的測試方法。 第29 章介紹對參數化類別的壓縮處理方法。 第30 章介紹基於UVM 的中斷處理方法。 第31 章和第32 章介紹提高覆蓋率程式的可重用方法。 第33~36 章介紹基於UVM 的多種場景下的隨機約束方法。 第37 章介紹支援動態位址映射的暫存器建模方法。 第38 章和第39 章介紹對暫存器突發存取的建模方法。 第40 章介紹對於暫存器間接存取的建模方法。 第41 章介紹對於UVM 儲存建模的最佳化方法。 第42 章介紹對片上儲存空間動態管理的方法。 第43 章介紹簡便靈活的暫存器覆蓋率統計收集方法。 第44 章模擬真實環境下暫存器重配置驗證的方法。 第45 章介紹在UVM 環境中使用C 語言對暫存器進行讀寫存取的方法。 第46 章介紹提高對暫存器模型建模程式可讀性的方法。 第47 章介紹相容UVM 的供應商儲存IP 的後門存取方法。 第48 章介紹應用於晶片領域的程式倉庫管理方法。 第49 章介紹DPI 多執行緒模擬加速的方法。 第50 章介紹基於UVM 驗證平臺的硬體模擬加速技術。
本書特色 (1) 不同於帶領讀者學習UVM 的基礎用法,本書分為多個專題,每個專題專注於解決一種晶片驗證場景下的工程問題,相關技術工程師可以快速參考並複現解決想法和步驟,實用性強。 (2) 本書詳細描述了每個專題要解決的問題、背景、解決的想法、基本原理和步驟,並舉出了範例程式以供參考。
目標讀者 (1) 具備一定基礎的相關專業的在校大學生。 (2) 相關領域的技術工程人員。
學習建議 (1) 本書由一個個較為獨立的技術專題組成,需要讀者具備一定的技術基礎,包括SystemVerilog、UVM 及一些硬體常識。 (2) 可以按照章節順序進行學習,也可根據興趣或實際專案需要選擇部分章節進行學習。 (3) 本書中的程式範例部分,有部分程式是虛擬程式碼,僅作為範例進行講解,需要讀者在理解的基礎上自行進行專案實踐應用,以應對不同專案中存在的技術問題。掃描目錄上方二維碼可下載本書原始程式。 由於編者水準有限,本書難免存在不足之處,懇請讀者給予批評指正。
編者 2024 年 1 月 |