System Verilog 驗證:測試平臺編寫指南, 3/e (SystemVerilog for Verification: A Guide to Learning the Testbench Language Features, 3/e)
張春 張春 譯
- 出版商: 科學出版
- 出版日期: 2023-01-01
- 售價: $588
- 貴賓價: 9.5 折 $559
- 語言: 簡體中文
- 頁數: 410
- 裝訂: 平裝
- ISBN: 7030727460
- ISBN-13: 9787030727466
-
相關分類:
Verilog
- 此書翻譯自: SystemVerilog for Verification: A Guide to Learning the Testbench Language Features, 3/e (Paperback)
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
$480$432 -
$580$435 -
$550$550 -
$709深入理解計算機系統, 3/e (Computer Systems: A Programmer's Perspective, 3/e)
-
$516芯片驗證漫游指南 : 從系統理論到 UVM 的驗證全視界
-
$414$393 -
$540$486 -
$474$450 -
$352FPGA 時序約束與分析
-
$654$621 -
$705IC 芯片設計中的靜態時序分析實踐
-
$654$621 -
$414$393 -
$714$678 -
$1,134$1,077 -
$948$901 -
$534$507 -
$594$564 -
$599$569 -
$534$507 -
$714$678 -
$517OpenAI API 接口應用實戰
-
$369ASIC 設計與綜合:使用 Verilog 進行 RTL 設計
-
$621C++ 之美:代碼簡潔、安全又跑得快的 30個要訣 (Beautiful C++: 30 Core Guidelines for Writing Clean, Safe, and Fast Code)
-
$468$445
商品描述
本書講解了System Verilog Testbench強大的驗證功能,清楚地解釋了面向對象編程、約束隨機測試和功能覆蓋的概念。本書涵蓋System Verilog所有驗證結構,如類、程式塊、隨機化和功能覆蓋等,並通過超過500個代碼示例和詳細解釋,說明瞭學習多態性、回調和工廠模式等概念的內部工作原理。此外,本書提供了數百條指導原則,為全職驗證工程師和學習這一技能的讀者提供幫助,讓讀者可以更高效地使用這種語言,並解釋了常見的編碼錯誤,以便讀者可以避免這些陷阱。
作者簡介
克裡斯·斯皮爾(Chris Spear)在ASIC設計和驗證領域工作了30年。他在數字設備公司(DEC)開始了自己的職業生涯,擔任DECsim的CAD工程師,連接了有史以來的第一臺Zycad設備。作為VAX 8600的硬件驗證工程師,設計硬件行為模擬加速器。然後他轉到Cadence公司,擔任Verilog XL的應用工程師,隨後在Viewlogic工作了一段時間。Chris目前在Synopsys公司擔任驗證顧問,這是他十幾年前創造的頭銜。他編寫了本書(System Verilog for Verification)的第一版和第二版。
目錄大綱
第1章 驗證導論
1.1 驗證流程
1.2 驗證方法學
1.3 基本測試平臺的功能
1.4 定向測試
1.5 方法學基礎
1.6 受約束的隨機激勵
1.7 隨機化的對象是什麽?
1.8 功能覆蓋率
1.9 測試平臺的構件
1.10 分層的測試平臺
1.11 建立一個分層的測試平臺
1.12 模擬環境的階段
1.13 最大限度的代碼重用
1.14 測試平臺的性能
1.15 小結
1.16 練習
第2章 數據類型
2.1 內建數據類型
2.2 定寬數組
2.3 動態數組
2.4 隊列
2.5 關聯數組
2.6 數組的方法
2.7 選擇存儲類型
2.8 使用typedef創建新的類型
2.9 創建用戶自定義結構
2.10 包
2.11 類型轉換
2.12 流操作符
2.13 枚舉類型
2.14 常量
2.15 字符串
2.16 表達式的位寬
2.17 小結
2.18 練習
第3章 過程語句和子程序
3.1 過程語句
3.2 任務、函數以及void函數
3.3 任務和函數概述
3.4 子程序參數
3.5 子程序的返回
3.6 局部數據存儲
3.7 時間值
3.8 小結
3.9 練習
第4章 連接設計和測試平臺
4.1 將測試平臺和設計分開
4.2 接口
4.3 激勵時序
4.4 接口的驅動和採樣
4.5 程序塊需要考慮的因素
4.6 將模塊連接起來
4.7 頂層作用域
4.8 程序和模塊的交互
4.9 SystemVerilog斷言
4.10 四埠的ATM路由器
4.11 Ref埠的方向
4.12 小結
4.13 練習
第5章 面向對象編程(OOP)基礎
5.1 簡介
5.2 考慮名詞,而非動詞
5.3 編寫第一個類(Class)
5.4 在哪裡定義類
5.5 OOP術語
5.6 創建新對象
5.7 對象的解除分配(deallocation)
5.8 使用對象
5.9 類的方法
5.10 在類之外定義方法
5.11 靜態變量和全局變量
5.12 作用域規則
5.13 在一個類內使用另一個類
5.14 理解動態對象
5.15 對象的覆制
5.16 公有和私有
5.17 題外話
5.18 建立一個測試平臺
5.19 小結
5.20 練習
第6章 隨機化
6.1 介紹
6.2 什麽需要隨機化?
6.3 SystemVerilog中的隨機化
6.4 約束
6.5 解的概率
6.6 控制多個約束塊
6.7 有效性約束
6.8 內嵌約束
6.9 pre_randomize和post_randomize函數
6.10 隨機數函數
6.11 約束的技巧和技術
6.12 隨機化的常見錯誤
6.13 疊代和數組約束
6.14 產生原子激勵和場景
6.15 隨機控制
6.16 隨機數發生器
6.17 隨機器件配置
6.18 小結
6.19 練習
第7章 線程以及線程間的通信
7.1 線程的使用
7.2 停止線程
7.3 線程間的通信
7.4 事件
7.5 旗語
7.6 信箱
7.7 構築帶線程並可實現線程間通信的測試程序
7.8 小結
7.9 練習
第8章 面向對象編程的高級技巧指南
8.1 繼承簡介
8.2 藍圖(Blueprint)模式
8.3 類型向下轉換(Downcasting)和虛擬方法
8.4 合成、繼承和其他替代的方法
8.5 對象的覆制
8.6 抽象類和純虛擬方法
8.7 回調
8.8 參數化的類
8.9 靜態和單例類
8.10 創建測試註冊表
8.11 小結
8.12 練習
第9章 功能覆蓋率
9.1 收集覆蓋率數據
9.2 覆蓋率的類型
9.3 功能覆蓋策略
9.4 功能覆蓋率的簡單例子
9.5 覆蓋組詳解
9.6 覆蓋組的觸發
9.7 數據採樣
9.8 交叉覆蓋率
9.9 通用的覆蓋組
9.10 覆蓋選項
9.11 覆蓋率數據的分析
9.12 在模擬過程中進行覆蓋率統計
9.13 小結
9.14 練習
第10章 高級接口
10.1 ATM路由器的虛擬接口
10.2 連接到多個不同的設計配置
10.3 參數化接口和虛擬接口
10.4 接口中的過程代碼
10.5 小結
10.6 練習
第11章 完整的SystemVerilog測試平臺
11.1 設計單元
11.2 測試平臺的模塊
11.3 修改測試
11.4 小結
11.5 練習
第12章 SystemVerilog與C/C++語言的交互
12.1 傳遞簡單的數值
12.2 連接簡單的C子程序
12.3 調用C++程序
12.4 共享簡單數組
12.5 開放數組(open array)
12.6 共享覆合類型
12.7 純導入方法和關聯導入方法
12.8 在C程序中與SystemVerilog通信
12.9 與其他語言交互
12.10 小結
12.11 練習
參考文獻