利用Verilog進行數字系統設計與仿真是電子系統工程師必備的技能之一,《Verilog HDL數字設計與建模》最突出的特色就是對數字電路系統的工程仿真和設計技術進行了深入的討論。由Joseph Cavanagh編著的《Verliog HDL數字設計與建模》內容涵蓋了電路建模、基本語法與電路、典型數學運算、復雜的編碼/解碼/ 糾錯電路、各類時序狀態機和完整的流水線 RISC 處理器的設計等。書中給出的所有工程設計實例均為可獨立運行及驗證的實用電路模塊,并給出了所有例子的完整Verilog 源代碼、testbench、仿真結果和仿真波形。附錄中還給出了部分課后習題的參考答案。
《Verliog HDL數字設計與建模》可作為電子信息類和計算機科學等專業的高年級本科生與研究生的教材,對于初步接觸過數字邏輯設計的相關領域的工程師也是一本很有價值的參考書。
《Verliog HDL數字設計與建模》在內容涵蓋了電路建模、基本語法與電路、典型數學運算、復雜的編碼/解碼/糾錯電路、各類時序狀態機和完整的流水線 RISC 處理器的設計等。《Verliog HDL數字設計與建模》中的實例是作者根據其20多年的計算機設備設計經驗精選出來的。雖然邏輯設計的方法貫穿于整本書之中,但本書的意圖并不是討論邏輯設計。讀者應該有足夠的組合邏輯和時序邏輯的設計背景。書中大量的設計實例將幫助讀者徹底理解Verilog這門流行的硬件描述語言。《Verliog HDL數字設計與建模》的讀者應該是電子設計工程師、計算機工程師、計算機科學家, 以及電子工程、計算機工程和計算機科學專業的在讀研究生及這些專業的高年級本科生。
第1章 簡介
1.1 HDL的歷史
1.2 Verilog HDL
1.2.1 IEEE標準
1.2.2 特性
1.3 斷言
第2章 概述
2.1 設計方法
2.2 模16同步計數器
2.3 4比特行波進位加法器
2.4 模塊和端口
2.4.1 設計一個用于仿真的testbench
2.4.2 結構定義
2.5 數據流建模簡介
2.5.1 二輸入異或門
2.5.2 帶延遲信息的四個二輸入與門
2.6 行為級建模簡介
2.6.1 三輸入或門
2.6.2 4比特加法器
2.6.3 模16同步計數器
2.7 結構化建模簡介
2.7.1 實現積之和式
2.7.2 全加器
2.7.3 4比特行波進位加法器
2.8 混合建模簡介
2.8.1 全加器
2.9習題
第3章 語言元素
3.1 注釋
3.2 標識符
3.3 關鍵字
3.3.1 雙向門
3.3.2 電荷儲存強度
3.3.3 CMOS門
3.3.4 組合邏輯門
3.3.5 連續賦值
3.3.6 數據類型
3.3.7 模塊說明
3.3.8 MOS開關
3.3.9 多路分支
3.3.10 命名的事件
3.3.11 參數
3.3.12 端口聲明
3.3.13 過程塊結構
3.3.14 過程連續賦值語句
3.3.15 過程控制
3.3.16 上拉和下拉門
3.3.17 信號強度
3.3.18 specify塊
3.3.19 任務和函數
3.3.20 三態門
3.3.21 時序控制
3.3.22 用戶自定義原語
3.4 值集
3.5 數據類型
3.5.1 線型數據類型
3.5.2 寄存器數據類型
3.6 編譯器指令
3.7 習題
第4章 表達式
4.1 操作數
4.1.1 常數
4.1.2 參數
4.1.3 線
4.1.4 寄存器
4.1.5 比特選擇
4.1.6 部分選擇
4.1.7 存儲元件
4.2 操作符
4.2.1 算術運算操作符
4.2.2 邏輯運算操作符
4.2.3 關系運算操作符
4.2.4 相等運算操作符
4.2.5 按位運算操作符
4.2.6 縮位運算操作符
4.2.7 移位運算操作符
4.2.8 條件運算操作符
4.2.9 拼接運算操作符
4.2.10 復制運算操作符
4.3 習題
第5章 門級建模
5.1 多輸入門
5.2 門延遲
5.2.1 慣性延遲
5.2.2 傳輸延遲
5.2.3 模塊路徑延遲
5.3 更多的設計實例
5.3.1 迭代網絡
5.3.2 優先編碼器
5.4 習題
第6章 用戶自定義原語
6.1 定義用戶自定義原語
6.2 組合邏輯UDP
6.2.1 卡諾圖輸入變量
6.3 時序的用戶自定義原語
6.3.1 電平敏感UDP
6.3.2 邊沿有效UDP
6.4 習題
第7章 數據流建模
7.1 連續賦值
7.1.1 三輸入與門
7.1.2 積之和
7.1.3 縮位操作符
7.1.4 八進制到二進制的編碼器
7.1.5 4選1選通器
7.1.6 使用條件操作符實現4選1選通器
7.1.7 4比特加法器
7.1.8 超前進位加法器
7.1.9 異步時序狀態機
7.1.10 脈沖模式異步時序狀態機
7.2 隱含連續賦值
7.3 延遲
7.4 習題
第8章 行為級建模
8.1 過程化結構
8.1.1 initial語句
8.1.2 always語句
8.2 過程賦值
8.2.1 等號右邊的延遲
8.2.2 等號左邊的延遲
8.2.3 阻塞賦值
8.2.4 非阻塞賦值
8.3 條件語句
8.4 case語句
8.5 循環語句
8.5.1 for循環
8.5.2 while循環
8.5.3 repeat循環
8.5.4 forever循環
8.6 語句塊
8.6.1 順序執行塊
8.6.2 并行執行塊
8.7 過程連續賦值語句
8.7.1 assign...deassign
8.7.2 force...release
8.8 習題
第9章 結構化建模
9.1 模塊的例化
9.2 端口
9.2.1 未連接的端口
9.2.2 端口連接規則
9.3 設計實例
9.3.1 格雷碼到二進制的轉換器
9.3.2 BCD碼到十進制的譯碼器
9.3.3 模10計數器
9.3.4 加法器/減法器
9.3.5 4功能算術和邏輯運算單元
9.3.6 加法器和高速移位器
9.3.7 陣列乘法器
9.3.8 Moore?Mealy同步時序狀態機
9.3.9 Moore同步時序狀態機
9.3.10 Moore異步時序狀態機
9.3.11 Moore脈沖模式異步時序狀態機
9.4 習題
第10章 任務和函數
10.1 任務
10.1.1 任務聲明
10.1.2 任務調用
10.2 函數
10.2.1 函數聲明
10.2.2 函數調用
10.3 習題
第11章 補充設計實例
11.1 約翰遜計數器
11.2 計數移位器
11.3 通用移位寄存器組
11.4 漢明碼檢錯和糾錯
11.5 布思算法
11.6 Moore同步時序狀態機
11.7 Mealy 脈沖模式異步時序狀態機
11.8 Mealy獨熱狀態機
11.9 BCD碼加減法器
11.9.1 BCD碼加法
11.9.2 BCD碼減法
11.10 流水線精簡指令集計算機處理器
11.10.1 指令cache
11.10.2 指令單元
11.10.3 譯碼單元
11.10.4 執行單元
11.10.5 寄存器陣列
11.10.6 數據cache
11.10.7 RISC CPU的頂層
11.10.8 系統頂層
11.11 習題
附錄A 事件隊列
附錄B Verilog工程的步驟
附錄C 部分習題解答