圖書內容
本教材的教學目標有二,特色有一:掌握EDA技術基礎理論及其工程實踐基本技能、基於EDA的平台及本書給出的大量實踐項目促進自主創新能力的有效提高;特色是速成。
為此,全書做了精心的編排,在第1章中就將EDA技術的總體概況和盤托出,甚至包括EDA技術相關的軟硬體基本特點、結構和原理;在第2、第4和第6章中分別介紹了基於Verilog的組合電路設計、時序電路設計,和HDL設計技巧與最佳化技術的深入;所用的教學方法都是基於流行於國際的以電路模組為先導的情景式教學模型。為能快速進入實踐操練階段,在第3、第5和第7章中分別穿插了EDA軟體套用、邏輯仿真、FPGA硬體驗證及開發、LPM宏模組套用,以及與工程實踐更靠攏的狀態機設計技術等內容;使得從第3章開始,讀者就有機會不斷地將書本知識及時有效地融入實驗驗證、技能提高和經驗積累。在前期知識鋪墊的基礎上,第8章給出的16位實用CPU設計技術及CPU創新設計競賽實踐項目,將使讀者在基礎理論水平,工程實踐和自主創新能力等方面有較大的提高;第9章是Verilog語法補充。從第3章至第9章,每一章後都安排了大量的習題、實驗以及與工程實際緊密聯繫的創新實踐項目。全書內容新穎,結構緊湊、特色鮮明,成效也一定會突出。
目 錄
第1章 EDA技術概述 1
1.1 EDA技術 1
1.2 EDA技術套用對象 2
1.3 硬體描述語言Verilog HDL 3
1.4 EDA技術的優勢 4
1.5 面向FPGA的EDA開發流程 5
1.6 可程式邏輯器件 7
1.6.1 PLD的分類 7
1.6.2 PROM可程式原理 8
1.6.3 GAL 10
1.7 CPLD的結構與可程式原理 11
1.8 FPGA的結構與工作原理 13
1.8.1 查找表邏輯結構 13
1.8.2 Cyclone Ⅲ 系列器件的結構原理 14
1.9 硬體測試技術 16
1.10 FPGA/CPLD產品概述 17
1.10.1 Lattice公司的PLD器件 17
1.10.2 Xilinx公司的PLD器件 18
1.10.3 Altera公司的PLD器件 19
1.11 編程與配置 21
1.12 Quartus Ⅱ 21
1.13 EDA的發展趨勢 23
思考題 24
第2章 組合電路Verilog設計 25
2.1 半加器電路的Verilog描述 25
2.1.1 半加器的數據流建模描述方式 25
2.1.2 半加器的門級原語和UDP結構建模描述方式 29
2.2 多路選擇器不同形式的Verilog描述 30
2.2.1 4選1多路選擇器及其順序語句表述方式 31
2.2.2 4選1多路選擇器及其並行語句表述方式 36
2.2.3 4選1多路選擇器及其條件操作語句表述方式 37
2.2.4 4選1多路選擇器及其條件語句表述方式 38
2.2.5 4選1多路選擇器及其利用UDP元件的結構表述方式 40
2.3 Verilog加法器設計 41
2.3.1 全加器設計及例化語句套用 41
2.3.2 8位加法器設計及算術操作符套用 43
2.3.3 BCD碼加法器設計 44
2.4 組合邏輯乘法器設計 46
2.4.1 參數定義關鍵字parameter和localparam 46
2.4.2 整數型暫存器類型定義 46
2.4.3 for語句用法 47
2.4.4 移位操作符套用法 47
2.4.5 兩則乘法器設計示例 48
2.4.6 repeat語句用法 48
2.4.7 while語句用法 49
2.4.8 Verilog循環語句的特點 50
2.4.9 parameter的參數傳遞功能 50
習題 51
第3章 Quartus Ⅱ套用嚮導 53
3.1 Quartus Ⅱ套用一般流程 53
3.1.1 輸入設計程式 53
3.1.2 創建本項目設計工程 54
3.1.3 設定約束項目 55
3.1.4 全程編譯與邏輯綜合 56
3.1.5 測試設計項目 57
3.1.6 RTL圖觀察器套用 60
3.2 硬體功能驗證及FPGA開發 60
3.2.1 引腳鎖定 60
3.2.2 編譯檔案下載 61
3.2.3 JTAG間接編程模式 62
3.2.4 USB-Blaster編程配置器件使用方法 63
3.3 電路原理圖設計流程 64
3.4 利用屬性表述實現引腳鎖定 66
3.5 keep屬性套用 67
3.6 SignalProbe使用方法 69
3.7 宏模組邏輯功能查詢 70
習題 71
EDA實驗 72
3-1 多路選擇器設計實驗 72
3-2 8位加法器設計實驗 72
3-3 十六進制7段數碼顯示解碼器設計 72
第4章 時序電路Verilog設計 74
4.1 基本時序元件的Verilog表述 74
4.1.1 基本D觸發器單元及其Verilog表述 74
4.1.2 用UDP表述D觸發器 75
4.1.3 含異步復位和時鐘使能的D觸發器及其Verilog表述 75
4.1.4 含同步復位控制邏輯的D觸發器及其Verilog表述 76
4.1.5 基本鎖存器及其Verilog表述 77
4.1.6 含清0控制的鎖存器及其Verilog表述 78
4.1.7 異步時序電路的Verilog表述特點 79
4.1.8 時鐘過程表述的特點和規律 80
4.2 二進制計數器及其Verilog表述 81
4.2.1 簡單加法計數器及其Verilog表述 82
4.2.2 實用加法計數器設計 82
4.3 移位暫存器的Verilog表述與設計 84
4.3.1 含同步預置功能的移位暫存器設計 84
4.3.2 模式可控的移位暫存器設計 85
4.3.3 使用移位操作符設計移位暫存器 86
4.4 時序電路硬體設計與仿真示例 86
4.5 SignalTap Ⅱ的使用方法 87
習題 91
EDA實驗 92
4-1 數字計數器設計實驗 92
4-2 十六進制7段數碼顯示解碼器設計 94
4-3 數碼掃描顯示電路設計 94
4-4 模可控計數器設計 94
4-5 移位暫存器設計 95
4-6 串列靜態顯示控制電路設計 95
4-7 套用宏模組設計頻率計 96
第5章 邏輯宏功能模組的套用 100
5.1 計數器宏模組調用 100
5.1.1 計數器模組文本的調用 100
5.1.2 計數器模組程式與參數傳遞語句 101
5.1.3 對計數器進行仿真測試 103
5.2 利用屬性設定控制乘法器的構建 104
5.3 RAM宏模組的使用方法 105
5.3.1 存儲器初始化檔案 105
5.3.2 RAM宏模組的設定和調用 107
5.3.3 仿真測試RAM宏模組 109
5.3.4 存儲器的Verilog代碼描述及初始化檔案調用 109
5.3.5 存儲器設計的結構控制 112
5.4 LPM存儲器在系統讀寫方法 113
5.5 嵌入式鎖相環使用方法 114
5.6 信號在系統測試與控制編輯器用法 117
習題 119
EDA實驗與創新實踐 119
5-1 查表式硬體運算器設計 119
5-2 正弦信號發生器設計 121
5-3 DDS正弦信號發生器設計 123
5-4 移相信號發生器設計 126
第6章 EDA技術深入 128
6.1 過程中的兩類賦值語句 128
6.1.1 未指定延時的阻塞式賦值語句 128
6.1.2 指定了延時的阻塞式賦值 129
6.1.3 未指定延時的非阻塞式賦值 130
6.1.4 指定了延時的非阻塞式賦值 131
6.1.5 阻塞與非阻塞式賦值特點的深入討論 132
6.1.6 不同賦值方式的信號賦初值導致不同綜合結果 134
6.2 過程語句使用深入探討 135
6.2.1 過程語句套用總結 136
6.2.2 深入認識不完整條件語句與時序電路的關係 137
6.3 更完整地認識if語句 139
6.3.1 if語句的一般表述形式 139
6.3.2 關注if語句中的條件指示 141
6.4 三態與雙向連線埠設計 142
6.4.1 三態控制電路設計 142
6.4.2 雙向連線埠設計 143
6.4.3 三態匯流排控制電路設計 144
6.5 系統設計最佳化 146
6.5.1 資源最佳化 146
6.5.2 速度最佳化 149
習題 152
EDA實驗與創新實踐 154
6-1 硬體消抖動電路設計 154
6-2 4×4陣列鍵盤鍵信號檢測電路設計 155
6-3 直流電機綜合測控系統設計 156
6-4 VGA彩條信號顯示控制電路設計 158
第7章 有限狀態機設計技術 162
7.1 狀態機的一般形式 162
7.1.1 狀態機的基本結構 162
7.1.2 初始控制與表述 165
7.2 Moore型有限狀態機 166
7.2.1 實用狀態機設計示例 167
7.2.2 序列檢測狀態機設計 170
7.3 Mealy型狀態機設計 171
7.4 不同編碼類型狀態機 173
7.4.1 直接輸出型編碼 173
7.4.2 宏定義語句在狀態編碼定義中的用法 175
7.4.3 宏定義命令語句 176
7.4.4 順序編碼型狀態機編碼 177
7.4.5 一位熱碼編碼 177
7.4.6 狀態編碼設定 177
7.5 安全狀態機設計 179
習題 180
EDA實驗與創新實踐 181
7-1 序列檢測器設計 181
7-2 ADC採樣控制電路設計 181
7-3 數據採集邏輯控制模組設計 182
7-4 五功能智慧型邏輯筆設計 184
7-5 VGA簡單圖像顯示控制模組設計 186
第8章 16位實用CPU創新設計 187
8.1 KX9016的結構與特色 187
8.2 KX9016基本硬體系統設計 189
8.2.1 單步節拍發生模組 190
8.2.2 算術邏輯單元 190
8.2.3 比較器COMP 191
8.2.4 基本暫存器與暫存器陣列組 191
8.2.5 移位器 193
8.2.6 程式與數據存儲器 194
8.3 KX9016v1指令系統設計 194
8.3.1 指令格式 195
8.3.2 指令操作碼 196
8.3.3 軟體設計實例 197
8.3.4 KX9016 v1控制器設計 198
8.3.5 指令設計實例詳解 202
8.4 KX9016的時序仿真與硬體測試 203
8.4.1 時序仿真與指令執行波形分析 203
8.4.2 CPU工作情況的硬體測試 205
8.5 KX9016應用程式設計實例和系統最佳化 207
8.5.1 乘法算法及其硬體實現 207
8.5.2 除法算法及其硬體實現 208
8.5.3 KX9016v1的硬體系統最佳化 208
習題 210
EDA實驗與創新實踐 210
8-1 16位CPU驗證性設計綜合實驗 210
8-2 新指令設計及程式測試實驗 210
8-3 16位CPU的最佳化設計與創新 211
8-4 KX9016v1硬體升級CPU創新設計競賽 212
第9章 Verilog語句語法規則補充 213
9.1 Verilog文字規則 213
9.2 數據類型 215
9.2.1 net網線類型 215
9.2.2 register暫存器類型 216
9.2.3 存儲器類型 216
9.3 操作符 216
9.4 常用語句補充 217
9.4.1 initial過程語句使用示例 217
9.4.2 forever循環語句 218
9.4.3 編譯指示語句 218
9.4.4 任務和函式語句 220
9.5 用庫元件實現結構描述 222
習題 224
EDA實驗與創新實踐 224
9-1 樂曲硬體演奏電路設計 224
9-2 PS2鍵盤控制模型電子琴電路設計 228
9-3 簡易邏輯分析儀設計 230
9-4 SPWM脈寬調製控制系統設計 231
9-5 AM幅度調製信號發生器設計 233
附錄A EDA開發系統及相關軟體 235
A.1 KX_DN5/7系列EDA/SOPC系統 236
A.2 部分實驗擴展模組簡介 237
A.3 MIF檔案生成器使用方法 239
參考文獻 241