Verilog HDL與FPGA數字系統設計 第2版

Verilog HDL與FPGA數字系統設計 第2版

作者: 羅傑
出版社: 機械工業
出版在: 2022-03-01
ISBN-13: 9787111575757
ISBN-10: 711157575X
裝訂格式: 平裝
總頁數: 460 頁





內容描述


本書是根據數字技術的發展和EDA課程教學要求,
以及作者多年教學與實踐經驗的基礎上而編寫的,目標是快速地提高讀者的數字電路(或系統)設計能力。
內容覆蓋了數字邏輯基礎、Verilog HDL基礎知識與建模方法、有限狀態機設計、
可編程邏輯器件及其開發工具、數字電路與系統設計實例、靜態時序分析工具以及可編程片上系統等相關知識。
本書將數字邏輯設計和Verilog HDL有機地結合在一起,以可綜合的Verilog設計為重點,
方便讀者快速地掌握Verilog HDL建模方法,以及用FPGA實現數字電路(或系統)的技巧。
本書以Quartus Prime 18.1等軟件為工具,
所有程序都通過了DE2-115(或DE1-SOC)開發板的硬件測試,讀者可參考使用。
本書可用作高等院校電氣信息類等專業本、專科生的教材或教學參考書,
也可以作為電子技術課程設計、電子設計大賽或數字系統設計工程技術人員學習EDA技術的參考書。


目錄大綱


