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