本書是一部系統(tǒng)論述基于FPGA的現(xiàn)代電子系統(tǒng)設(shè)計方法的立體化教程(含紙質(zhì)圖書、電子書、教學(xué)課件、源代碼與視頻教程)。全書共分為8章: 第1章EDA技術(shù)概述,介紹了基于FPGA設(shè)計的優(yōu)勢、FPGA技術(shù)應(yīng)用領(lǐng)域、自頂向下設(shè)計方法論、FPGA設(shè)計層次、RTL層設(shè)計的流程; 第2章介紹CPLD/FPGA的結(jié)構(gòu)原理及編程和配置相關(guān)知識; 第3、4、5、8章,從第3章的VHDL基本語法,到第4章的組合邏輯和時序邏輯基本模塊,再到第5章的宏功能模塊利用,最后是第8章以項目引導(dǎo)的典型電子系統(tǒng)設(shè)計案例,逐層遞進(jìn),由淺入深地介紹基于VHDL的數(shù)字系統(tǒng)描述方法; 第6章介紹邏輯設(shè)計之后需要考慮的時序分析相關(guān)基礎(chǔ),包括時序約束、時序分析的若干基本概念和時鐘管理; 第7章面向整體系統(tǒng)設(shè)計及優(yōu)化問題,介紹了基本系統(tǒng)設(shè)計原則和VHDL優(yōu)化原則。
為便于讀者高效學(xué)習(xí),快速掌握基于VHDL的編程與實(shí)踐,本書作者精心制作了完整的教學(xué)課件(8章PPT)、完整的源代碼與豐富的配套視頻教程及在線答疑服務(wù)等。
本書可作為廣大高校電子信息工程專業(yè)EDA課程的教材,也可作為計算機(jī)技術(shù)、自動化、電力系統(tǒng)及自動化、智能電網(wǎng)及信息工程、機(jī)械電子等工科專業(yè)學(xué)生的自學(xué)參考書。
2015年,德國率先提出工業(yè)4.0,拉開了第四次工業(yè)革命的序幕。以智能化、信息化為特點(diǎn)的第四次工業(yè)革命,廣泛使用大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)、5G通信、云邊端計算等先進(jìn)技術(shù),在各個行業(yè)完成產(chǎn)業(yè)升級,從智慧小區(qū)、智慧工廠到智能城市,從智慧交通到智慧醫(yī)療,從智能電網(wǎng)到智慧能源,再到全球互聯(lián)網(wǎng),智慧化、智能化已經(jīng)在逐步深入地影響和改變我們的生活。而實(shí)現(xiàn)智慧化、智能化的物理基礎(chǔ)是智慧化器件,包括CPU、DSP、ARM等。FPGA作為智慧化器件的頂配產(chǎn)品,以其高速、穩(wěn)定、可靠等特點(diǎn),近年來得到了廣泛的關(guān)注和應(yīng)用。
智能化、信息化的進(jìn)程中,必然需要大量的智能計算、智能決策,而且這些智能計算和決策必須具備快速、低功耗、小型化、靈活性等特點(diǎn),F(xiàn)PGA技術(shù)充分滿足了上述幾點(diǎn)要求。尤其是近年來的片上系統(tǒng)(SoC)技術(shù),既包括各種硬件IP核,還可以集成嵌入式操作系統(tǒng)和應(yīng)用軟件,軟硬協(xié)同,將非常復(fù)雜的系統(tǒng)整合在芯片上,展示出強(qiáng)大的功能。單獨(dú)使用沿用數(shù)十年的CPU架構(gòu)產(chǎn)品已經(jīng)不能滿足市場需求,因而選擇以軟硬協(xié)同開發(fā)為特征的FPGA架構(gòu)是必然趨勢?梢灶A(yù)見,F(xiàn)PGA的應(yīng)用將會呈現(xiàn)一個井噴式增長態(tài)勢。目前FPGA已經(jīng)成熟地應(yīng)用到視頻信號處理,比如電子眼、人臉識別等。在云計算、邊緣計算及智能計算領(lǐng)域,F(xiàn)PGA正在作為加速器而被越來越廣泛應(yīng)用,它既能夠提供幾乎實(shí)時的處理速度,同時還可以降低功耗。在機(jī)器人、無人駕駛、無人機(jī)等領(lǐng)域,F(xiàn)PGA也越來越廣泛地被使用。
世界上著名的FPGA廠商Altera公司被Intel公司收購,Xilinx公司繼而被AMD公司收購,F(xiàn)PGA公司被芯片巨頭整合,預(yù)示著FPGA將與傳統(tǒng)CPU芯片進(jìn)一步集成,發(fā)揮其可編程、快速、低功耗、靈活的優(yōu)勢,來賦能傳統(tǒng)芯片。隨著芯片巨頭的入場,F(xiàn)PGA CPU將會真正成為解決數(shù)據(jù)中心存儲和網(wǎng)絡(luò)通信的主流解決方案,基于FPGA的AI加速單元和CPU緊密耦合提升AI計算的整體性能,也必將是FPGA賦能傳統(tǒng)芯片的典型應(yīng)用,從而帶來前所未有的IT生態(tài)改變。
面對這樣的需求和應(yīng)用背景,應(yīng)用工程師們迫切需要在較短的時間內(nèi)能夠盡可能全面地了解FPGA相關(guān)技術(shù)。本書是一本闡述FPGA技術(shù)全貌的圖書,深入淺出地將理論與案例相結(jié)合。在介紹FPGA最新應(yīng)用的基礎(chǔ)上,以Intel公司的主要FPGA產(chǎn)品為主線,闡述其硬件結(jié)構(gòu)原理。從VHDL基本語法出發(fā),闡述了基于VHDL的組合/時序基本電路模塊的實(shí)現(xiàn)方式,并系統(tǒng)介紹了典型IP核的應(yīng)用,較為詳細(xì)地闡述了FPGA設(shè)計中的時序分析問題,系統(tǒng)論述了設(shè)計過程中要遵循的基本原則和優(yōu)化原則,并結(jié)合案例進(jìn)行解釋,最后列舉了一些常見的工程應(yīng)用。本書旨在向讀者傳遞FPGA技術(shù)及應(yīng)用的基本原理,作者以多年的FPGA專業(yè)教學(xué)經(jīng)驗,引領(lǐng)讀者快速了解FPGA領(lǐng)域全貌,以期在FPGA應(yīng)用中能夠事半功倍。
本書的編寫工作由下列人員承擔(dān): 李月喬負(fù)責(zé)第4章; 陳曉梅負(fù)責(zé)第1,2,3,5,6,7,8章。全書由陳曉梅審校定稿。此外研究生肖徐東、王行健負(fù)責(zé)本書第8章的部分調(diào)試,在此一并表示衷心的感謝。為了使書中內(nèi)容與仿真軟件中使用的邏輯符號一致,故本書中所有符號均采用美標(biāo),特此說明。
由于作者水平所限,錯誤和不足之處在所難免,懇請讀者批評指正。
編者2023年10月
教學(xué)課件
程序代碼
第1章FPGA相關(guān)EDA技術(shù)概述
1.1基于FPGA設(shè)計數(shù)字電子系統(tǒng)的優(yōu)勢
1.2FPGA技術(shù)應(yīng)用領(lǐng)域
1.2.1FPGA應(yīng)用于人工智能與大數(shù)據(jù)
1.2.2FPGA應(yīng)用于高速、高帶寬的網(wǎng)絡(luò)通信
1.2.3FPGA應(yīng)用于云計算
1.2.4FPGA應(yīng)用于邊緣計算
1.3FPGA 自頂向下的設(shè)計方法論
1.4FPGA的設(shè)計層次
1.5RTL層 FPGA設(shè)計流程
1.5.1設(shè)計輸入
1.5.2綜合
1.5.3適配
1.5.4時序仿真與功能仿真
1.5.5編程下載
1.5.6硬件測試
第2章FPGA和CPLD結(jié)構(gòu)原理
2.1FPGA的編程技術(shù)
2.2Intel公司FPGA產(chǎn)品系列
2.2.1Agilex FPGA系列
2.2.2Stratix FPGA系列
2.2.3Arria系列
2.2.4Cyclone系列
2.2.5MAX系列
2.3傳統(tǒng)CPLD結(jié)構(gòu)原理
2.4FPGA結(jié)構(gòu)原理
2.4.1查詢表實(shí)現(xiàn)函數(shù)基本原理
2.4.2Cyclone Ⅲ系列器件的結(jié)構(gòu)原理
2.5新型CPLD結(jié)構(gòu)原理
2.5.1LAB
2.5.2多軌道互連
2.5.3可編程I/O塊
2.6CPLD和FPGA的區(qū)別與趨同
2.7編程與配置
2.7.1配置方式
2.7.2主動串行配置方式
2.7.3被動串行配置方式
2.7.4快速被動并行配置方式
2.7.5被動并行異步配置方式
2.7.6JTAG配置方式
2.7.7USBBlaster Ⅱ下載電纜
2.7.8配置芯片
2.7.9配置文件
2.8基于FPGA的SoC設(shè)計方法
2.8.1系統(tǒng)功能集成是SoC的核心技術(shù)
2.8.2固件集成是SoC的基礎(chǔ)設(shè)計思想
2.8.3嵌入式系統(tǒng)是SoC的基本結(jié)構(gòu)
2.8.4IP是SoC的設(shè)計基礎(chǔ)
第3章VHDL的基本語法規(guī)則
3.1VHDL基本術(shù)語
3.2VHDL的三種不同描述風(fēng)格
3.2.1實(shí)體
3.2.2結(jié)構(gòu)體
3.2.3配置
3.3數(shù)據(jù)對象
3.3.1常量
3.3.2變量
3.3.3信號
3.3.4別名
3.3.5常量、變量和信號的比較
3.4數(shù)據(jù)類型
3.4.1標(biāo)量
3.4.2復(fù)合類型
3.4.3數(shù)據(jù)類型轉(zhuǎn)換
3.4.4子類型
3.5行為描述
3.5.1信號賦值
3.5.2延時
3.5.3進(jìn)程
3.5.4WAIT語句
3.5.5決斷信號
3.6子程序
3.6.1過程
3.6.2函數(shù)
3.6.3函數(shù)/過程重載
3.7設(shè)計庫和標(biāo)準(zhǔn)程序包
第4章基本電路模塊設(shè)計
4.1組合邏輯典型電路設(shè)計
4.1.1編碼器
4.1.2譯碼器
4.1.3三人表決器
4.1.4數(shù)據(jù)選擇器
4.1.5數(shù)據(jù)分配器
4.1.6數(shù)值比較器
4.1.7加法器
4.2時序邏輯電路典型模塊設(shè)計
4.2.1觸發(fā)器設(shè)計
4.2.2計數(shù)器設(shè)計
4.2.3寄存器設(shè)計
4.2.4鎖存器
4.2.5移位寄存器
4.2.6順序脈沖發(fā)生器設(shè)計
4.2.7序列信號發(fā)生器設(shè)計
4.2.8分頻器設(shè)計
4.2.9狀態(tài)機(jī)設(shè)計
4.2.10三態(tài)總線設(shè)計
4.3簡單的測試基準(zhǔn)設(shè)計
4.3.1測試基準(zhǔn)概述
4.3.2基本測試基準(zhǔn)的搭建
第5章EDA宏功能資源利用
5.1參數(shù)化模塊庫(LPM)
5.1.1計數(shù)器
5.1.2基于ROM的正弦波發(fā)生器
5.2IP核的使用實(shí)例
5.2.1IP相關(guān)常識概述
5.2.28B/10B 核的使用
5.3原Altera公司特定功能IP核(ALT類)
5.3.1ALTMEMMULT IP核實(shí)現(xiàn)整數(shù)乘法
5.3.2鎖相環(huán)ALTPLL的調(diào)用
第6章時序分析基礎(chǔ)
6.1時序約束
6.2時序分析的基本概念
6.2.1時序網(wǎng)表和時序路徑
6.2.2基本時序分析參數(shù)
6.2.3同步時序分析
6.2.4異步時序分析恢復(fù)和移除分析
6.2.5多周期路徑分析
6.2.6亞穩(wěn)性分析
6.2.7時序悲觀分析
6.2.8時鐘數(shù)據(jù)分析
6.2.9多角時序分析
6.3時鐘管理
6.3.1時序問題
6.3.2鎖相環(huán)應(yīng)用
第7章系統(tǒng)設(shè)計及優(yōu)化原則
7.1可編程邏輯基本設(shè)計原則
7.1.1面積和速度的平衡與互換原則
7.1.2系統(tǒng)原則
7.1.3同步設(shè)計原則
7.1.4數(shù)據(jù)接口同步原則
7.1.5結(jié)構(gòu)層次化編碼原則
7.2VHDL的優(yōu)化設(shè)計
7.2.1面積優(yōu)化設(shè)計
7.2.2速度優(yōu)化設(shè)計
7.3其他設(shè)計技巧
7.3.1組合邏輯的注意事項
7.3.2時鐘的設(shè)計技巧
第8章FPGA電子系統(tǒng)設(shè)計項目
8.1串并行乘法器設(shè)計
8.1.1串并乘法器原理
8.1.2系統(tǒng)設(shè)計
8.1.3仿真結(jié)果
8.2看門狗設(shè)計
8.2.1看門狗的工作原理
8.2.2系統(tǒng)設(shè)計及仿真結(jié)果
8.3PS/2鍵盤接口設(shè)計
8.4多位數(shù)碼管的動態(tài)掃描顯示
8.4.1多位數(shù)碼管的顯示原理
8.4.2系統(tǒng)設(shè)計及仿真結(jié)果
8.5FPGA控制數(shù)模轉(zhuǎn)換器DAC0832實(shí)現(xiàn)鋸齒波發(fā)生器
8.5.1DAC0832的工作原理
8.5.2FPGA控制的鋸齒波發(fā)生器電路
8.6FPGA控制模數(shù)轉(zhuǎn)換器ADC0809的應(yīng)用
8.6.1ADC0809轉(zhuǎn)換器及其模數(shù)轉(zhuǎn)換電路
8.6.2FPGA控制的模數(shù)轉(zhuǎn)換電路
8.6.3用數(shù)碼管顯示模數(shù)轉(zhuǎn)換器的輸入電壓
8.6.4模擬輸入有負(fù)電壓時的轉(zhuǎn)換電路
8.7數(shù)字頻率計
8.7.1總體設(shè)計要求和設(shè)計實(shí)現(xiàn)思路
8.7.2各模塊具體設(shè)計實(shí)現(xiàn)及仿真
8.8UART通用異步收發(fā)器
8.8.1UART協(xié)議基礎(chǔ)
8.8.2UART模塊程序設(shè)計
參考文獻(xiàn)