FPGA 設計與驗證
內容描述
本書以IntelCycloneⅣE系列FPGA為例,系統介紹了FPGA的硬件結構、
電路設計以及邏輯設計和驗證流程。
書中以若乾個具有工程實用意義的案例為背景,
詳細介紹了FPGA數字邏輯設計中常見的功能模塊設計思路、
FPGA片上資源的使用方法、開發軟件中各種調試工具的使用,
包括SignaltapⅡ、InSystemSourcesandProbesEditor、InSystemMemoryContentEditor。
本書*後通過若乾個綜合性實例,講解了複雜數字系統的設計方法和驗證思路。
作為實用型FPGA教程,本書的每一個實驗都有完整的模擬和驗證過程,
即強調了模擬驗證在FPGA設計中的重要作用。
本書可作為工程應用類、電子信息類專業本科生以及相關專業專科生的EDA基礎類課程的教材;
也可作為FPGA自學人員,以及從事FPGA開發的工程技術人員的培訓教材和參考用書。
目錄大綱
第1章從頭認識FPGA/1
1.1CycloneⅣEFPGA原理與應用/1
1.1.1CycloneⅣE概述/1
1.1.2CycloneⅣE擴展資源介紹/4
1.1.3重點電路設計/5
1.2IntelFPGA開發環境/17
1.2.1Quartus軟件的發展史/18
1.2.2QuartusPrime的下載/18
1.2.3QuartusPrime的安裝/21
1.2.4QuartusPrime軟件的基本使用/27
第2章FPGA開發軟硬件平臺介紹/39
2.1AC620開發套件/39
2.1.1AC620開發板的功能特點/39
2.1.2AC620開發板的使用/43
2.2IntelFPGA開發流程/57
2.2.1建立工程/57
2.2.2設計輸入/61
2.2.3分析和綜合/61
2.2.4功能模擬/62
2.2.5綜合與佈局佈線/66
2.2.6時序模擬/66
2.2.7I/O分配以及生成配置文件/67
2.2.8配置FPGA下載/67
2.3FPGA設計的燒寫與投產/68
2.3.1FPGA固件存儲方案/68
2.3.2CycloneⅣEFPGA固件燒寫方案/69
2.3.3燒寫文件JIC的產生/70
第3章FPGA基本數字邏輯設計/74
3.1組合邏輯電路設計———譯碼器/74
3.1.1譯_碼器工作原理/74
3.1.2譯碼器Verilog實現/75
3.1.3激勵創建及模擬測試/76
3.2時序邏輯電路設計———計數器/79
3.2.1計數器工作原理/80
3.2.2計數器Verilog實現/81
3.2.3模擬及板級驗證/82
3.3IP核應用———計數器/85
3.3.1IP核創建流程/85
3.3.2模擬及板級驗證/89
3.3.3已生成IP核的參數修改/90
3.3.4QuartusⅡ中IP核參數的修改/94
3.4BCD計數器設計與驗證/95
3.4.1BCD碼原理/95
3.4.2BCD計數器的Verilog實現/96
3.4.3激勵創建及模擬測試/97
3.4.4級聯BCD計數器設計與模擬/98
3.5阻塞賦值與非阻塞賦值原理分析/103
3.5.1不同賦值方式的對比與實現/103
3.5.2不同賦值方式的模擬及測試/105
3.6狀態機設計實例/108
3.6.1狀態機工作原理/108
3.6.2字符串檢測狀態機實現/110
3.6.3激勵創建及模擬測試/113
3.7獨立按鍵消抖設計與驗證/115
3.7.1按鍵的物理結構及電路設計/115
3.7.2硬件電路實現按鍵消抖/116
3.7.3狀態機實現按鍵消抖/118
3.7.4激勵創建及模擬測試/124
3.7.5任務及隨機函數的使用/125
3.8模塊化設計基礎———加減法計數器/129
3.8.1模塊功能劃分/129
3.8.2模塊功能設計/129
3.8.3模擬及板級驗證/132
3.98位7段數碼管驅動設計與驗證/134
3.9.1數碼管驅動原理/134
3.9.2三線製數碼管電路設計/137
3.9.3數碼管動態掃描驅動設計/138
3.9.4ISSP生成及使用/145
3.9.5板級調試與驗證/149
3.9.6QuartusⅡ中ISSP的使用方法/…152
3.10串口發送模塊設計與驗證/153
3.10.1異步串行通信原理及電路設計/…154
3.10.2UART異步串行通信發送模塊設計與實現/157
3.10.3激勵創建及模擬測試/162
3.10.4按鍵控制串口發送設計/163
3.11串口接收模塊的設計與驗證/165
3.11.1串口接收原理分析/166
3.11.2UART異步串行通信接收模塊設計與實現/167
3.11.3模擬及板級驗證/171
第4章FPGA片上專用資源使用/176
4.1嵌入式RAM的使用———雙埠RAM/176
4.1.1CycloneⅣ體系結構及嵌入式存儲器原理/176
4.1.2IP核使用———dpram/178
4.1.3激勵創建及模擬測試/182
4.2搭建串口收發與雙口RAM存儲的簡易應用系統/185
4.2.1系統模塊功能劃分及接口設計//185
4.2.2頂層文件設計/185
4.2.3控制模塊設計/186
4.2.4模擬及板級驗證/187
4.3嵌入式RAM的使用———ROM/190
4.3.1IP核使用———ROM/191
4.3.2激勵創建及模擬測試/193
4.3.3SignaTapⅡ使用及板級驗證/195
4.4嵌入式塊RAM的使用———FIFO/201
4.4.1FIFO的相關知識/202
4.4.2IP核的使用———FIFO/204
4.5PLL鎖相環介紹與簡單應用/213
4.5.1PLL相關知識/213
4.5.2IP核使用———PLL/215
4.5.3模擬及板級驗證/219
第5章FPGA進階數字邏輯設計/223
5.1無源蜂鳴器驅動設計與驗證/223
5.1.1無源蜂鳴器電路設計/223
5.1.2無源蜂鳴器驅動原理/224
5.1.3PWM發生器模塊設計/225
5.1.4模擬及板級驗證/227
5.2線性序列機與串行接口DAC驅動設計與驗證/232
5.2.1DAC芯片概述及電路設計/232
5.2.2TLV5618型DAC芯片輸出電壓計算原理/234
5.2.3TLV5618型DAC接口時序/235
5.2.4線性序列機設計思想與接口時序設計/236
5.2.5基於線性序列機的DAC驅動設計/238
5.2.6模擬及板級測試/241
5.3線性序列機與串行接口ADC驅動設計與驗證/243
5.3.1ADC芯片概述及電路設計/244
5.3.2ADC128S022型ADC接口時序/245
5.3.3ADC128S022接口時序設計/247
5.3.4基於線性序列機的ADC驅動設計/249
5.3.5模擬及板級測試/252
5.4HT6221紅外遙控解碼設計與驗證/257
5.4.1紅外遙控系統組成及電路設計/257
5.4.2紅外遙控協議分析(NEC協議)/258
5.4.3紅外解碼模塊設計/260
5.4.4模擬及板級驗證/265
5.5TFT顯示屏驅動設計與驗證/267
5.5.1TFT觸摸屏驅動電路設計/268
5.5.2RGB接口TFT屏掃描方式/270
5.5.3RGB接口TFT屏時序分析/271
5.5.4RGB接口TFT屏驅動設計/272
5.5.5模擬及板級驗證/275
第6章FPGA綜合數字系統設計/280
6.1八通道數字電壓表/280
6.1.1數字電壓表功能劃分/280
6.1.2按鍵輸入模塊/281
6.1.3通道選擇模塊/281
6.1.4ADC控制模塊———ADC128S022/282
6.1.5數據預處理模塊/282
6.1.6碼製轉換模塊/284
6.1.7數碼管驅動模塊/287
6.1.8頂層設計/288
6.1.9基於查找表的數據電壓換算/289
6.2雙通道幅頻相可調DDS信號發生器/292
6.2.1DDS原理與實現/293
6.2.2數/模轉換器(DAC)驅動模塊設計/299
6.2.3串口命令接收與解析/303
6.2.4信號發生器頂層設計/315
6.2.5系統測試/316
6.3串口讀/寫EEPROM/317
6.3.1I2C基本概念/317
6.3.2I2C協議時序介紹/318
6.3.3I2C器件地址/319
6.3.4I2C存儲器地址/320
6.3.5I2C寫時序/321
6.3.6I2C單字節讀時序/323
6.3.7I2C讀/寫器件控制器設計/325
6.3.8I2C控制器模擬驗證/335
6.3.9串口讀/寫EEPROM系統設計/341
6.3.10串口讀/寫EEPROM模擬驗證/351
6.3.11串口讀/寫EEPROM板級驗證/355
6.4基於串口獵人的虛擬示波器/359
6.4.1系統結構/359
6.4.2模塊詳解/361
6.4.3模擬驗證/375
6.4.4基於串口獵人的板級驗證/385
6.5SDRAM控制器設計/391
6.5.1SDRAM基本概念/391
6.5.2SDRAM存取原理/392
6.5.3SDRAM器件引腳說明/394
6.5.4SDRAM特性/395
6.5.5SDRAM操作命令介紹/396
6.5.6SDRAM操作時序/403
6.5.7SDRAM控制器設計/418
6.5.8SDRAM控制器模擬驗證/425
6.5.9SDRAM控制器設計優化/430
6.5.10優化控制器模擬驗證/436
6.6串口傳圖幀緩存設計/440
6.6.1系統結構/440
6.6.2模擬驗證/446
6.6.3板級驗證/450
參考文獻/454
作者介紹
梅雪松
網名“小梅哥”,擁有多年電子設計經驗,擅長知識的總結和傳播,
有《小梅哥和你一起深入學習FPGA》、《小梅哥FPGA學習筆記》
兩個系列網絡博文;並推出了手把手式視頻教程
《FPGA設計思想與驗證方法視頻教程》,
該教程在各大視頻點擊平台備受好評,
網友稱其為學習FPGA基礎與提高教學視頻的不二之選。
同時,開設FPGA實地培訓班,正式開始網絡和實地FPGA培訓,
培訓課程以其係統的知識講解和生動的實例分析,
得到了學員的一致肯定。
袁玉卓
山東大學博士,集成電路設計專業,知識面廣,專業技術背景深厚。
長期從事於FPGA技術的分享和交流,擁有豐富的項目科研和實踐經驗
曾凱鋒
杭州電子科技大學碩士,主要研究方向為FPGA與嵌入式系統設計,
長期活躍於FPGA技術交流群,著有多篇FPGA設計和驗證文章。