商品簡介
本書根據EDA課程教學要求,以提高數字設計能力為目的,系統闡述數字系統開發的相關知識,主要內容包括EDA技術、FPGA/CPLD器件、Verilog硬件描述語言等。全書以Quartus Ⅱ、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.6 FPGA/CPLD的編程元件 37
2.7 邊界掃描測試技術 41
2.8 FPGA/CPLD的編程與配置 43
2.8.1 在系統可編程 43
2.8.2 CPLD器件的編程 44
2.8.3 FPGA器件的配置 44
2.9 FPGA/CPLD器件概述 50
2.10 FPGA/CPLD的發展趨勢 54
習題2 55
第3章 Quartus Ⅱ集成開發工具 56
3.1 Quartus Ⅱ原理圖設計 56
3.1.1 半加器原理圖設計輸入 56
3.1.2 編譯與仿真 60
3.1.3 1位全加器編譯與仿真 64
3.2 Quartus Ⅱ的優化設置 65
3.2.1 分析與綜合設置 65
3.2.2 優化布局布線 67
3.2.3 設計可靠性檢查 72
3.3 Quartus Ⅱ的時序分析 73
3.3.1 時序設置與分析 73
3.3.2 時序逼近 75
3.4 基於宏功能模塊的設計 77
3.4.1 乘法器模塊 77
3.4.2 除法器模塊 81
3.4.3 計數器模塊 83
3.4.4 常數模塊 85
3.4.5 鎖相環模塊 86
3.4.6 存儲器模塊 89
3.4.7 其他模塊 93
習題3 96
第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.5 Synplify Pro綜合器 113
4.6 Synplify綜合器 118
習題4 120
第5章 Verilog語法與要素 121
5.1 Verilog語言要素 121
5.2 常量 122
5.2.1 整數(Integer) 122
5.2.2 實數(Real) 124
5.2.3 字符串(Strings) 124
5.3 數據類型 125
5.3.1 net型 125
5.3.2 variable型 126
5.4 參數 128
5.5 向量 130
5.6 運算符 132
習題5 136
第6章 Verilog行為語句 137
6.1 過程語句 137
6.1.1 always過程語句 138
6.1.2 initial過程語句 141
6.2 塊語句 142
6.2.1 串行塊begin-end 142
6.2.2 並行塊fork-join 143
6.3 賦值語句 144
6.3.1 持續賦值與過程賦值 144
6.3.2 阻塞賦值與非阻塞賦值 145
6.4 條件語句 146
6.4.1 if-else語句 147
6.4.2 case語句 148
6.5 循環語句 152
6.5.1 for語句 153
6.5.2 repeat、while、forever語句 154
6.6 編譯指示語句 156
6.7 任務與函數 157
6.7.1 任務(task) 157
6.7.2 函數(function) 160
6.8 順序執行與并發執行 163
習題6 164
第7章 Verilog設計的層次與風格 166
7.1 Verilog設計的層次 166
7.2 門級結構描述 166
7.2.1 Verilog HDL內置門元件 167
7.2.2 門級結構描述 169
7.3 行為描述 170
7.4 數據流描述 171
7.5 不同描述風格的設計 172
7.5.1 半加器設計 172
7.5.2 1位全加器設計 173
7.5.3 4位加法器設計 175
7.6 多層次結構電路的設計 176
7.7 基本組合電路設計 178
7.7.1 門電路 178
7.7.2 編譯碼器 178
7.7.3 其他組合電路 180
7.8 基本時序電路設計 181
7.8.1 觸發器 181
7.8.2 鎖存器與寄存器 181
7.8.3 計數器與串并轉換器 183
7.8.4 簡易微處理器 184
7.9 三態邏輯設計 186
7.10 RAM存儲器設計 188
7.11 FIFO緩存器設計 190
7.11.1 用參數化模塊庫定制FIFO 191
7.11.2 用Verilog描述FIFO 193
習題7 194
第8章 Verilog有限狀態機設計 195
8.1 有限狀態機 195
8.2 有限狀態機的Verilog描述 197
8.2.1 用三個過程進行描述 198
8.2.2 用兩個過程描述 199
8.2.3 單過程描述方式 201
8.3 狀態編碼 203
8.3.1 常用的編碼方式 203
8.3.2 狀態編碼的定義 207
8.4 有限狀態機設計要點 209
8.4.1 復位和起始狀態的選擇 209
8.4.2 多余狀態的處理 209
8.5 用狀態機設計流水燈 211
8.6 狀態機A/D采樣控制電路 212
習題8 214
第9章 Verilog設計進階 215
9.1 加法器設計 215
9.1.1 級連加法器 215
9.1.2 數據流描述的加法器 216
9.1.3 超前進位加法器 217
9.1.4 流水線加法器 218
9.2 乘法器設計 219
9.2.1 並行乘法器 219
9.2.2 移位相加乘法器 221
9.2.3 加法樹乘法器 224
9.2.4 查找表乘法器 225
9.3 乘累加器 225
9.4 奇數分頻與小數分頻 227
9.4.1 奇數分頻 227
9.4.2 半整數分頻與小數分頻 228
9.5 數字跑表 231
9.6 實用多功能數字鐘 234
9.7 字符液晶顯示控制 243
9.7.1 字符液晶H1602B 243
9.7.2 用狀態機實現字符顯示控制 246
9.8 VGA圖像的顯示與控制 250
9.8.1 DE2-70的VGA顯示電路 250
9.8.2 VGA圖像顯示原理與時序 251
9.8.3 VGA圖像顯示與控制的實現 254
9.9 點陣式液晶顯示控制 259
9.10 樂曲演奏電路 264
9.11 異步串行接口(UART)設計 270
9.11.1 UART傳輸協議 270
9.11.2 UART接口設計 271
習題9 275
第10章 Verilog設計的優化 278
10.1 設計的可綜合性 278
10.2 流水線設計技術 280
10.3 資源共享 284
10.4 過程 286
10.5 阻塞賦值與非阻塞賦值 288
10.6 FPGA設計中毛刺的消除 292
習題10 294
第11章 Verilog仿真與驗證 295
11.1 系統任務與系統函數 295
11.2 用戶自定義元件 299
11.2.1 組合電路UDP元件 300
11.2.2 時序邏輯UDP元件 302
11.3 延時模型的表示 304
11.3.1 時間標尺定義`timescale 304
11.3.2 延時的表示與延時說明塊 305
11.4 測試平臺 306
11.5 ModelSim仿真實例 309
11.5.1 圖形界面仿真方式 310
11.5.2 命令行仿真方式 314
11.6 數字電路的仿真 315
11.6.1 組合電路的仿真 315
11.6.2 時序電路的仿真 317
習題11 318
第12章 Verilog語言的發展 319
12.1 Verilog-2001語法結構 319
12.1.1 語法結構的擴展與增強 319
12.1.2 設計管理 325
12.1.3 系統任務和系統函數的擴展 327
12.1.4 VCD文件的擴展 330
12.2 Verilog-2002語法結構 331
12.2.1 硬件單元建模 332
12.2.2 屬性 335
12.2.3 編程語言接口 339
習題12 340
第13章 通信與信號處理設計實例 341
13.1 m序列發生器 341
13.1.1 m序列的原理與性質 341
13.1.2 m序列產生器設計 343
13.2 Gold碼 345
13.2.1 Gold碼的原理與性質 345
13.2.2 Gold碼產生器設計 346
13.3 CRC校驗碼 348
13.4 FSK解調 350
13.5 數字過零檢測與等精度頻率測量 352
13.5.1 數字過零檢測法 353
13.5.2 等精度頻率測量 354
13.6 QPSK調制器的FPGA實現 357
13.7 FIR數字濾波器 360
13.8 FPGA信號處理基礎及浮點計算實例 364
13.8.1 定點數的表示法 364
13.8.2 浮點數的表示法 365
13.8.3 定點數到浮點數的格式轉換 367
13.8.4 浮點數乘法 369
13.8.5 浮點數加法 372
13.8.6 浮點數除法 375
習題13 377
附錄A Verilog HDL(IEEE Std 1364-1995)關鍵字 378
附錄B Verilog HDL(IEEE Std 1364-2001)關鍵字 379
附錄C DE2系統介紹 380
附錄D DE2-70系統介紹 386
附錄E 有關術語與縮略語 393
參考文獻 398