內容簡介
全書以Quartus Prime、Synplify Pro軟體為平台,以Verilog—1995和Verilog—2001語言標準為依據,以可綜合的設計為重點,通過大量經過驗證的數字設計實例,闡述數字系統設計的方法與技術,由淺入深地介紹Verilog工程開發的知識與技能。本書的特點是:著眼於實用,緊密聯繫教學實際,實例豐富。全書深入淺出,概念清晰,語言流暢
本書目錄
第1章 EDA技術概述 1
1.1 EDA技術及其發展 1
1.2 Top-down設計與IP核復用 4
1.2.1 Top-down設計 4
1.2.2 Bottom-up設計 5
1.2.3 IP復用技術與SoC 5
1.3 數字設計的流程 7
1.3.1 設計輸入 7
1.3.2 綜合 9
1.3.3 布局布線 9
1.3.4 仿真 10
1.3.5 編程配置 10
1.4 常用的EDA軟體工具 10
1.5 EDA技術的發展趨勢 14
習題1 15
第2章 FPGA/CPLD器件 16
2.1 PLD器件概述 16
2.1.1 PLD器件的發展歷程 16
2.1.2 PLD器件的分類 17
2.2 PLD的基本原理與結構 19
2.2.1 PLD器件的基本結構 19
2.2.2 PLD電路的表示方法 20
2.3 低密度PLD的原理與結構 21
2.4 CPLD的原理與結構 26
2.4.1 宏單元結構 26
2.4.2 典型CPLD的結構 27
2.5 FPGA的原理與結構 30
2.5.1 查找表結構 30
2.5.2 典型FPGA的結構 32
2.5.3 Cyclone IV器件結構 35
2.6 FPGA/CPLD的編程元件 38
2.7 邊界掃描測試技術 42
2.8 FPGA/CPLD的編程與配置 44
2.8.1 在系統可程式 44
2.8.2 FPGA器件的配置 45
2.8.3 Cyclone IV器件的編程 46
2.9 FPGA/CPLD器件概述 49
2.10 FPGA/CPLD的發展趨勢 52
習題2 53
第3章 Quartus Prime使用指南 54
3.1 Quartus Prime原理圖設計 55
3.1.1 半加器原理圖設計輸入 55
3.1.2 1位全加器設計輸入 60
3.1.3 1位全加器的編譯 61
3.1.4 1位全加器的仿真 63
3.1.5 1位全加器的下載 67
3.2 基於IP核的設計 71
3.2.1 模24方向可控計數器 71
3.2.2 4×4無符號數乘法器 78
3.3 SignalTap II的使用方法 84
3.4 Quartus Prime的最佳化設定與時序分析 88
習題3 93
實驗與設計 95
3-1 簡易數字鐘 95
3-2 m序列發生器 97
3-3 8位帶符號乘法器 97
3-4 用常量模組實現補碼轉換幅度碼電路 101
第4章 Verilog設計初步 102
4.1 Verilog簡介 102
4.2 Verilog模組的結構 103
4.3 Verilog基本組合電路設計 107
4.3.1 用Verilog設計基本組合電路 107
4.3.2 用Verilog設計加法器 107
4.4 Verilog基本時序電路設計 110
4.4.1 用Verilog設計觸發器 110
4.4.2 用Verilog設計計數器 111
習題4 113
實驗與設計 113
4-1 Synplify Pro綜合器的使用方法 113
4-2 Synplify綜合器的使用方法 117
第5章 Verilog語法與要素 119
5.1 Verilog語言要素 119
5.2 常量 120
5.2.1 整數(Integer) 120
5.2.2 實數(Real) 122
5.2.3 字元串(Strings) 122
5.3 數據類型 123
5.3.1 net型 123
5.3.2 variable型 124
5.4 參數 126
5.5 向量 128
5.6 運算符 130
習題5 134
實驗與設計 135
5-1 用altpll鎖相環宏模組實現倍頻和分頻 135
第6章 Verilog行為語句 140
6.1 過程語句 140
6.1.1 always過程語句 141
6.1.2 initial過程語句 144
6.2 塊語句 145
6.2.1 串列塊begin-end 145
6.2.2 並行塊fork-join 146
6.3 賦值語句 147
6.3.1 持續賦值與過程賦值 147
6.3.2 阻塞賦值與非阻塞賦值 148
6.4 條件語句 149
6.4.1 if-else語句 150
6.4.2 case語句 151
6.5 循環語句 155
6.5.1 for語句 156
6.5.2 repeat、while、forever語句 157
6.6 編譯指示語句 159
6.7 任務與函式 160
6.7.1 任務(task) 160
6.7.2 函式(function) 162
6.8 順序執行與並發執行 166
習題6 167
實驗與設計 167
6-1 4×4矩陣鍵盤檢測電路 167
第7章 Verilog設計的層次與風格 170
7.1 Verilog設計的層次 170
7.2 門級結構描述 170
7.2.1 Verilog HDL內置門元件 171
7.2.2 門級結構描述 173
7.3 行為描述 174
7.4 數據流描述 175
7.5 不同描述風格的設計 176
7.5.1 半加器設計 176
7.5.2 1位全加器設計 177
7.5.3 4位加法器設計 179
7.6 多層次結構電路的設計 179
7.7 基本組合電路設計 182
7.7.1 門電路 182
7.7.2 編解碼器 182
7.7.3 其他組合電路 184
7.8 基本時序電路設計 185
7.8.1 觸發器 185
7.8.2 鎖存器與暫存器 185
7.8.3 計數器與串並轉換器 187
7.8.4 簡易微處理器 188
7.9 三態邏輯設計 190
習題7 192
實驗與設計 192
7-1 數字表決器 192
7-2 FIFO快取器設計 195
第8章 Verilog有限狀態機設計 199
8.1 有限狀態機 199
8.2 有限狀態機的Verilog描述 201
8.2.1 用三個過程描述 202
8.2.2 用兩個過程描述 203
8.2.3 單過程描述方式 205
8.3 狀 態 編 碼 207
8.3.1 常用的編碼方式 207
8.3.2 狀態編碼的定義 211
8.4 有限狀態機設計要點 213
8.4.1 復位和起始狀態的選擇 213
8.4.2 多餘狀態的處理 213
習題8 215
實驗與設計 215
8-1 流水燈控制器 215
8-2 汽車尾燈控制器 217
8-3 狀態機A/D採樣控制電路 218
8-4 用狀態機實現字元液晶顯示控制 219
第9章 Verilog設計進階 226
9.1 加法器設計 226
9.1.1 級連加法器 226
9.1.2 數據流描述的加法器 227
9.1.3 超前進位加法器 228
9.1.4 流水線加法器 229
9.2 乘法器設計 230
9.2.1 並行乘法器 230
9.2.2 移位相加乘法器 232
9.2.3 布斯乘法器 234
9.2.4 查找表乘法器 237
9.3 奇數分頻與小數分頻 237
9.3.1 奇數分頻 237
9.3.2 半整數分頻與小數分頻 239
9.4 VGA圖像的顯示與控制 241
9.4.1 VGA圖像顯示原理與時序 241
9.4.2 VGA圖像顯示與控制的實現 244
9.5 點陣式液晶顯示控制 250
9.6 樂曲演奏電路 255
習題9 260
實驗與設計 262
9-1 數字跑表 262
9-2 實用多功能數字鐘 269
第10章 Verilog設計的最佳化 278
10.1 設計的可綜合性 278
10.2 流水線設計技術 280
10.3 資源共享 284
10.4 過程 286
10.5 阻塞賦值與非阻塞賦值 288
習題10 292
實驗與設計 292
10-1 小數分頻 292
10-2 如何在FPGA設計中消除毛刺 294
10-3 消抖動電路 297
第11章 Verilog Test Bench與仿真 298
11.1 系統任務與系統函式 298
11.2 用戶自定義元件 302
11.2.1 組合電路UDP元件 303
11.2.2 時序邏輯UDP元件 304
11.3 延時模型的表示 306
11.3.1 時間標尺定義`timescale 306
11.3.2 延時的表示與延時說明塊 307
11.4 Test Bench測試平台 308
11.5 組合和時序電路的仿真 310
11.5.1 組合電路的仿真 310
11.5.2 時序電路的仿真 312
習題11 313
實驗與設計 314
11-1 用ModelSim SE仿真8位二進制加法器 314
11-2 用ModelSim SE仿真乘累加器 322
第12章 Verilog語言的發展 324
12.1 Verilog—2001語法結構 324
12.1.1 語法結構的擴展與增強 324
12.1.2 設計管理 330
12.1.3 系統任務和系統函式的擴展 332
12.1.4 VCD檔案的擴展 335
12.2 Verilog—2002語法結構 336
12.2.1 硬體單元建模 337
12.2.2 屬性 340
12.2.3 程式語言接口 344
習題12 345
第13章 通信與信號處理設計實例 346
13.1 m序列發生器 346
13.1.1 m序列的原理與性質 346
13.1.2 m序列產生器設計 348
13.2 Gold碼 350
13.2.1 Gold碼的原理與性質 350
13.2.2 Gold碼產生器設計 351
13.3 CRC校驗碼 353
13.4 FSK解調 355
13.5 數字過零檢測與等精度頻率測量 358
13.5.1 數字過零檢測法 358
13.5.2 等精度頻率測量 359
13.6 QPSK調製器的FPGA實現 362
13.7 FIR數字濾波器 365
習題13 369
13-1 信號音產生器 369
13-2 異步串列接口(UART) 376
附錄A Verilog HDL(IEEE Std 1364—1995)關鍵字 382
附錄B Verilog HDL(IEEE Std 1364—2001)關鍵字 383
附錄C DE2—115介紹 384
附錄D 有關術語與縮略語 386
參考文獻 391