圖書內容
本書系統地對Verilog HDL語法和程式設計進行了介紹,明確了數字可綜合邏輯設計和測試仿真程式設計在Verilog HDL語言中的不同,通過對典型的組合邏輯電路、時序邏輯電路和測試程式的設計舉例,較為完整地說明了Verilog HDL語言在數字積體電路中的使用方法。
全書共8章,主要內容包括硬體描述語言和Verilog HDL概述,Verilog HDL的基本語法,Verilog HDL程式設計語句和描述方式,Verilog HDL對組合邏輯和時序邏輯的設計和舉例,Verilog HDL積體電路測試程式和測試方法,較為複雜的數字電路和系統的設計舉例,數字積體電路中Verilog HDL的EDA工具和使用,以及對Verilog HDL發展的分析等。
本書可作為電子信息類相關專業本科生和研究生的
教材,也可作為數字積體電路設計工程師的參考書。
圖書目錄
第1章 Verilog HDL數字積體電路設計方法概述 1
1.1 數字積體電路的發展和設計方法的演變 1
1.2 硬體描述語言 3
1.3 Verilog HDL的發展和國際標準 3
1.4 Verilog HDL和VHDL 5
1.5 Verilog HDL在數字積體電路設計中的優點 7
1.6 功能模組的可重用性 9
1.7 IP核和智慧財產權保護 9
1.8 Verilog HDL在數字積體電路設計流程中的作用 10
本章小結 11
思考題和習題 11
第2章 Verilog HDL基礎知識 13
2.1 Verilog HDL的語言要素 13
2.1.1 空白符 13
2.1.2 注釋符 13
2.1.3 標識符和轉義標識符 14
2.1.4 關鍵字 14
2.1.5 數值 15
2.2 數據類型 17
2.2.1 物理數據類型 18
2.2.2 連線型和暫存器型數據類型的聲明 21
2.2.3 存儲器型 22
2.2.4 抽象數據類型 22
2.3 運算符 24
2.3.1 算術運算符 24
2.3.2 關係運算符 25
2.3.3 相等關係運算符 26
2.3.4 邏輯運算符 27
2.3.5 按位運算符 27
2.3.6 歸約運算符 28
2.3.7 移位運算符 29
2.3.8 條件運算符 30
2.3.9 連線和複製運算符 30
2.4 模組 31
2.4.1 模組的基本概念 31
2.4.2 連線埠 33
本章小結 33
思考題和習題 34
第3章 Verilog HDL程式設計語句和描述方式 35
3.1 數據流建模 35
3.2 行為級建模 37
3.2.1 過程語句 38
3.2.2 語句塊 41
3.2.3 過程賦值語句 44
3.2.4 連續賦值語句 47
3.2.5 條件分支語句 49
3.2.6 循環語句 53
3.3 結構化建模 57
3.3.1 模組級建模 57
3.3.2 門級建模 64
3.3.3 開關級建模 66
本章小結 68
思考題和習題 68
第4章 Verilog HDL數字邏輯電路設計方法 71
4.1 Verilog HDL語言的設計思想和可綜合特性 71
4.2 組合電路的設計 74
4.2.1 數字加法器 77
4.2.2 數據比較器 80
4.2.3 數據選擇器 81
4.2.4 數字編碼器 82
4.2.5 數字解碼器 87
4.2.6 奇偶校驗器 89
4.3 時序電路的設計 91
4.3.1 觸發器 96
4.3.2 計數器 99
4.3.3 移位暫存器 100
4.3.4 序列信號發生器 101
4.4 有限同步狀態機 105
本章小結 115
思考題和習題 115
第5章 仿真驗證與Testbench編寫 119
5.1 Verilog HDL電路仿真和驗證概述 119
5.2 Verilog HDL測試程式設計基礎 120
5.2.1 Testbench及其結構 120
5.2.2 測試平台舉例 123
5.2.3 Verilog HDL仿真結果確認 126
5.2.4 Verilog HDL仿真效率 128
5.3 與仿真相關的系統任務 129
5.3.1 $display和$write 129
5.3.2 $monitor和$strobe 131
5.3.3 $time和$realtime 133
5.3.4 $finish和$stop 134
5.3.5 $readmemh和$readmemb 136
5.3.6 $random 137
5.3.7 值變轉儲檔案系統任務 138
5.4 信號時間賦值語句 142
5.4.1 時間延遲的語法說明 142
5.4.2 時間延遲的描述形式 143
5.4.3 邊沿觸發事件控制 147
5.4.4 電平敏感事件控制 151
5.5 任務和函式 152
5.5.1 任務 152
5.5.2 函式 156
5.5.3 任務與函式的區別 159
5.6 典型測試向量的設計 160
5.6.1 變數初始化 160
5.6.2 數據信號測試向量的產生 161
5.6.3 時鐘信號測試向量的產生 162
5.6.4 匯流排信號測試向量的產生 164
5.7 用戶自定義元件模型 166
5.7.1 UDP的定義與調用 166
5.7.2 UDP套用實例 167
5.8 基本門級元件和模組的延遲建模 170
5.8.1 門級延遲建模 170
5.8.2 模組延遲建模 174
5.8.3 與時序檢查相關的系統任務 177
5.9 編譯預處理語句 178
5.9.1 宏定義 178
5.9.2 檔案包含處理 180
5.9.3 仿真時間標度 181
5.9.4 條件編譯 182
5.9.5 其它語句 183
5.10 Verilog HDL測試方法簡介 183
本章小結 184
思考題和習題 184
第6章 Verilog HDL高級程式設計舉例 188
6.1 數字電路系統設計的層次化描述方法 188
6.2 典型電路設計 192
6.2.1 加法器樹乘法器 192
6.2.2 Wallace樹乘法器 196
6.2.3 複數乘法器 198
6.2.4 FIR濾波器的設計 199
6.2.5 片記憶體儲器的設計 203
6.2.6 FIFO設計 208
6.2.7 鍵盤掃描和編碼器 212
6.2.8 log函式的Verilog HDL設計 219
6.2.9 CORDIC算法的Verilog HDL實現 223
6.3 匯流排控制器設計 231
6.3.1 UART接口控制器 231
6.3.2 SPI接口控制器 236
本章小結 240
思考題和習題 240
第7章 仿真測試工具和綜合工具 242
7.1 數字積體電路設計流程簡介 242
7.1.1 設計規範 242
7.1.2 設計畫分 243
7.1.3 設計輸入 243
7.1.4 仿真 243
7.1.5 綜合 244
7.1.6 適配布線 244
7.1.7 時序分析 244
7.1.8 物理驗證 245
7.1.9 設計結束 245
7.2 測試和仿真工具 245
7.2.1 ModelSim的使用 246
7.2.2 NC-Verilog的使用 254
7.3 綜合工具 257
7.3.1 Synplify的使用 257
7.3.2 Design Compiler的使用 262
7.4 測試和綜合舉例 265
7.4.1 自動布局布線 265
7.4.2 後仿真 266
7.4.3 在ModelSim中加入仿真庫 268
本章小結 270
思考題和習題 270
第8章 設計與驗證語言的發展趨勢 272
本章小結 276
思考題和習題 276
參考文獻 277