FPGA Verilog開發(fā)實戰(zhàn)指南:基于Intel Cyclone IV(基礎篇)
定 價:199 元
叢書名:電子與嵌入式系統(tǒng)設計叢書
- 作者:劉火良 楊森 張碩
- 出版時間:2021/3/1
- ISBN:9787111674160
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP332.1-62
- 頁碼:860
- 紙張:
- 版次:
- 開本:16開
本書包括32個章節(jié),按照先易后難的順序進行講解,分為硬件說明篇、軟件安裝篇、基礎入門篇和學習強化篇四大板塊。從基礎的硬件介紹、軟件安裝到基本電路開發(fā),手把手教學?紤]到大多數(shù)學習者為FPGA初學者,所以本書把操作中的每個步驟都盡可能詳細的介紹和描述,并附上大量的截圖以供學習者實操參考。
前言
硬件說明篇
第1章 初識FPGA 2
1.1 FPGA是什么 2
1.1.1 名詞解釋 2
1.1.2 FPGA發(fā)展歷程 2
1.2 FPGA的技術優(yōu)勢 7
1.3 FPGA的應用方向 9
第2章 硬件開發(fā)平臺詳解 15
2.1 開發(fā)板簡介 15
2.2 國內(nèi)外FPGA產(chǎn)業(yè)現(xiàn)狀 19
2.3 選擇Cyclone IV的理由 20
2.4 Cyclone系列FPGA芯片的命名方法 23
2.5 FPGA內(nèi)部硬件結構簡介 24
2.6 FPGA內(nèi)部硬件結構與代碼的關系 33
2.6.1 I/O的映射 34
2.6.2 組合邏輯映射 43
2.6.3 時序邏輯映射 45
2.6.4 指定PLL的映射位置 56
軟件安裝篇
第3章 Quartus軟件和USB-Blaster驅動安裝 66
3.1 Quartus II_13.0軟件的安裝 66
3.2 添加器件庫 72
3.3 USB-Blaster驅動器的安裝 76
第4章 ModelSim軟件安裝 80
第5章 Visio和Notepad++軟件安裝 87
5.1 Visio軟件的安裝 87
5.2 Notepad++軟件的安裝 93
第6章 實現(xiàn)Quartus和ModelSim、Notepad++軟件關聯(lián) 99
6.1 Quartus II_13.0和ModelSim_10.5se軟件的關聯(lián) 99
6.2 Quartus II_13.0和Notepad++軟件的關聯(lián) 101
基礎入門篇
第7章 初識Verilog HDL 106
7.1 為什么選擇用Verilog HDL開發(fā)FPGA 106
7.1.1 Verilog HDL和VHDL的比較 106
7.1.2 Verilog HDL和C語言的比較 107
7.2 Verilog HDL語言的基礎語法 107
7.2.1 標識符 107
7.2.2 邏輯值 108
7.2.3 常量 108
7.2.4 變量 109
7.2.5 參數(shù) 109
7.2.6 賦值語句 110
7.2.7 注釋 110
7.2.8 關系運算符 111
7.2.9 歸約運算符、按位運算符和邏輯運算符 111
7.2.10 移位運算符 112
7.2.11 條件運算符 112
7.2.12 優(yōu)先級 112
7.2.13 位拼接運算符 113
7.2.14 if-else與case 113
7.2.15 inout雙向端口 115
7.2.16 Verilog語言中的系統(tǒng)任務和系統(tǒng)函數(shù) 116
7.3 章末總結 123
第8章 點亮LED燈 124
8.1 正確的設計流程 124
8.2 工程文件夾的管理 124
8.3 一個完整的設計過程 126
8.3.1 功能簡介 126
8.3.2 硬件資源 126
8.3.3 新建一個Visio文件及其配置 127
8.3.4 模塊和端口信號劃分 130
8.3.5 波形設計 131
8.3.6 新建工程 133
8.3.7 RTL代碼的編寫 140
8.3.8 代碼的分析和綜合 143
8.3.9 查看RTL視圖 144
8.3.10 Testbench的原理 145
8.3.11 Testbench代碼的編寫 147
8.3.12 仿真設置 151
8.3.13 設置NativeLink 153
8.3.14 打開ModelSim觀察波形 155
8.3.15 仿真波形分析 162
8.3.16 引腳約束 162
8.3.17 全編譯 165
8.3.18 通過JTAG將網(wǎng)表下載到開發(fā)板 168
8.3.19 未使用引腳的默認設置 172
8.3.20 程序的固化 174
8.4 章末總結 185
第9章 簡單組合邏輯 186
9.1 理論學習 186
9.1.1 多路選擇器 186
9.1.2 譯碼器 186
9.1.3 半加器 187
9.2 實戰(zhàn)演練—多路選擇器 187
9.2.1 實驗目標 187
9.2.2 硬件資源 187
9.2.3 程序設計 188
9.3 實戰(zhàn)演練—譯碼器 198
9.3.1 實驗目標 198
9.3.2 程序設計 198
9.4 實戰(zhàn)演練—半加器 205
9.4.1 實驗目標 205
9.4.2 硬件資源 205
9.4.3 程序設計 206
9.5 章末總結 211
第10章 層次化設計 213
10.1 理論學習 213
10.2 實戰(zhàn)演練 215
10.2.1 實驗目標 215
10.2.2 硬件資源 215
10.2.3 程序設計 215
10.3 章末總結 225
第11章 避免Latch的產(chǎn)生 226
11.1 Latch是什么 226
11.2 Latch的危害 226
11.3 幾種產(chǎn)生Latch的情況 226
11.4 章末總結 232
第12章 時序邏輯的開始——寄存器 234
12.1 理論學習 234
12.2 實戰(zhàn)演練 234
12.2.1 實驗目標 234
12.2.2 硬件資源 235
12.2.3 程序設計 236
12.3 章末總結 243
第13章 阻塞賦值與非阻塞賦值 245
13.1 理論學習 245
13.2 阻塞賦值 246
13.3 非阻塞賦值 248
13.4 章末總結 251
第14章 計數(shù)器 252
14.1 理論學習 252
14.2 實戰(zhàn)演練 252
14.2.1 實驗目標 252
14.2.2 硬件資源 252
14.2.3 程序設計 253
14.3 章末總結 262
第15章 分頻器 263
15.1 理論學習 263
15.2 實戰(zhàn)演練一 263
15.2.1 實驗目標 263
15.2.2 硬件資源 264
15.2.3 程序設計 264
15.3 實戰(zhàn)演練二 270
15.3.1 實驗目標 270
15.3.2 硬件資源 271
15.3.3 程序設計 271
15.4 章末總結 278
第16章 按鍵消抖模塊的設計與驗證 279
16.1 理論學習 279
16.1.1 硬件消抖 280
16.1.2 軟件消抖 281
16.2 實戰(zhàn)演練 281
16.2.1 實驗目標 281
16.2.2 程序設計 281
16.3 章末總結 288
第17章 流水燈 289
17.1 理論學習 289
17.2 實戰(zhàn)演練 289
17.2.1 實驗目標 289
17.2.2 硬件資源 289
17.2.3 程序設計 290
17.3 章末總結 294
第18章 狀態(tài)機 295
18.1 理論學習 295
18.2 實戰(zhàn)演練一 297
18.2.1 實驗目標 297
18.2.2 程序設計 297
18.3 實戰(zhàn)演練二 308
18.3.1 實驗目標 309
18.3.2 程序設計 309
18.4 章末總結 316
第19章 數(shù)碼管的動態(tài)顯示 318
19.1 理論學習 318
19.1.1 數(shù)碼管簡介 318
19.1.2 八段數(shù)碼管 318
19.1.3 74HC595簡介 321
19.1.4 數(shù)碼管動態(tài)顯示簡介 323
19.2 實戰(zhàn)演練 324
19.2.1 實驗目標 324
19.2.2 硬件資源 324
19.2.3 程序設計 325
19.3 章末總結 353
第20章 快速開發(fā)的法寶——IP核 354
20.1 理論學習 354
20.2 實戰(zhàn)演練 358
20.2.1 IP核之PLL 359
20.2.2 IP核之ROM 376
20.2.3 IP核之RAM 406
20.2.4 IP核之FIFO 439
20.3 章末總結 463
學習強化篇
第21章 串口RS-232 466
21.1 理論學習 466
21.1.1 串口簡介 466
21.1.2 RS-232信號線 467
21.1.3 RS-232通信協(xié)議簡介 469
21.2 實戰(zhàn)演練 470
21.2.1 實驗目標 470
21.2.2 硬件資源 470
21.2.3 程序設計 472
21.3 章末總結 504
第22章 使用SignalTap II嵌入式邏輯分析儀在線調(diào)試 506
22.1 邏輯分析儀簡介 506
22.2 SignalTap II的用法 508
第23章 簡易頻率計的設計與驗證 528
23.1 理論學習 528
23.2 實戰(zhàn)演練 529
23.2.1 實驗目標 529
23.2.2 硬件資源 529
23.2.3 程序設計 530
23.3 章末總結 544
第24章 簡易DDS信號發(fā)生器的設計與驗證 545
24.1 理論學習 545
24.2 實戰(zhàn)演練 548
24.2.1 實驗目標 548
24.2.2 硬件資源 548
24.2.3 程序設計 551
24.3 章末總結 574
第25章 簡易電壓表的設計與驗證 575
25.1 理論學習 575
25.2 實戰(zhàn)演練 576
25.2.1 實驗目標 576
25.2.2 硬件資源 577
25.2.3 程序設計 579
25.3 章末總結 591
第26章 VGA顯示器驅動設計與驗證 592
26.1 理論學習 592
26.1.1 VGA簡介 592
26.1.2 VGA接口及引腳定義 593
26.1.3 VGA顯示原理 595
26.1.4 VGA時序標準 596參數(shù) 598
26.2 實戰(zhàn)演練 600
26.2.1 實驗目標 600
26.2.2 硬件資源 600
26.2.3 程序設計 601
26.3 章末總結 623
第27章 HDMI顯示器驅動設計與驗證 624
27.1 理論學習 624
27.1.1 HDMI簡介 624
27.1.2 HDMI接口及引腳定義 625
27.1.3 HDMI顯示原理 628
27.2 實戰(zhàn)演練 631
27.2.1 實驗目標 631
27.2.2 硬件資源 631
27.2.3 程序設計 632
27.3 章末總結 655
第28章 TFT-LCD液晶屏驅動設計與驗證 656
28.1 理論學習 656
28.1.1 TFT-LCD簡介 656
28.1.2 RGB接口TFT-LCD時序 658
28.1.3 RGB接口TFT-LCD分辨率 660
28.2 實戰(zhàn)演練 660
28.2.1 實驗目標 660
28.2.2 硬件資源 661
28.2.3 程序設計 662
28.3 章末總結 683
第29章 FIFO求和實驗 684
29.1 理論學習 684
29.2 實戰(zhàn)演練 685
29.2.1 實驗目標 685
29.2.2 程序設計 685
29.3 章末總結 701
第30章 基于Sobel算法的邊緣檢測設計與實現(xiàn) 702
30.1 理論學習 702
30.1.1 邊緣檢測 702
30.1.2 Sobel算法簡介 702
30.2 實戰(zhàn)演練 703
30.2.1 Sobel算法實現(xiàn) 703
30.2.2 實驗目標 703
30.2.3 硬件資源 704
30.2.4 程序設計 704
30.3 章末總結 730
第31章 基于SPI協(xié)議的Flash驅動控制 731
31.1 理論學習 731
31.1.1 SPI物理層 731
31.1.2 SPI協(xié)議層 733
31.2 實戰(zhàn)演練 735
31.2.1 SPI-Flash全擦除實驗 736
31.2.2 SPI-Flash頁寫實驗 755
31.2.3 SPI_Flash讀數(shù)據(jù)實驗 771
31.3 章末總結 793
第32章 基于I2C協(xié)議的EEPROM驅動控制 794
32.1 理論學習 794
32.1.1 I2C物理層 794
32.1.2 I2C協(xié)議層 795
32.2 實戰(zhàn)演練 802
32.2.1 實驗目標 802
32.2.2 硬件資源 802
32.2.3 程序設計 803
32.3 章末總結 844
后記 845