本書主要講解FPGA的程序設計,以一款熱銷的FPGA開發(fā)板為例,介紹學習FPGA和使用Verilog,以及FPGA開發(fā)板的硬件配置,重點是第3章的16個典型實例程序,由簡單到復雜,*后是FPGA的設計心得。
本書適合電子、通信、自動化等相關專業(yè)的本科生以及從事FPGA開發(fā)/IC設計/PCB等相關職業(yè)的初學者閱讀參考。
第1章 FPGA 概述…………………………………………………………………… 1
1.1 為什么要學習FPGA ………………………………………………………… 1
1.2 學習FPGA 的幾個疑點……………………………………………………… 2
1.2.1 選擇VHDL還是Verilog ……………………………………………… 2
1.2.2 NIOS重要還是Verilog重要…………………………………………… 2
1.3 FPGA 簡介…………………………………………………………………… 3
1.4 Verilog簡介…………………………………………………………………… 7
1.4.1 端口定義………………………………………………………………… 8
1.4.2 信號類型定義…………………………………………………………… 9
1.4.3 數(shù)字定義………………………………………………………………… 9
1.4.4 阻塞賦值和非阻塞賦值………………………………………………… 10
1.5 FPGA 開發(fā)流程……………………………………………………………… 11
第2章 FPGA 開發(fā)板……………………………………………………………… 13
2.1 STORMIV_E6開發(fā)板簡介……………………………………………… 13
2.2 STORMIV_E6開發(fā)板詳細配置………………………………………… 15
2.3 STORMIV_E6開發(fā)板硬件原理圖……………………………………… 16
第3章 設計實例…………………………………………………………………… 27
3.1 LED流水燈實驗…………………………………………………………… 27
3.1.1 LED簡介……………………………………………………………… 27
3.1.2 實驗任務………………………………………………………………… 28
3.1.3 硬件設計………………………………………………………………… 28
3.1.4 程序設計………………………………………………………………… 28
3.1.5 實驗現(xiàn)象………………………………………………………………… 31
3.2 按鍵控制LED實驗………………………………………………………… 31
3.2.1 按鍵控制LED簡介…………………………………………………… 31
3.2.2 實驗任務………………………………………………………………… 32
3.2.3 硬件設計………………………………………………………………… 32
3.2.4 程序設計………………………………………………………………… 33
3.2.5 實驗現(xiàn)象………………………………………………………………… 33
3.3 七段數(shù)碼管靜態(tài)顯示實驗…………………………………………………… 34
3.3.1 數(shù)碼管簡介……………………………………………………………… 34
3.3.2 實驗任務………………………………………………………………… 36
3.3.3 硬件設計………………………………………………………………… 36
3.3.4 程序設計………………………………………………………………… 37
3.3.5 實驗現(xiàn)象………………………………………………………………… 43
3.4 七段數(shù)碼管動態(tài)掃描實驗…………………………………………………… 43
3.4.1 動態(tài)掃描簡介…………………………………………………………… 43
3.4.2 實驗任務………………………………………………………………… 44
3.4.3 硬件設計………………………………………………………………… 44
3.4.4 程序設計………………………………………………………………… 44
3.4.5 實驗現(xiàn)象………………………………………………………………… 50
3.5 串口發(fā)送實驗………………………………………………………………… 51
3.5.1 串口簡介………………………………………………………………… 51
3.5.2 實驗任務………………………………………………………………… 53
3.5.3 硬件設計………………………………………………………………… 53
3.5.4 程序設計………………………………………………………………… 53
3.5.5 實驗現(xiàn)象………………………………………………………………… 58
3.6 串口接收實驗………………………………………………………………… 59
3.6.1 串口接收簡介…………………………………………………………… 59
3.6.2 實驗任務………………………………………………………………… 59
3.6.3 硬件設計………………………………………………………………… 59
3.6.4 程序設計………………………………………………………………… 60
3.6.5 實驗現(xiàn)象………………………………………………………………… 64
3.7 同步FIFO實驗……………………………………………………………… 65
3.7.1 同步FIFO簡介………………………………………………………… 65
3.7.2 實驗任務………………………………………………………………… 70
3.7.3 硬件設計………………………………………………………………… 70
3.7.4 程序設計………………………………………………………………… 70
3.7.5 實驗現(xiàn)象………………………………………………………………… 73
3.8 異步FIFO實驗……………………………………………………………… 74
3.8.1 異步FIFO簡介………………………………………………………… 74
3.8.2 實驗任務………………………………………………………………… 77
3.8.3 硬件設計………………………………………………………………… 79
3.8.4 程序設計………………………………………………………………… 79
3.8.5 實驗現(xiàn)象………………………………………………………………… 86
3.9 狀態(tài)機實驗…………………………………………………………………… 86
3.9.1 狀態(tài)機簡介……………………………………………………………… 86
3.9.2 實驗任務………………………………………………………………… 88
3.9.3 硬件設計………………………………………………………………… 88
3.9.4 程序設計………………………………………………………………… 88
3.9.5 實驗現(xiàn)象………………………………………………………………… 91
3.10 EEPROM 寫操作實驗…………………………………………………… 91
3.10.1 EEPROM 寫操作簡介……………………………………………… 91
3.10.2 實驗任務……………………………………………………………… 92
3.10.3 硬件設計……………………………………………………………… 92
3.10.4 程序設計……………………………………………………………… 92
3.10.5 實驗現(xiàn)象……………………………………………………………… 106
3.11 EEPROM 讀操作實驗…………………………………………………… 107
3.11.1 EEPROM 讀操作簡介……………………………………………… 107
3.11.2 實驗任務……………………………………………………………… 107
3.11.3 硬件設計……………………………………………………………… 107
3.11.4 程序設計……………………………………………………………… 107
3.11.5 實驗現(xiàn)象……………………………………………………………… 119
3.12 PS/2鍵盤讀操作實驗…………………………………………………… 120
3.12.1 PS/2接口簡介……………………………………………………… 120
3.12.2 實驗任務……………………………………………………………… 121
3.12.3 硬件設計……………………………………………………………… 121
3.12.4 程序設計……………………………………………………………… 122
3.12.5 實驗現(xiàn)象……………………………………………………………… 125
3.13 VGA 實驗………………………………………………………………… 126
3.13.1 VGA 簡介…………………………………………………………… 126
3.13.2 實驗任務……………………………………………………………… 129
3.13.3 硬件設計……………………………………………………………… 129
3.13.4 程序設計……………………………………………………………… 129
3.13.5 實驗現(xiàn)象……………………………………………………………… 132
3.14 LCD1602實驗…………………………………………………………… 132
3.14.1 LCD1602簡介……………………………………………………… 132
3.14.2 實驗任務……………………………………………………………… 135
3.14.3 硬件設計……………………………………………………………… 135
3.14.4 程序設計……………………………………………………………… 136
3.14.5 實驗現(xiàn)象……………………………………………………………… 141
3.15 紅外遙控實驗……………………………………………………………… 141
3.15.1 紅外遙控簡介………………………………………………………… 141
3.15.2 實驗任務……………………………………………………………… 144
3.15.3 硬件設計……………………………………………………………… 144
3.15.4 程序設計……………………………………………………………… 145
3.15.5 實驗現(xiàn)象……………………………………………………………… 151
3.16 SDRAM 控制器實驗……………………………………………………… 151
3.16.1 SDRAM 簡介………………………………………………………… 151
3.16.2 實驗任務……………………………………………………………… 154
3.16.3 硬件設計……………………………………………………………… 155
3.16.4 程序設計……………………………………………………………… 156
3.16.5 實驗現(xiàn)象……………………………………………………………… 176
第4章 設計思想和感悟…………………………………………………………… 177
4.1 代碼簡單化………………………………………………………………… 177
4.2 注釋層次化………………………………………………………………… 178
4.3 交互界面清晰化…………………………………………………………… 178
4.4 模塊劃分最優(yōu)化…………………………………………………………… 178
4.5 方案精細化………………………………………………………………… 179
4.6 時序流水化………………………………………………………………… 179
參考文獻……………………………………………………………………………… 181