FPGA設計簡明教程
趙延賓
相關主題
商品描述
現場可編程門陣列(Field Programmable Gate Array,FPGA)是一種以數字電路為核心的集成芯片,它屬於可編程邏輯器件(Programmable Logic Device,PLD)的範疇。FPGA憑借卓越的靈活性、可重構性以及在眾多應用領域的廣泛應用,在現代電子系統中日益
重要。
本書共8章,內容包括Verilog HDL基礎語法、FPGA在驅動LED顯示效果中的應用、PWM信號發生器的設計、蜂鳴器的驅動技術、七段數碼管的顯示技術、溫度傳感器數據的讀取、串口調試系統的構建、LCD/OLED顯示模組的驅動以及電壓計的實現等實用技能。書中特別強調模塊化設計方法和功能仿真在FPGA設計過程中的關鍵作用,並以小腳丫MAX10核心板為例,對所有程序進行驗證。
本書內容充實且實用價值高,包含多種案例分析,既適合作為高等院校FPGA設計課程的教材,也適用於與集成電路和FPGA相關的培訓課程。對FPGA領域的專業人士來說,本書也極具參考價值。
作者簡介
趙延賓:20年邏輯設計經驗,15年FPGA設計、應用和支持經驗,精通FPGA設計流程、FPGA架構及其應用。編寫圖書《Lattice FPGA/CPLD設計(基礎篇)》《那些年,我們一起寫過的邏輯 基於PGGA的MIPI設計實踐》。
目錄大綱
第1章 Verilog HDL語法簡介 017
1.1 Verilog HDL中基本的模塊結構 017
1.2 Verilog HDL基礎語法 020
1.2.1 註釋 020
1.2.2 變量和數據類型 020
1.2.3 進程和語句 021
1.2.4 賦值 021
1.2.5 預編譯指令 022
1.3 Verilog-2005標準改進說明 023
1.3.1 端口聲明“三合一” 023
1.3.2 敏感變量列表描述方式的改進 024
1.3.3 矢量位選擇方式的改進 024
1.3.4 parameter聲明和值傳遞方式的改進 025
1.3.5 generate語句的使用 026
1.3.6 矢量化方式例化模塊 028
1.4 基礎功能單元的Verilog HDL建模 028
1.4.1 同步器 029
1.4.2 沿檢測器 030
1.4.3 擴展器 031
1.4.4 任意時鐘域之間的沿同步器 033
1.4.5 序列檢測器 035
1.4.6 去抖處理 039
1.5 小結 043
第2章 PWM控制LED燈效 045
2.1 LED概述 045
2.2 LED常見燈效說明 046
2.2.1 常亮、常滅 046
2.2.2 流水燈/跑馬燈 046
2.2.3 閃爍 046
2.3 脈寬調制概述 047
2.4 LED燈效演示操作環境 049
2.4.1 硬件環境 049
2.4.2 軟件開發環境 051
2.5 LED常亮 051
2.5.1 LED常亮工程 051
2.5.2 Quartus的操作 052
2.6 時鐘源的選擇和使用 054
2.6.1 MAX10內置振蕩器的使用 055
2.6.2 實現流水燈效果 057
2.6.3 用板載高精度晶振作為時鐘源 059
2.6.4 高手進階:FPGA IP使用方法 061
2.7 LED高級燈效控制設計 062
2.7.1 LED閃爍效果的實現 062
2.7.2 LED亮度調節的實現 064
2.7.3 實現呼吸燈效果 067
2.7.4 高手進階:模塊化設計方法 069
2.8 PWM模塊的應用 071
2.9 Quartus常見問題說明 073
2.9.1 【Pin Planner】窗口中沒有列出端口信號 073
2.9.2 工程編譯、分析不通過 074
2.10 小結 075
第3章 PWM控制蜂鳴器 077
3.1 聲音和國際標準音高 077
3.2 蜂鳴器及其控制概述 079
3.3 蜂鳴器循環播放 081
3.3.1 節拍的控制 081
3.3.2 占空比的設置 081
3.3.3 設計框圖說明 082
3.3.4 模塊設計說明 082
3.4 高手進階:模塊的仿真 087
3.4.1 規格定義:設定仿真目標 088
3.4.2 仿真平臺設計 090
3.4.3 仿真運行與結果檢查 092
3.5 高手進階:用狀態機設計任意占空比的PWM信號產生模塊 093
3.5.1 規格定義 093
3.5.2 方案設計 094
3.5.3 詳細設計 096
3.5.4 模塊功能仿真 098
3.6 小結 103
第4章 驅動七段數碼管 105
4.1 數碼管簡介 105
4.2 字庫 106
4.3 BCD碼 107
4.3.1 二進制數轉換為8421BCD碼的算法說明 108
4.3.2 小數部分轉換為8421BCD碼 112
4.4 七段數碼管驅動模塊設計 113
4.4.1 字庫模塊設計 114
4.4.2 二進制數轉換為8421BCD碼的模塊設計 115
4.4.3 子系統頂層模塊設計 119
4.5 硬件系統驗證 120
4.6 高手進階:設計優化 122
4.7 小結 122
第5章 單總線溫度傳感器 123
5.1 單總線概述 123
5.2 溫度傳感器DS18B20概述 125
5.3 溫度傳感器DS18B20驅動設計 126
5.3.1 DS18B20操作流程說明 126
5.3.2 DS18B20操作流程層次化分解 130
5.3.3 DS18B20驅動子系統的層次化模塊設計 132
5.4 數字溫度計系統設計 152
5.4.1 雙向管腳的建模 154
5.4.2 溫度計的七段數碼管驅動建模 156
5.4.3 數字溫度計的系統驗證 159
5.5 高手進階 159
5.5.1 設計優化 159
5.5.2 用狀態機實現物理層處理 160
5.5.3 FPGA管腳結構分析 167
5.6 小結 168
第6章 UART串口 169
6.1 串口簡介 169
6.2 串口調試系統設計 171
6.2.1 系統設計 171
6.2.2 系統設計優化 172
6.2.3 串口驅動子系統設計 173
6.2.4 七段數碼管驅動模塊 187
6.2.5 DS18B20驅動模塊 188
6.2.6 串口調試系統頂層模塊設計 188
6.3 串口調試註意事項 191
6.4 高手進階 191
6.5 小結 192
第7章 用FPGA點亮顯示屏 193
7.1 SPI簡介 193
7.2 OLED屏簡介 194
7.2.1 SPI顯示驅動芯片SSD1306 195
7.2.2 顯示模組的操作 197
7.2.3 SSD1306的外部接口 200
7.3 ZJY091S模組顯示驅動模塊設計 201
7.3.1 字庫 202
7.3.2 OLED模塊驅動層次設計 203
7.4 高手進階 219
7.5 小結 220
第8章 ADC和DAC 221
8.1 ADC和DAC簡介 221
8.2 電壓計的設計實現 222
8.2.1 ADS7868數字轉換結果讀取 222
8.2.2 七段數碼管驅動模塊 227
8.2.3 電壓計頂層模塊設計 229
8.3 高手進階 230
8.4 小結 231