《晶片驗證漫遊指南——從系統理論到UVM的驗證全視界 》是2018年電子工業出版社出版的圖書,作者是劉斌。
基本介紹
- 書名:晶片驗證漫遊指南——從系統理論到UVM的驗證全視界
- 作者:劉斌
- 出版社:電子工業出版社
- 出版時間:2018年4月
- 頁數:560 頁
- 定價:99 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787121339011
內容簡介,作者簡介,圖書目錄,
內容簡介
資深驗證專家劉斌(路桑)向您全面介紹晶片驗證,從驗證的理論,到SystemVerilog語言和UVM驗證方法學,再到高級驗證項目話題。這本綜合性、實用性的驗證理論和編程方面的圖書,針對晶片驗證領域不同級別的驗證工程師,給出由淺入深的技術指南:學習驗證理論來認識驗證流程和標準,學習SystemVerilog語言和UVM方法學來掌握目前主流的動態驗證技術,了解高級驗證話題在今後遇到相關問題時可以參考。
作者簡介
劉斌(路桑)目前是Intel公司的資深驗證專家。在Intel移動通信事業部主持驗證架構規劃和方法學研究,擔任過幾款億門級通信晶片的驗證經理角色。在工程領域之外,他在西安電子科技大學和西安交通大學客座講授晶片驗證課程。創辦的驗證技術訂閱號“路科驗證”,目前已有超過10000名的訂閱者。多次在設計驗證行業國際會議和展覽中發表論文,並做了富有特色的演講。在西安交通大學取得微電子專業學士學位,在瑞典皇家理工學院取得晶片設計專業碩士學位。
圖書目錄
第1章 晶片驗證全視
1.1 功能驗證簡介
1.2 驗證的處境
1.2.1 驗證語言的發展
1.2.2 驗證面臨的挑戰
1.3 驗證能力的5個維度
1.3.1 完備性
1.3.2 復用性
1.3.3 高效性
1.3.4 高產出
1.3.5 代碼性能
1.4 驗證的任務和目標
1.4.1 按時保質低耗
1.4.2 晶片研發與客戶反饋
1.4.3 缺陷增長曲線
1.5 驗證的周期
1.5.1 驗證周期中的檢查點
1.5.2 功能詳述
1.5.3 制定驗證計畫
1.5.4 開發驗證環境
1.5.5 調試環境和HDL檔案
1.5.6 回歸測試
1.5.7 晶片生產
1.5.8 矽後系統測試
1.5.9 逃逸分析
1.6 本章結束語
第2章 驗證的策略
2.1 設計的流程
2.1.1 TLM模型的需求和ESL開發
2.1.2 傳統的系統設計流程
2.1.3 ESL系統設計流程
2.1.4 語言的抽象級比較
2.1.5 傳統的系統集成視角
2.1.6 ESL系統集成視角
2.2 驗證的層次
2.2.1 模組級
2.2.2 子系統級
2.2.3 晶片系統級
2.2.4 矽後系統級
2.3 驗證的透明度
2.3.1 黑盒驗證
2.3.2 白盒驗證
2.3.3 灰盒驗證
2.4 激勵的原則
2.4.1 接口類型
2.4.2 序列顆粒度
2.4.3 可控性
2.4.4 組件獨立性
2.4.5 組合自由度
2.5 檢查的方法
2.6 集成的環境
2.6.1 驗證平台
2.6.2 待驗設計
2.6.3 運行環境
2.6.4 驗證管理
2.7 本章結束語
第3章 驗證的方法
3.1 動態仿真
3.1.1 定向測試
3.1.2 隨機測試
3.1.3 基於覆蓋率驅動的隨機驗證
3.1.4 基於TLM的隨機驗證
3.1.5 斷言檢查
3.2 靜態檢查
3.2.1 語法檢查
3.2.2 語義檢查
3.2.3 跨時鐘域檢查
3.2.4 形式驗證
3.3 開發環境
3.3.1 Vim開發環境
3.3.2 商業SV開發環境——DVT
3.4 虛擬模型
3.5 硬體加速
3.6 效能驗證
3.6.1 功率和能量
3.6.2 靜態功耗和動態功耗
3.6.3 節能技術
3.6.4 效能驗證
3.6.5 功耗預測與最佳化
3.7 性能驗證
3.7.1 設定目標
3.7.2 測試環境
3.7.3 驗證方法
3.8 趨勢展望
3.8.1 技術之間的橫向跨越
3.8.2 層次之間的縱向復用
3.9 本章結束語
第4章 驗證的計畫
4.1 計畫概述
4.2 計畫的內容
4.2.1 技術的視角
4.2.2 項目的視角
4.3 計畫的實現
4.3.1 邀請相關人員
4.3.2 開會討論
4.3.3 確定測試場景
4.3.4 創建驗證環境
4.4 計畫的進程評估
4.4.1 回歸測試通過率
4.4.2 代碼覆蓋率
4.4.3 斷言覆蓋率
4.4.4 功能覆蓋率
4.4.5 缺陷曲線
4.5 本章結束語
第5章 驗證的管理
5.1 驗證周期的檢查清單
5.2 驗證管理的三要素
5.2.1 時間管理
5.2.2 人力資源安排
5.2.3 任務拆分和重組
5.3 驗證的收斂
5.3.1 回歸流程
5.3.2 回歸質量
5.3.3 回歸效率
5.4 讓漏洞無處可逃
5.5 團隊建設
5.6 驗證師的培養
5.6.1 全矽能力
5.6.2 不做假設
5.6.3 專注力
5.6.4 邏輯性
5.6.5 “戰鼓光環”
5.6.6 降低複雜度
5.7 驗證的專業化
5.7.1 對驗證的偏見
5.7.2 驗證面臨的現狀
5.7.3 驗證標準化
5.7.4 驗證經驗的積累和突破
5.8 本章結束語
第6章 驗證的結構
6.1 測試平台概述
6.2 硬體設計描述
6.2.1 功能描述
6.2.2 設計結構
6.2.3 接口描述
6.2.4 接口時序
6.2.5 暫存器描述
6.3 激勵發生器
6.4 監測器
6.5 比較器
6.6 驗證結構
6.6.1 項目背景
6.6.2 MCDF驗證進度安排
6.7 本章結束語
第7章 SV環境構建
7.1 數據類型
7.2 模組定義與例化
7.2.1 模組定義
7.2.2 模組例化
7.2.3 參數使用
7.2.4 參數修改
7.2.5 宏定義
7.3 接口
7.3.1 接口連線方式1
7.3.2 接口連線方式2
7.3.3 接口的其他套用
7.4 程式和模組
7.4.1 Verilog設計競爭問題
7.4.2 SV的仿真調度機制
7.4.3 module數據採樣示例1
7.4.4 module數據採樣示例2
7.4.5 program數據採樣示例
7.5 測試的始終
7.5.1 系統函式調用方式結束
7.5.2 program隱式結束
7.5.3 program顯式結束
7.6 本章結束語
第8章 SV組件實現
8.1 激勵發生器的驅動
8.1.1 激勵驅動的方法
8.1.2 任務和函式
8.1.3 數據生命周期
8.1.4 通過接口驅動
8.1.5 測試向量產生
8.1.6 仿真結束控制
8.2 激勵發生器的封裝
8.2.1 類的封裝
8.2.2 類的繼承
8.2.3 成員覆蓋
8.2.4 虛方法
8.2.5 句柄使用
8.2.6 對象複製
8.2.7 對象回收
8.3 激勵發生器的隨機化
8.3.1 可隨機的激勵種類
8.3.2 約束求解器
8.3.3 隨機變數和數組
8.3.4 約束塊
8.3.5 隨機化控制
8.3.6 隨機化的穩定性
8.3.7 隨機化的流程控制
8.3.8 隨機化的系統函式
8.4 監測器的採樣
8.4.1 Interface clocking簡介
8.4.2 利用clocking事件同步
8.4.3 利用clocking採樣數據
8.4.4 利用clocking產生激勵
8.4.5 monitor的採樣功能
8.5 組件間的通信
8.5.1 通知的需求
8.5.2 資源共享的需求
8.5.3 數據通信的需求
8.5.4 進程同步的需求
8.5.5 進程通信要素的比較和套用
8.6 比較器和參考模型
8.6.1 異常檢查
8.6.2 常規檢查
8.6.3 時序檢查
8.6.4 組件連線
8.7 測試環境的報告規範
8.7.1 信息報告庫
8.7.2 信息庫使用場景
8.8 本章結束語
第9章 SV系統集成
9.1 包的意義
9.2 驗證環境的組裝
9.2.1 封裝驗證環境的方式
9.2.2 模組環境的復用考量
9.2.3 比較器的復用考量
9.2.4 頂層環境的實現
9.3 測試場景的生成
9.3.1 動態控制激勵
9.3.2 調度多個激勵器
9.3.3 執行緒的精細控制
9.3.4 動態測試向量
9.3.5 向量群落的並發控制
9.4 靈活化的配置
9.4.1 Agent的兩面性
9.4.2 各個組件的模式配置
9.4.3 驗證結構的集成順序
9.5 初論環境的復用性
9.5.1 復用的策略
9.5.2 水平復用的套用
9.5.3 垂直復用的套用
9.6 本章結束語
第10章 UVM世界觀
10.1 我們所處的驗證時代
10.2 類庫地圖
10.3 工廠機制
10.3.1 工廠的意義
10.3.2 工廠提供的便利
10.3.3 覆蓋方法
10.3.4 確保正確覆蓋的代碼要求
10.4 核心基類
10.4.1 域的自動化
10.4.2 複製
10.4.3 比較
10.4.4 列印
10.4.5 打包和解包
10.5 phase機制
10.5.1 phase執行機制
10.5.2 如何開始UVM仿真
10.5.3 如何結束UVM仿真
10.6 config機制
10.6.1 interface傳遞
10.6.2 變數設定
10.6.3 config object傳遞
10.6.4 config機制
10.6.5 其他配置方法
10.6.6 uvm_resource_db的使用
10.7 訊息管理
10.7.1 訊息方法
10.7.2 訊息處理
10.7.3 訊息機制
10.8 宏的優劣探討
10.9 本章結束語
第11章 UVM結構
11.1 組件家族
11.1.1 uvm_driver
11.1.2 uvm_monitor
11.1.3 uvm_sequencer
11.1.4 uvm_agent
11.1.5 uvm_scoreboard
11.1.6 uvm_env
11.1.7 uvm_test
11.2 把DUT裝進TB分幾步
11.2.1 MCDF頂層驗證環境方案1
11.2.2 MCDF頂層驗證環境方案2
11.3 構建環境的內經
11.3.1 環境構建的四要素
11.3.2 環境元素分類
11.4 本章結束語
第12章 UVM通信
12.1 TLM通信概論
12.2 單向、雙向及多向通信
12.2.1 單向通信
12.2.2 雙向通信
12.2.3 多向通信
12.3 通信管道套用
12.3.1 TLM FIFO
12.3.2 Analysis Port
12.3.3 Analysis TLM FIFO
12.3.4 Request & Response 通信
管道
12.4 TLM2通信
12.4.1 接口實現
12.4.2 傳送數據
12.4.3 時間標記
12.4.4 典型使用
12.5 同步通信元件
12.5.1 uvm_event套用
12.5.2 uvm_barrier套用
12.5.3 uvm_callback套用
12.6 本章結束語
第13章 UVM序列
13.1 新手上路
13.2 Sequence和Item
13.2.1 Sequence Item
13.2.2 Flat Sequence
13.2.3 Hierarchical Sequence
13.3 Sequencer和Driver
13.3.1 雙方的TLM連線埠和方法
13.3.2 事務傳輸