內容簡介
《FPGA項目開發實戰講解》立足於工程實踐經驗,首先介紹FPGA的原理、語法、設計技巧,然後詳細介紹瞭7項常用技術的實現。每項技術從以下幾方麵介紹:相關技術介紹、FPGA方案框圖設計、子模塊設計、仿真和測試、項目開發過程中遇到的問題、定位和解決措施,其中插入瞭大量的狀態機轉換圖和關鍵代碼,方便讀者學習。
作者簡介
李憲強,就職於中科院,長期從事FPGA方麵一綫科研工作,積纍瞭豐富的實踐經驗。
目錄
第1章 FPGA介紹 1
1.1 FPGA的優勢 1
1.2 FPGA典型結構圖 2
1.3 LUT原理 6
1.4 FPGA上電配置過程時序圖 7
1.5 FPGA基本開發流程 10
第2章 Verilog語法介紹 13
2.1 Verilog HDL語言簡介 13
2.1.1 什麼是Verilog HDL 13
2.1.2 Verilog HLC的曆史 13
2.2 Verilog HDL和VHDL語言比較 14
2.3 Verilog語法介紹 15
2.3.1 模塊 15
2.3.2 常量 16
2.3.3 parameter與define的區彆 18
2.3.4 reg和wire 19
2.3.5 操作符 21
2.3.6 assign和always語句 21
2.3.7 if和case語句 23
2.3.8 循環語句 25
2.3.9 模塊實例化 25
2.3.10 預處理指令 26
2.3.11 係統任務 26
2.3.12 task和function語句的區彆 29
2.3.13 文件操作 30
第3章 FPGA開發必要的技術積纍 33
3.1 鎖存器、觸發器 33
3.2 時序的基本概念 34
3.2.1 建立和保持時間 34
3.2.2 同步係統中時序分析 34
3.3 異步時鍾域和亞穩態 37
3.3.1 什麼是亞穩態 37
3.3.2 亞穩態發生場閤 37
3.3.3 亞穩態危害 38
3.3.4 怎麼減少亞穩態的發生 38
3.3.5 案例:亞穩態導緻通信異常 39
3.4 狀態機的設計 39
3.5 復位信號 40
3.5.1 同步復位和異步復位比較 40
3.5.2 案例:和復位信號相關的項目 41
3.6 串並轉換和並串轉換 42
3.7 流水技術 42
3.7.1 流水技術原理 42
3.7.2 案例:NAND FLASH流水實現高速存儲 43
3.8 乒乓操作 44
3.9 雙嚮端口使用 45
3.9.1 數據總綫的設計 45
3.9.2 程序設計 45
3.9.3 案例:MCU接口程序 46
3.10 Xilinx原語介紹 49
3.10.1 時鍾組件 49
3.10.2 吉比特收發器組件 50
3.10.3 I/O端口組件 50
3.10.4 IBUFDS 51
3.10.5 IDELAY 52
3.10.6 OBUFDS 53
3.11 DCM原理 54
3.12 RAM核的使用 56
3.13 FPGA時序約束 60
3.13.1 FPGA約束介紹 60
3.13.2 案例:500MSPS的A/D轉換器 63
3.14 生成IP核 70
3.14.1 生成IP核的方法 70
3.14.2 案例:生成IP核的具體操作過程 71
3.15 保持層次關係 73
3.16 Chipscope ICON和ILA 75
3.16.1 Chipscope介紹 75
3.16.2 案例:以DSP接口程序為例介紹使用流程 77
3.17 Verilog編碼風格注意事項總結 79
3.18 FPGA學習步驟 80
3.19 FPGA工作方式 81
第4章 FIFO控製器設計 83
4.1 FIFO相關的概念 83
4.2 設計指標 84
4.3 同步FIFO設計 84
4.3.1 雙端口RAM介紹 84
4.3.2 同步FIFO設計 85
4.4 異步FIFO設計 88
4.4.1 空/滿標誌的産生 88
4.4.2 亞穩態問題 88
4.4.3 格雷碼 89
4.4.4 異步FIFO設計及結果 90
第5章 串口通信模塊設計 95
5.1 串口通信概述 95
5.1.1 串口介紹 95
5.1.2 串口幀格式 96
5.2 設計指標 97
5.3 串口通信模塊方案 97
5.3.1 原理框圖 97
5.3.2 FPGA方案 98
5.4 串口通信各個模塊設計 99
5.4.1 MCU配置模塊設計 99
5.4.2 發送模塊設計 106
5.4.3 接收模塊設計 114
5.4.4 頂層模塊 123
5.5 串口通信模塊調試注意事項 126
第6章 數/模及模/數轉換控製模塊設計 127
6.1 相關技術介紹 127
6.1.1 數/模轉換器(DAC)介紹 127
6.1.2 模/數轉換器(ADC)介紹 129
6.1.3 數/模轉換芯片AD5641介紹 131
6.1.4 模/數轉換芯片ADS7230介紹 132
6.2 技術指標要求 135
6.3 D/A模塊設計 136
6.4 AD模塊設計 141
6.5 遇到的問題、排查及定位 148
第7章 HDLC總綫控製器設計 149
7.1 HDLC協議介紹 149
7.2 CRC校驗 150
7.3 設計技術指標 150
7.4 HDLC電路圖 150
7.5 HDLC總綫控製器模塊劃分 151
7.6 HDLC總綫控製器各個模塊設計 152
7.6.1 CRC模塊設計 152
7.6.2 發送編碼設計及結果 152
7.6.3 接收解碼設計及結果 163
7.7 遇到的問題及解決辦法 174
第8章 SDRAM控製器設計 175
8.1 SDRAM簡介 175
8.2 SDRAM芯片介紹 176
8.3 SDRAM設計方案 178
8.3.1 刷新周期的問題 180
8.3.2 初始化模塊 183
8.3.3 定時刷新請求信號産生模塊 184
8.3.4 讀/寫請求産生模塊 185
8.3.5 讀/寫狀態機 187
第9章 NAND FLASH控製器設計 195
9.1 NAND FLASH介紹 195
9.1.1 NAND FLASH信號功能介紹 195
9.1.2 芯片存儲陣列結構和地址尋址 196
9.1.3 NAND FLASH時序圖介紹 197
9.2 設計技術指標 201
9.3 原理圖介紹 202
9.4 NAND FLASH控製器方案 202
9.5 NAND FLASH各個模塊設計 203
9.5.1 MCU接口模塊 203
9.5.2 FLASH管理模塊 205
9.5.3 NAND FLASH壞塊錶查找模塊設計 209
9.5.4 NAND FLASH頁查找模塊設計 210
9.5.5 NAND FLASH讀模塊設計 211
9.5.6 NAND FLASH寫模塊設計 212
9.5.7 NAND FLASH塊擦除模塊設計 214
9.6 遇到的問題及解決辦法 217
9.6.1 對FLASH的讀/寫不能完成 217
9.6.2 讀/寫不穩定 217
第10章 1553B總綫控製器設計 218
10.1 1553B總綫介紹 218
10.1.1 總綫拓撲結構 219
10.1.2 編碼方式 220
10.1.3 1553B數據格式 220
10.1.4 總綫數據傳輸過程說明 223
10.2 設計技術指標 224
10.3 原理圖介紹 224
10.4 收發器芯片介紹 224
10.5 1553B總綫控製器方案 225
10.6 1553B總綫控製器各個模塊設計 226
10.6.1 曼徹斯特編碼模塊設計 226
10.6.2 曼徹斯特解碼模塊設計 230
10.6.3 協議處理模塊設計 231
10.6.4 RT接收模塊設計 238
10.6.5 RT發送模塊設計 242
10.6.6 RT-RT模塊設計 243
10.6.7 Broadcast模塊設計 243
10.7 測試結果 245
10.8 遇到的問題及解決辦法 246
參考文獻 247
後記 248
前言/序言
FPGA項目開發實戰講解 下載 mobi epub pdf txt 電子書