前言
第1版前言
教學建議
第一篇 數字系統基礎
第1章 數字邏輯設計基礎  / 2
本章目的  / 2
1.1 數制及其相互轉換  / 2
1.1.1 數制  / 2
1.1.2 不同進制數的相互轉換  / 4
1.2 二進制代碼  / 5
1.2.1 二-十進制編碼  / 5
1.2.2 格雷碼  / 6
1.2.3 奇偶校驗碼  / 8
1.2.4 ASCII字符編碼  / 9
1.3 邏輯運算及邏輯門  / 11
1.3.1 基本邏輯運算  / 11
1.3.2 常用複合邏輯運算  / 14
1.3.3 集成邏輯門電路簡介  / 15
1.3.4 三態門  / 20
1.4 邏輯代數的基本公式和規則  / 21
1.4.1 邏輯代數的基本定律和恆等式  / 21
1.4.2 邏輯代數的基本規則  / 22
1.4.3 邏輯函數表達式的形式  / 23
1.5 邏輯函數的代數化簡法  / 25
1.6 邏輯函數的卡諾圖化簡法  / 26
1.6.1 邏輯函數的最小項及其性質  / 26
1.6.2 邏輯函數的最小項表達式  / 27
1.6.3 用卡諾圖表示邏輯函數  / 28
1.6.4 用卡諾圖化簡邏輯函數  / 31
1.6.5 用卡諾圖化簡含無關項的邏輯函數  / 33
1.7 組合邏輯電路設計  / 35
1.7.1 設計組合邏輯電路的一般步驟  / 35
1.7.2 組合邏輯電路設計舉例  / 36
小結  / 40
習題  / 40
第2章 Verilog HDL入門與功能仿真  / 42
本章目的  / 42
2.1 硬件描述語言簡介  / 42
2.1.1 硬件描述語言的起源  / 42
2.1.2 硬件描述語言的特點  / 43
2.2 Verilog HDL程序的基本結構  / 44
2.2.1 Verilog HDL模塊組成  / 44
2.2.2 Verilog HDL模塊舉例  / 45
2.3 編寫測試模塊  / 47
2.4 ModelSim仿真軟件的使用  / 49
2.4.1 創建工作目錄  / 50
2.4.2 輸入源文件  / 50
2.4.3 建立工作庫  / 50
2.4.4 編譯設計文件  / 50
2.4.5 將設計文件載入仿真器  / 52
2.4.6 運行仿真  / 53
2.4.7 調試結果  / 54
2.5 Verilog HDL基本語法規則  / 57
2.5.1 詞法規定  / 57
2.5.2 邏輯值集合  / 57
2.5.3 常量及其表示  / 58
2.5.4 數據類型  / 60
2.6 編譯指令、系統任務和系統函數  / 67
2.6.1 Verilog HDL編譯器指令  / 67
2.6.2 Verilog HDL系統任務  / 69
2.6.3 Verilog HDL系統函數  / 71
小結  / 72
習題  / 73
第3章 組合邏輯電路建模  / 74
本章目的  / 74
3.1 Verilog HDL門級建模  / 74
3.1.1 多輸入門  / 74
3.1.2 多輸出門  / 76
3.1.3 三態門  / 76
3.1.4 門級建模舉例  / 77
3.2 Verilog HDL數據流建模  / 79
3.2.1 數據流建模  / 79
3.2.2 表達式與操作數  / 82
3.2.3 運算符  / 82
3.2.4 運算符的優先級別  / 87
3.3 組合電路的行為級建模  / 88
3.4 分層次的電路設計方法  / 96
3.4.1 設計方法  / 96
3.4.2 模塊實例引用語句  / 98
3.4.3 迭代結構  / 100
3.5 常用組合電路及其設計  / 102
3.5.1 編碼器  / 103
3.5.2 二進制譯碼器  / 104
3.5.3 七段顯示譯碼器  / 106
3.5.4 二進制數與8421碼的轉換  / 108
小結  / 115
習題  / 115
第4章 時序邏輯電路建模  / 119
本章目的  / 119
4.1 鎖存器  / 119
4.1.1 基本SR鎖存器  / 119
4.1.2 門控D鎖存器  / 121
4.1.3 門控D鎖存器的Verilog HDL建模  / 122
4.2 觸發器  / 123
4.2.1 D觸發器的邏輯功能  / 123
4.2.2 有清零輸入和預置輸入的D觸發器  / 124
4.2.3 有使能端的D觸發器  / 125
4.2.4 時序邏輯電路建模基礎  / 126
4.2.5 D觸發器及其應用電路的建模  / 128
4.3 寄存器和移位寄存器  / 131
4.3.1 寄存器建模  / 131
4.3.2 移位寄存器建模  / 132
4.3.3 移位寄存器應用電路建模  / 136
4.4 同步計數器  / 138
4.4.1 同步計數器的設計  / 138
4.4.2 同步計數器的Verilog HDL建模  / 142
4.5 Verilog HDL函數與任務的使用  / 146
4.5.1 函數說明語句  / 146
4.5.2 任務說明語句  / 149
4.6 m序列碼產生電路設計  / 151
小結  / 155
習題  / 156
第5章 有限狀態機設計  / 158
本章目的  / 158
5.1 狀態機的基本概念  / 158
5.1.1 狀態機的基本結構及類型  / 158
5.1.2 狀態機的狀態圖表示法  / 159
5.1.3 狀態機的設計步驟  / 160
5.2 基於Verilog HDL的狀態機描述方法  / 160
5.2.1 狀態圖的建立過程  / 160
5.2.2 狀態圖的描述方法  / 161
5.3 狀態機設計中的關鍵技術  / 165
5.3.1 狀態編碼  / 165
5.3.2 消除輸出端產生的毛刺  / 166
5.3.3 使用One-Hot編碼方案設計狀態機  / 168
5.4 狀態機設計舉例  / 170
5.4.1 十字路口交通燈控制電路設計  / 170
5.4.2 汽車尾燈控制電路設計  / 176
小結  / 181
習題  / 182
第6章 可編程邏輯器件  / 184
本章目的  / 184
6.1 概述  / 184
6.1.1 PLD的歷史  / 184
6.1.2 PLD器件的符號  / 186
6.2 簡單可編程邏輯器件  / 187
6.2.1 PLA  / 188
6.2.2 PAL與GAL  / 190
6.3 複雜可編程邏輯器件  / 195
6.3.1 傳統CPLD的基本結構  / 195
6.3.2 基於查找表的CPLD結構  / 198
6.4 現場可編程門陣列  / 199
6.4.1 FPGA實現邏輯函數的基本原理  / 200
6.4.2 FPGA的一般結構  / 203
6.5 Intel FPGA器件系列及開發平台  / 204
6.5.1 器件系列  / 204
6.5.2 FPGA開發板簡介  / 205
小結  / 207
習題  / 208
第二篇 數字系統設計實踐
第7章 FPGA開發工具的使用  / 214
本章目的  / 214
7.1 Quartus Prime 軟件概述  / 214
7.1.1 軟件的安裝與設置  / 214
7.1.2 Quartus Prime的設計流程  / 217
7.2 基於Verilog HDL輸入的電路實現  / 220
7.2.1 建立新的設計項目  / 220
7.2.2 輸入設計文件  / 222
7.2.3 分配引腳  / 222
7.2.4 編譯設計文件  / 226
7.2.5 編程器件,測試功能  / 227
7.2.6 使用電路網表觀察器查看電路圖  / 230
7.2.7 實驗任務  / 230
7.3 基於Verilog HDL輸入的電路仿真  / 231
7.3.1 輸入設計文件,建立新的設計項目  / 232
7.3.2 分配引腳,編譯設計源文件  / 233
7.3.3 波形仿真  / 233
7.3.4 編程器件,測試功能  / 240
7.3.5 實驗任務  / 240
7.4 基於原理圖輸入的電路實現  / 241
7.4.1 建立新的設計項目  / 241
7.4.2 輸入電路原理圖  / 242
7.4.3 分配引腳  / 245
7.4.4 編譯設計項目  / 245
7.4.5 編程器件,測試功能  / 245
7.4.6 實驗任務  / 245
7.5 基於原理圖和Verilog HDL混合輸入的電路實現  / 246
7.5.1 編碼、譯碼、顯示電路  / 246
7.5.2 輸入原理圖文件,建立新的設計項目  / 247
7.5.3 輸入HDL底層文件,完善原理圖文件  / 249
7.5.4 分配引腳,編譯設計項目  / 249
7.5.5 編程器件,測試功能  / 251
7.5.6 實驗任務  / 251
7.6 基於IP模塊的電路設計  / 251
7.6.1 LPM_COUNTER模塊的設置與調用  / 253
7.6.2 嵌入式鎖相環模塊ALTPLL的設置與調用  / 257
7.6.3 存儲器模塊LPM_ROM的配置與調用  / 261
7.6.4 實驗任務  / 269
7.7 嵌入式邏輯分析儀的使用  / 270
7.7.1 嵌入式邏輯分析儀的實現原理  / 270
7.7.2 嵌入式邏輯分析儀的使用流程  / 271
7.7.3 Signal Tap使用示例  / 272
7.7.4 實驗任務  / 278
小結  / 279
第8章 數字電路與系統的設計實踐  / 280
本章目的  / 280
8.1 變模計數器設計  / 280
8.1.1 功能要求  / 280
8.1.2 設計分析  / 280
8.1.3 邏輯設計  / 281
8.1.4 設計實現  / 281
8.1.5 實驗任務  / 282
8.2 移動顯示字符設計  / 285
8.2.1 功能要求  / 285
8.2.2 設計分析  / 285
8.2.3 邏輯設計  / 286
8.2.4 設計實現  / 287
8.2.5 實驗任務  / 288
8.3 分頻器設計  / 289
8.3.1 功能要求  / 289
8.3.2 設計分析  / 289
8.3.3 邏輯設計  / 290
8.3.4 設計仿真  / 291
8.3.5 實際運行結果  / 291
8.3.6 實驗任務  / 292
8.4 多功能數字鐘設計  / 292
8.4.1 功能要求  / 292
8.4.2 設計分析  / 292
8.4.3 數字鐘主體電路邏輯設計  / 293
8.4.4 功能擴展電路邏輯設計  / 297
8.4.5 頂層電路設計  / 299
8.4.6 實驗任務  / 302
8.5 頻率計設計  / 302
8.5.1 功能要求  / 302
8.5.2 設計分析  / 303
8.5.3 邏輯設計  / 305
8.5.4 頂層電路設計  / 310
8.5.5 實驗任務  / 311
8.6 LCD1602顯示的定時器設計  / 311
8.6.1 功能要求  / 311
8.6.2 設計分析  / 311
8.6.3 30秒遞減定時器設計  / 312
8.6.4 字符型LCD1602模塊的顯示設計  / 313
8.6.5 頂層模塊設計  / 321
8.6.6 設計實現  / 322
8.6.7 實驗任務  / 323
8.7 DDS函數信號發生器設計  / 323
8.7.1 功能要求  / 323
8.7.2 DDS產生波形的原理  / 324
8.7.3 設計分析  / 326
8.7.4 頂層電路設計  / 330
8.7.5 設計實現  / 331
8.7.6 D/A轉換電路及放大電路設計  / 332
8.7.7 實驗任務  / 333
小結  / 335
第9章 VGA接口控制器的設計  / 336
本章目的  / 336
9.1 VGA接口標準和接口電路  / 336
9.1.1 VGA接口標準  / 336
9.1.2 VGA接口電路  / 338
9.2 VGA彩條信號發生器  / 340
9.2.1 功能要求  / 340
9.2.2 設計分析  / 340
9.2.3 邏輯設計  / 341
9.2.4 頂層電路設計  / 345
9.2.5 對目標器件編程與硬件電路測試  / 346
9.2.6 使用Signal Tap Logic Analyzer觀察VGA工作時序  / 347
9.2.7 實驗任務  / 350
9.3 24位位圖顯示  / 350
9.3.1 功能要求  / 350
9.3.2 設計分析  / 351
9.3.3 邏輯設計  / 351
9.3.4 頂層電路設計  / 354
9.3.5 對目標器件編程與硬件電路測試  / 356
9.3.6 實驗任務  / 357
小結  / 357
第10章 靜態時序分析工具TimeQuest的使用  / 358
本章目的  / 358
10.1 靜態時序分析基礎  / 359
10.1.1 同步路徑的分析  / 359
10.1.2 異步路徑的分析  / 363
10.1.3 外部同步路徑的分析  / 363
10.1.4 不同的時序模型  / 367
10.2 時序分析工具的使用  / 367
10.2.1 時序分析工具的使用流程  / 367
10.2.2 兩級流水線乘法器設計  / 368
10.2.3 設定時序要求  / 370
10.2.4 全編譯並完成佈局佈線  / 372
10.2.5 驗證時序  / 374
小結  / 376
第三篇 可編程片上系統
第11章 可編程片上系統入門  / 380
本章目的  / 380
11.1 SOPC技術概述  / 380
11.1.1 SOC技術  / 380
11.1.2 SOPC技術  / 381
11.1.3 基於Nios II處理器的嵌入式系統組成  / 381
11.2 SOPC系統設計流程  / 383
11.3 SOPC硬件系統設計  / 384
11.3.1 設計任務  / 384
11.3.2 創建Quartus Prime工程  / 385
11.3.3 構建嵌入式硬件系統  / 386
11.3.4 在Quartus Prime項目中集成嵌入式硬件系統  / 394
11.4 SOPC軟件開發  / 398
11.4.1 軟件開發工具簡介  / 398
11.4.2 創建Nios II軟件工程  / 398
11.4.3 應用程序設計  / 402
11.4.4 應用工程編譯調試  / 403
11.5 SOPC系統設計實踐  / 407
11.5.1 Nios II嵌入式處理器PIO應用  / 407
11.5.2 Nios II嵌入式處理器中斷應用  / 413
11.5.3 Nios II實時時鐘設計  / 418
小結  / 424
第12章 自定義IP組件設計  / 425
本章目的  / 425
12.1 重識Avalon總線  / 425
12.1.1 Avalon Clock和Avalon Reset接口  / 427
12.1.2 Avalon-MM接口  / 427
12.1.3 Avalon中斷接口  / 429
12.1.4 Avalon-ST接口  / 429
12.1.5 Avalon Conduit接口  / 430
12.1.6 Avalon-TC接口  / 431
12.2 自定義IP組件設計  / 431
12.2.1 PWM的HDL設計  / 431
12.2.2 PWM自定義IP組件的封裝方法  / 435
12.2.3 PWM自定義IP組件的應用方法  / 436
小結  / 438
附錄A DE2-115開發板引腳配置信息  / 439
參考文獻  / 445




相關書籍

數位訊號處理, 2/e (McClellan: Digital Signal Processing First, 2/e (DSP First))

作者 吳燦明

2022-03-01

勇敢的芯伴你玩轉 Altera FPGA

作者 吳厚航

2022-03-01

電腦組成與設計:硬件/軟件接口 (原文版) (Computer Organization and Design RISC-V Edition: The Hardware Software Interface)

作者 [美] 戴維·A. 帕特森(David A. Patterson) 約翰·L. 亨尼斯(John L. Hennessy)

2022-03-01