FPGA原理與應(yīng)用 第2版 課件全套 緒論 現(xiàn)場(chǎng)可編程門陣列 第1-6章 概述-FPGA應(yīng)用實(shí)例_第1頁
FPGA原理與應(yīng)用 第2版 課件全套 緒論 現(xiàn)場(chǎng)可編程門陣列 第1-6章 概述-FPGA應(yīng)用實(shí)例_第2頁
FPGA原理與應(yīng)用 第2版 課件全套 緒論 現(xiàn)場(chǎng)可編程門陣列 第1-6章 概述-FPGA應(yīng)用實(shí)例_第3頁
FPGA原理與應(yīng)用 第2版 課件全套 緒論 現(xiàn)場(chǎng)可編程門陣列 第1-6章 概述-FPGA應(yīng)用實(shí)例_第4頁
FPGA原理與應(yīng)用 第2版 課件全套 緒論 現(xiàn)場(chǎng)可編程門陣列 第1-6章 概述-FPGA應(yīng)用實(shí)例_第5頁
已閱讀5頁,還剩516頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

緒論

現(xiàn)場(chǎng)可編程門陣列

1現(xiàn)場(chǎng)可編程門陣列簡(jiǎn)介

2我國(guó)開發(fā)領(lǐng)域規(guī)劃目錄Part1現(xiàn)場(chǎng)可編程門陣列簡(jiǎn)介現(xiàn)場(chǎng)可編程門陣列簡(jiǎn)介簡(jiǎn)介現(xiàn)場(chǎng)可編程門陣列FPGA(Field-ProgrammableGateArray)核心:

?可編程I/O

?

邏輯塊?

時(shí)鐘模塊?

存儲(chǔ)和布線資源。現(xiàn)場(chǎng)可編程門陣特性靈活性高編程靈活性高要求:?高級(jí)編程語言與工具的支持?

各個(gè)硬件架構(gòu)的可編程性。?易于集成與擴(kuò)展性現(xiàn)場(chǎng)可編程門陣特性開發(fā)周期短?FPGA無需掩模制作和流片步驟?FPGA支持開發(fā)板直接驗(yàn)證無需流片?FPGA設(shè)計(jì)軟硬件協(xié)同,緊密集成現(xiàn)場(chǎng)可編程門陣特性并行計(jì)算可編程靈活性高?

FPGA支持多團(tuán)隊(duì)協(xié)作開發(fā)。?

其模塊化設(shè)計(jì)支持并行開發(fā)與驗(yàn)證。?強(qiáng)大的并行處理能力現(xiàn)場(chǎng)可編程門陣列應(yīng)用領(lǐng)域在云計(jì)算中的應(yīng)用FPGA憑借其硬件加速能力和可編程性,成為提升云計(jì)算性能與效率的關(guān)鍵技術(shù)。?解決性能瓶頸?降低系統(tǒng)延時(shí)現(xiàn)場(chǎng)可編程門陣列應(yīng)用領(lǐng)域在大數(shù)據(jù)中的應(yīng)用?數(shù)據(jù)壓縮與解壓縮?數(shù)據(jù)分布式處理?數(shù)據(jù)挖掘?數(shù)據(jù)庫查詢與優(yōu)化現(xiàn)場(chǎng)可編程門陣列應(yīng)用領(lǐng)域在人工智能中的應(yīng)用?深度學(xué)習(xí)加速?圖像處理?自然語言處理?機(jī)器人控制?智能駕駛現(xiàn)場(chǎng)可編程門陣列應(yīng)用領(lǐng)域在物聯(lián)網(wǎng)中的應(yīng)用?智能安防系統(tǒng)?智能交通控制系統(tǒng)?智能家居控制系統(tǒng)Part2我國(guó)開發(fā)領(lǐng)域規(guī)劃開發(fā)領(lǐng)域規(guī)劃技術(shù)開發(fā)領(lǐng)域?qū)??

形成完備的設(shè)計(jì)架構(gòu)?擁有采用先進(jìn)工藝的能力?具備行業(yè)軟IP及解決方案?形成完備的正向設(shè)計(jì)?逐漸建立FPGA應(yīng)用生態(tài)圈開發(fā)領(lǐng)域規(guī)劃形成完備的框架設(shè)計(jì)?明確設(shè)計(jì)需求和目標(biāo)?選擇FPGA芯片和開發(fā)工具?劃分功能模塊?設(shè)計(jì)邏輯電路?綜合和布局布線?仿真和驗(yàn)證?優(yōu)化和迭代?持續(xù)學(xué)習(xí)和更新開發(fā)領(lǐng)域規(guī)劃采用先進(jìn)工藝能力關(guān)鍵方向:?

工藝制程的推進(jìn)?

優(yōu)化基礎(chǔ)單元設(shè)計(jì)?

先進(jìn)封裝技術(shù)開發(fā)領(lǐng)域規(guī)劃具備行業(yè)軟IPFPGA行業(yè)方案需整合優(yōu)質(zhì)軟IP:?

了解行業(yè)需求和標(biāo)準(zhǔn)?

評(píng)估軟IP性能與兼容性?

完成集成驗(yàn)證開發(fā)領(lǐng)域規(guī)劃開發(fā)定制化的解決方案開發(fā)定制化的解決方案要求:?

分析行業(yè)應(yīng)用場(chǎng)景?

設(shè)計(jì)并實(shí)現(xiàn)定制化功能?

測(cè)試和驗(yàn)證定制化解決方案開發(fā)領(lǐng)域規(guī)劃開發(fā)定制化的解決方案持續(xù)優(yōu)化和更新要求:?

跟蹤行業(yè)發(fā)展趨勢(shì)?

優(yōu)化軟IP和定制化解決方案?

提供持續(xù)的技術(shù)支持開發(fā)領(lǐng)域規(guī)劃形成完備的正向設(shè)計(jì)關(guān)鍵環(huán)節(jié):

?

需求分析與目標(biāo)定義

?

方案設(shè)計(jì)與架構(gòu)選型

?

邏輯實(shí)現(xiàn)與功能驗(yàn)證

?

硬件測(cè)試與系統(tǒng)驗(yàn)證

?

持續(xù)優(yōu)化與技術(shù)迭代開發(fā)領(lǐng)域規(guī)劃建立FPGA應(yīng)用生態(tài)圈1.聚焦核心領(lǐng)域??2.雙軌目標(biāo)??3.

基建支撐4.品牌推廣課程學(xué)習(xí)目標(biāo)目標(biāo)本課程培養(yǎng)學(xué)生FPGA設(shè)計(jì)與工程實(shí)踐能力,包括:1.

VerilogHDL硬件設(shè)計(jì)方法2.FPGA設(shè)計(jì)全流程3.

開發(fā)環(huán)境下的仿真驗(yàn)證4.

嵌入式系統(tǒng)協(xié)同設(shè)計(jì)第一章

可編程邏輯器件概述

1可編程邏輯器件簡(jiǎn)介2FPGA簡(jiǎn)介

3FPGA與CPLD4FPGA與ASIC目錄Part1可編程邏輯器件簡(jiǎn)介可編程邏輯器件發(fā)展歷程可編程邏輯器件(PLD)是一類可通過用戶編程實(shí)現(xiàn)數(shù)字邏輯電路集主要類型:

?PAL??(可編程陣列邏輯)

?

CPLD??(復(fù)雜可編程邏輯器件)

?FPGA??(現(xiàn)場(chǎng)可編程門陣列)

可編程邏輯器件發(fā)展歷程

數(shù)字電路復(fù)雜度提升導(dǎo)致傳統(tǒng)通用芯片面臨三大挑戰(zhàn):

?功能局限性

?系統(tǒng)體積膨脹

?可靠性下降可編程邏輯器件發(fā)展歷程可編程邏輯器件(ProgrammableLogicDevice,PLD)PLD技術(shù)優(yōu)勢(shì)凸顯:

?單片集成數(shù)千門電路

?替代多片通用芯片

?實(shí)現(xiàn)小型化/低功耗/高可靠可編程邏輯器件發(fā)展歷程第一階段(20世紀(jì)70年代)主要器件:??PROM??(可編程只讀存儲(chǔ)器)??PLA??(可編程邏輯陣列)??PAL??(可編程陣列邏輯,應(yīng)用最廣泛)原理:??熔絲技術(shù)????一次性編程(OTP)可編程邏輯器件發(fā)展歷程第二階段(20實(shí)際80年代)技術(shù)突破:??EPROM/EEPROM????GAL器件????EPLD????FPGA??(Xilinx)核心發(fā)展:可重復(fù)編程????資源擴(kuò)展????半定制化??可編程邏輯器件發(fā)展歷程第三階段(20世紀(jì)90年代)

核心發(fā)展:

?技術(shù)升級(jí)??

?結(jié)構(gòu)創(chuàng)新??

革命性改進(jìn):

?規(guī)模突破??

?設(shè)計(jì)優(yōu)勢(shì)

?靈活架構(gòu)可編程邏輯器件發(fā)展歷程第四階段(21世紀(jì)初)技術(shù)突破(

FPGA與處理器融合):??硬核處理器集成??

Xilinx推出內(nèi)嵌??PowerPC??和??ARMCortex-A9??的FPGA高性能計(jì)算與可編程邏輯一體化??軟核處理器方案低成本嵌入式方案靈活配置,適合定制化需求可編程邏輯器件發(fā)展歷程第五階段(2010年)核心發(fā)展:?先進(jìn)制程工藝??:

?采用28nm和16nmFinFET工藝

?實(shí)現(xiàn)性能/功耗比質(zhì)的飛躍?旗艦產(chǎn)品演進(jìn)??:

?Xilinx推出VirtexUltraScale系列

?Altera(Intel)發(fā)布Stratix10系列可編程邏輯器件發(fā)展歷程第六階段(2020年至今)核心發(fā)展:??動(dòng)態(tài)資源分配????3D異構(gòu)集成??:采用2.5D/3D先進(jìn)封裝集成HBM2e高帶寬內(nèi)存??智能互連??:支持PCIe5.0/6.0實(shí)現(xiàn)TB級(jí)片上帶寬可編程邏輯器件特性要求1.可讀性可讀性要求:?可編程邏輯圖和硬件描述語言設(shè)計(jì)應(yīng)包含足夠詳細(xì)的注釋?

各個(gè)模塊的詳細(xì)說明?原理圖之間的關(guān)系及硬件描述的模塊之間的互連關(guān)系的詳細(xì)說明可編程邏輯器件特性要求2.可測(cè)性可測(cè)性要求:RTL階段插入測(cè)試結(jié)構(gòu)(SynopsysDFTCompiler)建立故障覆蓋率模型(SA0/SA1/TransitionFault)測(cè)試時(shí)間優(yōu)化可編程邏輯器件特性要求3.可重復(fù)性可重復(fù)性要求:種子控制??固定隨機(jī)種子層級(jí)劃設(shè)計(jì)管理模塊封裝規(guī)范時(shí)序路徑封閉可編程邏輯器件應(yīng)用領(lǐng)域在通信系統(tǒng)中應(yīng)用?架構(gòu)特性??

現(xiàn)代通信系統(tǒng)采用"收發(fā)分離"設(shè)計(jì)架構(gòu),器件選型直接影響系統(tǒng)性能。?技術(shù)需求??

通信系統(tǒng)發(fā)展呈現(xiàn)三大趨勢(shì):?功能強(qiáng)化?體積小型化?傳輸高速化可編程邏輯器件應(yīng)用領(lǐng)域在通信系統(tǒng)中應(yīng)用???FPGA優(yōu)勢(shì)???高集成度?可編程性?并行處理可編程邏輯器件應(yīng)用領(lǐng)域在專用型集成電路設(shè)計(jì)中的應(yīng)用?設(shè)計(jì)靈活性??

?克服ASIC全定制/半定制方案修改成本高的問題?支持設(shè)計(jì)迭代驗(yàn)證,避免流片后無法修改的缺陷?規(guī)模優(yōu)勢(shì)??

?突破ASIC的I/O引腳瓶頸?單片集成度達(dá)千萬系統(tǒng)門級(jí),性能比肩高端ASIC可編程邏輯器件應(yīng)用領(lǐng)域在數(shù)字電路實(shí)驗(yàn)中的應(yīng)用?高度集成化??單芯片可編程實(shí)現(xiàn)多種門電路結(jié)構(gòu)支持中規(guī)模組合電路集成典型應(yīng)用:?jiǎn)纹珿AL16V8可同時(shí)實(shí)現(xiàn)RS/JK/D/T四種觸發(fā)器???實(shí)驗(yàn)效率提升??器件種類減少90%以上顯著降低采購(gòu)成本與管理復(fù)雜度硬件設(shè)計(jì)流程簡(jiǎn)化,開發(fā)周期縮短可編程邏輯器件應(yīng)用領(lǐng)域典型應(yīng)用汽車/軍事?自適應(yīng)行駛控制?防滑制動(dòng)裝置/控制引擎?全球定位/導(dǎo)航/振動(dòng)分析?語音命令/雷達(dá)信號(hào)處理?聲納信號(hào)處理消費(fèi)類產(chǎn)品?數(shù)字收音機(jī)/TV?教育類玩具?音樂合成器/固態(tài)應(yīng)答器?雷達(dá)檢測(cè)器?高清晰數(shù)字電視控制?磁盤驅(qū)動(dòng)控制?引擎控制?激光打印機(jī)控制?電機(jī)控制/伺服控制?機(jī)器人控制可編程邏輯器件應(yīng)用領(lǐng)域典型應(yīng)用數(shù)字信號(hào)處理?自適應(yīng)濾波、DDS?卷積、數(shù)字濾波?快速傅里葉變換?波形產(chǎn)生/頻譜分析圖形圖像處理?神經(jīng)網(wǎng)絡(luò)、同態(tài)信號(hào)處理?動(dòng)畫/數(shù)字地圖?圖像壓縮/傳輸?圖像增強(qiáng)、模式識(shí)別工業(yè)/醫(yī)學(xué)?數(shù)字化控制?電力線監(jiān)控?機(jī)器人、安全檢修?診斷設(shè)備/超聲設(shè)備可編程邏輯器件應(yīng)用領(lǐng)域典型應(yīng)用電信?個(gè)人通信系統(tǒng)(PCS)?ADPCM/蜂窩電話?個(gè)人數(shù)字助理(PDA)?專用交換機(jī)(PBX)?DTMF編/解碼器?回波抵消器網(wǎng)絡(luò)?1200~56600b/sModemxDSL?視頻會(huì)議?傳真、未來終端?無線局域網(wǎng)/藍(lán)牙?WCDMA?MPEG-2碼流傳輸聲音/語音處理?語音處理?語音增強(qiáng)?語音聲碼器?語音識(shí)別/語音合成?文本/語音轉(zhuǎn)換技術(shù)?語音郵箱Part2FPGA簡(jiǎn)介FPGA的基本概念

技術(shù)定位??:屬于ASIC半定制電路范疇繼承PAL/GAL/CPLD可編程特性突破傳統(tǒng)PLD門電路數(shù)量限制FPGA的基本概念

架構(gòu)優(yōu)勢(shì)(六大核心構(gòu)成)??:

?可編程I/O單元

?

基本邏輯單元

?

嵌入式塊RAM

?多層布線資源

?

嵌入式功能單元

?

硬核IPFPGA的特點(diǎn)與應(yīng)用FPGA的特點(diǎn)

?超高性能時(shí)鐘頻率達(dá)數(shù)百M(fèi)Hz并行架構(gòu)實(shí)現(xiàn)真正硬件級(jí)并發(fā)處理運(yùn)算速度顯著優(yōu)于DSP和單片機(jī)集成高速串行收發(fā)器等硬核模塊

?極致擴(kuò)展性??提供數(shù)百至上千個(gè)可編程I/O引腳支持多路AD/DA等外設(shè)直連突破傳統(tǒng)MCU的I/O資源限制FPGA的特點(diǎn)與應(yīng)用FPGA的特點(diǎn)

???并行架構(gòu)優(yōu)勢(shì)多任務(wù)硬件并行執(zhí)行單時(shí)鐘周期完成多重運(yùn)算實(shí)時(shí)響應(yīng)能力遠(yuǎn)超中斷機(jī)制

?高度集成化??可內(nèi)嵌MCU/DSP等處理器軟核集成塊RAM/DSP等專用模塊支持IP核復(fù)用縮短開發(fā)周期FPGA的特點(diǎn)與應(yīng)用FPGA的特點(diǎn)

???設(shè)計(jì)靈活性完全可編程數(shù)字電路實(shí)現(xiàn)支持設(shè)計(jì)迭代與功能重構(gòu)規(guī)避ASIC流片風(fēng)險(xiǎn)與成本提供完善的IP保護(hù)機(jī)制FPGA的特點(diǎn)與應(yīng)用FPGA的應(yīng)用

?實(shí)時(shí)信號(hào)處理

?

通信協(xié)議處理

?智能視覺處理???

?汽車電子系統(tǒng)?航天防務(wù)應(yīng)用?異構(gòu)計(jì)算加速?人工智能和深度學(xué)習(xí)?邊緣計(jì)算最新FPGA器件介紹

Zynq系列???XilinxSoC方案,集成FPGA+ARM處理器?包含Zynq-7000和UltraScale+?應(yīng)用:工業(yè)控制/汽車電子/通信設(shè)備RFSoC芯片???Xilinx射頻集成方案,F(xiàn)PGA+ARM+高速ADC/DAC?特點(diǎn):直接射頻信號(hào)處理,降低系統(tǒng)復(fù)雜度?

應(yīng)用:5G基站/雷達(dá)系統(tǒng)/寬帶通信最新FPGA器件介紹???邊緣AI方案?

XilinxAlveo??:數(shù)據(jù)中心級(jí)加速卡,支持高吞吐AI推理?IntelMovidius??:低功耗神經(jīng)計(jì)算棒,用于智能攝像頭/無人機(jī)?LatticeCrossLink-NX??:低功耗FPGA,專注工業(yè)視覺?QuickLogicEOSS3??:MCU+FPGA混合架構(gòu),適用可穿戴/IoT?

XilinxVersalAIEdge??:新一代ACAP平臺(tái),集成AI引擎+FPGA+DSP,面向自動(dòng)駕駛/智能制造FPGA器件選型1.FPGA芯片命名規(guī)則前綴????器件型號(hào)????邏輯單元數(shù)(LE)????封裝形式????管腳數(shù)????溫度范圍????速度等級(jí)??下面以EP2C35F72C6N為例做一個(gè)說明FPGA器件選型2.獲取芯片資料獲取芯片資料的主要途徑??:??四大FPGA廠商官網(wǎng)??:??Altera(IntelFPGA)??:??Xilinx(AMDFPGA)??:??Lattice??:??Microsemi(原Actel)??:(Actel已被收購(gòu))

主要FPGA廠商及產(chǎn)品系列????:Altera(IntelFPGA)Xilinx(AMDFPGA)Lattice??Microsemi(原Actel)FPGA器件選型3.FPGA廠家的選擇生產(chǎn)FPGA的廠家主要有ALTERA、XILINX、LATTICE和ACTEL。每個(gè)廠家的產(chǎn)品都有各自的特色和適用領(lǐng)域,要綜合考慮下面幾個(gè)因素:?

滿足項(xiàng)目的特殊需求?供貨渠道?價(jià)格因素?芯片的成熟度&技術(shù)支持FPGA器件選型4.芯片系列的選擇廠商產(chǎn)品系列劃分(以Altera為例):??FPGA廠商通常按??性能、功耗、成本??劃分不同系列,例如:??高端??:Altera??Stratix??(高性能計(jì)算、通信)??中端??:Altera??Arria??(嵌入式、視頻處理)??低成本??:Altera??Cyclone??(消費(fèi)電子、工業(yè)控制)??系列內(nèi)部的代際升級(jí)??:每個(gè)系列會(huì)隨??半導(dǎo)體工藝升級(jí)??迭代多代產(chǎn)品,新一代通常具備:??更高性能????更低功耗????更高性價(jià)比??FPGA器件選型4.芯片系列的選擇子系列與型號(hào)細(xì)分??:??資源規(guī)模??封裝形式????速度等級(jí)????具體型號(hào)的選擇維度??:

?邏輯資源需求??

?封裝與引腳數(shù)

?速度等級(jí)??

??特殊功能??FPGA的基本開發(fā)流程FPGA設(shè)計(jì)是一個(gè)系統(tǒng)化的開發(fā)過程,主要分為以下步驟:?電路功能設(shè)計(jì)?設(shè)計(jì)輸入?

功能仿真?

綜合?

綜合后仿真?

實(shí)現(xiàn)?

布線后仿真?

板級(jí)仿真?

芯片編程與調(diào)試FPGA的基本開發(fā)流程1.電路功能設(shè)計(jì)

核心任務(wù)??:

在FPGA設(shè)計(jì)初期,需完成以下關(guān)鍵工作:??方案論證??:根據(jù)系統(tǒng)指標(biāo)評(píng)估可行性??系統(tǒng)設(shè)計(jì)??:劃分功能模塊,明確數(shù)據(jù)流與控制邏輯??FPGA選型??:結(jié)合資源、成本、供貨周期選擇合適芯片??

設(shè)計(jì)方法??:自頂向下(Top-Down)??:??系統(tǒng)級(jí)分解??:將整體功能劃分為若干子系統(tǒng)??逐層細(xì)化??:每個(gè)子系統(tǒng)進(jìn)一步拆分為可實(shí)現(xiàn)的硬件單元??底層映射??:最終對(duì)應(yīng)到EDA工具支持的IP核或基本邏輯單元FPGA的基本開發(fā)流程2.設(shè)計(jì)輸入設(shè)計(jì)輸入是將所設(shè)計(jì)的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并輸入給EDA工具的過程。常用的方法包括:

?硬件描述語言(HDL):主要語言有VerilogHDL和VHDL

?高層次綜合(HLS):使用高級(jí)編程語言描述設(shè)計(jì)

?原理圖輸入:使用EDA工具提供的圖形化界面繪制電路原理圖

?IP集成:利用現(xiàn)成的IP核進(jìn)行設(shè)計(jì),通過集成多個(gè)IP核實(shí)現(xiàn)復(fù)雜功能

?模型驅(qū)動(dòng)設(shè)計(jì):通過工具進(jìn)行系統(tǒng)級(jí)建模和仿真,然后生成HDL代碼3.功能仿真

核心目的??:??邏輯驗(yàn)證??:在綜合和布局布線前,確認(rèn)RTL代碼的功能正確性??延遲分析??:僅測(cè)試邏輯行為,不考慮門延遲或布線延遲??FPGA的基本開發(fā)流程3.功能仿真?

關(guān)鍵步驟??:

?測(cè)試向量生成??

?

通過波形編輯器或HDL編寫測(cè)試激勵(lì)模擬輸入信號(hào)序列

?覆蓋正常、邊界和異常場(chǎng)景

?

仿真執(zhí)行??:

?工具:ModelSim、VCS、NC-Verilog/VHDL等

?輸出:波形圖和報(bào)告文件

?結(jié)果分析??:

?

檢查關(guān)鍵節(jié)點(diǎn)是否符合預(yù)期

?若發(fā)現(xiàn)錯(cuò)誤,需返回修改RTL代碼或測(cè)試用例FPGA的基本開發(fā)流程4.綜合

將RTL級(jí)HDL代碼轉(zhuǎn)換為由基本邏輯單元組成的門級(jí)網(wǎng)表

?關(guān)鍵過程??:??邏輯映射??:HDL代碼→FPGA底層元件??優(yōu)化目標(biāo)??:時(shí)序、面積、功耗??層次扁平化??:消除模塊層級(jí),生成平面化網(wǎng)表

?工具分類??:??第三方工具??:SynplifyPro??廠商工具??:Vivado、Quartus內(nèi)置綜合引擎FPGA的基本開發(fā)流程5.綜合后仿真

驗(yàn)證綜合后的門級(jí)網(wǎng)表功能是否與原RTL設(shè)計(jì)一致

?關(guān)鍵特點(diǎn)??:??帶門延遲??:通過標(biāo)準(zhǔn)延時(shí)文件反標(biāo)注估算邏輯單元延遲??無布線延遲??:結(jié)果與最終硬件仍有差距??工具支持??:ModelSim/VCS等通用仿真器均可執(zhí)行FPGA的基本開發(fā)流程6.實(shí)現(xiàn)布局與布線

?核心任務(wù)??:??布局??:將綜合后的邏輯單元映射到FPGA物理資源??布線??:利用芯片內(nèi)部連線資源連接各單元,滿足時(shí)序要求

?

關(guān)鍵挑戰(zhàn)??:??速度vs面積??:需權(quán)衡性能與資源占用??時(shí)序驅(qū)動(dòng)??:復(fù)雜設(shè)計(jì)需用時(shí)序引擎優(yōu)化關(guān)鍵路徑FPGA的基本開發(fā)流程7.時(shí)序仿真與驗(yàn)證

驗(yàn)證布局布線后的設(shè)計(jì)是否滿足時(shí)序要求,反映實(shí)際硬件性能。

關(guān)鍵特點(diǎn)??:??全延時(shí)建模??:包含門延遲和布線延遲??精確性高??:最接近芯片真實(shí)行為??工具支持??:ModelSim/VCS等通用仿真器FPGA的基本開發(fā)流程8.板級(jí)仿真與驗(yàn)證板級(jí)仿真主要應(yīng)用于高速電路設(shè)計(jì)中,對(duì)高速系統(tǒng)的信號(hào)完整性、電磁干擾等特征進(jìn)行分析,一般都用第三方工具進(jìn)行仿真和驗(yàn)證。9.芯片編程與調(diào)試設(shè)計(jì)的最后一步就是芯片編程與調(diào)試,芯片編程是指產(chǎn)生使用的數(shù)據(jù)文件,然后將編程數(shù)據(jù)下載到FPGA芯片中。FPGA的基本開發(fā)流程10.DevOps與CI/CD(持續(xù)集成/持續(xù)部署)方法隨著軟件開發(fā)方法的進(jìn)步,DevOps和CI/CD方法被引入到FPGA開發(fā)流程中

?持續(xù)集成(CI)

?持續(xù)部署(CD)

?自動(dòng)化測(cè)試

?

版本控制

?容器化FPGA發(fā)展趨勢(shì)及意義發(fā)展趨勢(shì)?規(guī)模擴(kuò)大,成本降低???低端FPGA逐步替代傳統(tǒng)數(shù)字芯片?高端FPGA搶占ASIC市場(chǎng)?工藝與集成度提升???采用先進(jìn)ASIC制程,提高性能并降低功耗?集成多核處理器,支持系統(tǒng)級(jí)設(shè)計(jì)FPGA發(fā)展趨勢(shì)及意義意義?

硬件可編程性????軟硬協(xié)同????動(dòng)態(tài)重構(gòu)???

并行性與靈活性????并行計(jì)算????實(shí)時(shí)重構(gòu)?????信號(hào)處理優(yōu)勢(shì)????高性能DSP???流程簡(jiǎn)化??Part3FPGA與CPLDFPGA與CPLDCPLD簡(jiǎn)介CPLD(ComplexProgrammableLogicDevice)被稱為復(fù)雜可編程邏輯器件,它與FPGA一樣都是半定制電路,具有開發(fā)周期短、支持重復(fù)編程等優(yōu)點(diǎn)。與FPGA對(duì)比??:??優(yōu)勢(shì)??:非易失、低功耗、穩(wěn)定性高??劣勢(shì)??:資源規(guī)模較小,靈活性低于FPGAFPGA的原理與基本結(jié)構(gòu)在FPGA的設(shè)計(jì)中,可將所有的設(shè)計(jì)元素抽象成五類基本單元

?布爾單元

?開關(guān)單元

?存儲(chǔ)單元

?控制單元

?數(shù)據(jù)調(diào)整單元FPGA的原理與基本結(jié)構(gòu)1.FPGA的分類

根據(jù)FPGA的不同結(jié)構(gòu)和集成度以及編程工藝,可將FPGA分為三類

?按邏輯功能塊的大小分類

???細(xì)粒度FPGA

?

粗細(xì)粒度FPGA

?

按互連結(jié)構(gòu)分類

?分段互聯(lián)型

?連續(xù)互聯(lián)型

?

按編程特性分類

?一次編程型

?可重復(fù)編程型FPGA的原理與基本結(jié)構(gòu)2.基于查找表的FPGA的基本原理 FPGA結(jié)合了??門陣列的高密度??和??可編程邏輯的靈活性??,其核心邏輯單元是??查找表(LUT)??,用于實(shí)現(xiàn)任意組合邏輯函數(shù)。??LUT工作原理??:??存儲(chǔ)邏輯真值表????輸入選擇輸出??:以??2輸入LUT??為例,輸入A、B控制數(shù)據(jù)選擇器,從4個(gè)存儲(chǔ)單元(M0-M3)中選擇1個(gè)作為輸出L。例如:若A=1、B=0,則選擇M2的值輸出。??支持任意邏輯函數(shù)??圖一FPGA的原理與基本結(jié)構(gòu)2.基于查找表的FPGA的基本原理例如,要用一個(gè)FPGA實(shí)現(xiàn)邏輯函數(shù),該邏輯函數(shù)的真值表如表一所示。表一圖二FPGA的原理與基本結(jié)構(gòu)2.基于查找表的FPGA的基本原理另外,在LUT和數(shù)據(jù)選擇器的基礎(chǔ)上再增加觸發(fā)器,便可構(gòu)成既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯電路塊,如圖三所示。圖三FPGA的原理與基本結(jié)構(gòu)3.FPGA的基本結(jié)構(gòu)如圖所示為FPGA的內(nèi)部結(jié)構(gòu)簡(jiǎn)圖。它是邏輯塊、可編程內(nèi)部連線、可編程輸入/輸出單元等組成。圖四CPLD的原理與基本結(jié)構(gòu)CPLD原理CPLD是20世紀(jì)80年代中期出現(xiàn)的可編程邏輯器件,采用連續(xù)布線結(jié)構(gòu)和乘積項(xiàng)架構(gòu),由邏輯塊、可編程互連和I/O單元組成。相比PAL/GAL器件。

優(yōu)勢(shì):

?集成度高

?設(shè)計(jì)靈活

?開發(fā)周期短CPLD的結(jié)構(gòu)示意圖CPLD的原理與基本結(jié)構(gòu)CPLD基本結(jié)構(gòu)?邏輯塊

?可編程乘積項(xiàng)陣列

?宏單元

?乘積項(xiàng)?全局可編程布線區(qū)可編程布線區(qū)的作用是實(shí)現(xiàn)邏輯塊與邏輯塊之間、邏輯塊與I/O塊之間以及全局信號(hào)到邏輯塊和I/O塊之間信號(hào)的連接。邏輯塊的結(jié)構(gòu)CPLD的原理與基本結(jié)構(gòu)CPLD基本結(jié)構(gòu)?I/O塊I/O塊是CPLD外部封裝引腳和內(nèi)部邏輯間的接口I/O單元的簡(jiǎn)化結(jié)構(gòu)圖FPGA與CPLD的比較CPLD和FPGA具有各自的特點(diǎn)CPLD與FPGA的特點(diǎn)差異有以下幾個(gè)方面:?適合結(jié)構(gòu)?延遲?功率消耗?速度?編程方式?編程?集成度?保密性FPGA與CPLD的比較CPLD和FPGA的機(jī)構(gòu)和性能比較CPLDFPGA集成規(guī)模小大編程工藝EPROM、EEPROM、FlashSRAM單元粒度大小互連方式縱橫分段總線、長(zhǎng)線、專用互連觸發(fā)器數(shù)少多單元功能強(qiáng)弱速度高低管腳-管腳延遲確定,可預(yù)測(cè)不確定,不可預(yù)測(cè)功耗/每個(gè)邏輯門高低Part4FPGA與ASICFPGA與ASICASIC簡(jiǎn)介ASIC(專用集成電路)是為特定需求定制的集成電路,具有以下核心特點(diǎn):??定制化設(shè)計(jì)??:針對(duì)用戶特定功能需求開發(fā)??性能優(yōu)勢(shì)??:較FPGA體積更小、功耗更低、可靠性更高、成本更具規(guī)模效應(yīng)??快速響應(yīng)??:支持大批量生產(chǎn)且周期短FPGA與ASICASIC簡(jiǎn)介??主要分類??:數(shù)字ASIC(純數(shù)字邏輯電路)模擬ASIC(處理連續(xù)信號(hào))數(shù)?;旌螦SIC(集成數(shù)字與模擬模塊)FPGA與ASICASIC簡(jiǎn)介ASIC設(shè)計(jì)方法分類圖:FPGA與ASIC的特點(diǎn)及選擇ASIC專用集成電路具有的特點(diǎn)ASIC專用集成電路具有如下的特點(diǎn):實(shí)現(xiàn)功能的專一性可大規(guī)模制造生產(chǎn)混合信號(hào)可實(shí)現(xiàn)性與后端制造工廠工藝庫的緊密關(guān)聯(lián)性低成本、高性能FPGA與ASIC的特點(diǎn)及選擇ASIC專用集成電路具有的特點(diǎn)ASIC除上述列舉的特性之外,越來越多的優(yōu)勢(shì)還表現(xiàn)在如下幾個(gè)方面:高性能安全的IP核的可設(shè)計(jì)性;高效、低面積消耗的系統(tǒng)空間;復(fù)雜系統(tǒng)的在片可設(shè)計(jì)、可制造性。FPGA與ASIC的特點(diǎn)及選擇FPGA現(xiàn)場(chǎng)可編程門陣列具有的特點(diǎn)另一方面,F(xiàn)PGA現(xiàn)場(chǎng)可編程門陣列相對(duì)于ASIC而言同樣具有本身特有的優(yōu)點(diǎn),主要表現(xiàn)在如下幾個(gè)方面:強(qiáng)大的在片可編程/可配置的多次復(fù)用性實(shí)現(xiàn)功能設(shè)計(jì)的多樣性不需要后端工藝庫,設(shè)計(jì)的簡(jiǎn)化性實(shí)現(xiàn)設(shè)計(jì)—市場(chǎng)的短開發(fā)周期FPGA與ASIC的特點(diǎn)及選擇FPGA與ASIC的選擇??ASIC適用場(chǎng)景??:設(shè)計(jì)成熟度高市場(chǎng)需求量大性能/功耗要求嚴(yán)苛典型應(yīng)用:消費(fèi)電子、通信芯片等量產(chǎn)產(chǎn)品FPGA與ASIC的特點(diǎn)及選擇FPGA與ASIC的選擇??FPGA適用場(chǎng)景??:設(shè)計(jì)驗(yàn)證階段小批量/特殊需求需要快速迭代典型應(yīng)用:原型驗(yàn)證、科研設(shè)備習(xí)題習(xí)題1.1PLD的基本結(jié)構(gòu)包含哪些部分?這些部分如何協(xié)同工作以實(shí)現(xiàn)邏輯功能?1.2請(qǐng)說明FPGA和CPLD的結(jié)構(gòu)差異,以及在什么場(chǎng)景下選擇FPGA或CPLD較為合適。1.3從設(shè)計(jì)需求到最終的電路實(shí)現(xiàn),F(xiàn)PGA開發(fā)流程包含哪些主要步驟?1.4結(jié)合當(dāng)前技術(shù)背景,簡(jiǎn)述FPGA的發(fā)展趨勢(shì)及其未來的應(yīng)用前景。1.5在不同應(yīng)用場(chǎng)景下,選擇合適的FPGA器件時(shí)應(yīng)考慮哪些因素?1.6在設(shè)計(jì)項(xiàng)目中,應(yīng)該如何判斷是選擇FPGA還是ASIC更為合適第二章VerilogHDL概述

1VerilogHDL簡(jiǎn)介2數(shù)據(jù)類型及運(yùn)算符

3模塊結(jié)構(gòu)及描述方式4邏輯控制語句5系統(tǒng)任務(wù)及函數(shù)目錄

6仿真文件撰寫語法

7VerilogHDL設(shè)計(jì)實(shí)例目錄Part1VerilogHDL簡(jiǎn)介VerilogHDL的產(chǎn)生與發(fā)展產(chǎn)生與發(fā)展VerilogHDL的抽象級(jí)別抽象級(jí)別可分為五級(jí)(1)系統(tǒng)級(jí)(systemlevel)(2)算法級(jí)(algorithmiclevel)(3)RTL級(jí)(registertransferlevel)(4)門級(jí)(gatelevel)(5)開關(guān)級(jí)(switchlevel)VerilogHDL的特點(diǎn)Verilog主要能力基本邏輯門;用戶定義原語(UDP)創(chuàng)建的靈活性;開關(guān)級(jí)基本結(jié)構(gòu)模型;提供顯式語言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查;可采用三種不同方式或混合方式對(duì)設(shè)計(jì)建模;VerilogHDL的特點(diǎn)Verilog主要能力VerilogHDL中有兩類數(shù)據(jù)類型;能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次設(shè)計(jì)的規(guī)??梢允侨我獾?,語言不對(duì)設(shè)計(jì)的規(guī)模(大?。┦┘尤魏蜗拗疲辉O(shè)計(jì)能夠在多個(gè)層次上加以描述。從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí),包括進(jìn)程和隊(duì)列級(jí);VerilogHDL的特點(diǎn)Verilog主要能力VerilogHDL語言的描述能力能夠通過使用編程語言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。能夠使用內(nèi)置開關(guān)級(jí)原語在開關(guān)級(jí)對(duì)設(shè)計(jì)完整建模;同一語言可用于生成模擬激勵(lì)和指定測(cè)試的驗(yàn)證約束條件。VerilogHDL能夠監(jiān)控模擬驗(yàn)證的執(zhí)行。在行為級(jí)描述中,VerilogHDL不僅能夠在RTL級(jí)上進(jìn)行設(shè)計(jì)描述,而且能夠在體系結(jié)構(gòu)級(jí)描述及其算法級(jí)行為上進(jìn)行設(shè)計(jì)描述;VerilogHDL的特點(diǎn)Verilog主要能力能夠使用門和模塊實(shí)例化語句在結(jié)構(gòu)級(jí)進(jìn)行結(jié)構(gòu)描述;VerilogHDL具有混合方式建模能力;VerilogHDL還具有內(nèi)置邏輯函數(shù);對(duì)高級(jí)編程語言結(jié)構(gòu);可以顯式地對(duì)并發(fā)和定時(shí)進(jìn)行建模;提供強(qiáng)有力的文件讀寫能力;語言在特定情況下是非確定性的。Part2數(shù)據(jù)類型及運(yùn)算符常量整型常量整型常量即整常數(shù),有4種進(jìn)制表示形式:二進(jìn)制(b或B)、十進(jìn)制(d或D)、十六進(jìn)制(h或H)與八進(jìn)制(o或O)。整常數(shù)的表達(dá)方式有以下3種格式:·簡(jiǎn)單的十進(jìn)制格式·缺省位寬的基數(shù)格式·指定位寬的基數(shù)格式常量實(shí)數(shù)型常量實(shí)數(shù)可以用十進(jìn)制與科學(xué)計(jì)數(shù)法兩種格式表示,如果采用十進(jìn)制格式,小數(shù)點(diǎn)兩邊必須都有數(shù)字,否則為錯(cuò)誤格式。例:

1.8

3.8e10

2.1E-9

2.常量字符串型常量字符串常量是由一對(duì)雙引號(hào)括起來的字符序列。出現(xiàn)在雙引號(hào)內(nèi)的任何字符都將被作為字符串的一部分,字符串不能分多行書寫。例:“INTERNALERROR”常量參數(shù)型常量在VerilogHDL中用parameter來定義常量,即用parameter來定義一個(gè)標(biāo)識(shí)符代表一個(gè)常量,稱為符號(hào)常量。例:parametermsb=6;//定義參數(shù)msb為常量6parametere=24,f=28//定義兩個(gè)常數(shù)參數(shù)變量變量VerilogHDL中的變量是程序運(yùn)行時(shí)可改變的量,用于表示硬件電路中的物理連線、存儲(chǔ)單元等。變量類型分類??:線網(wǎng)類型(Net)??:代表物理連線,值由驅(qū)動(dòng)元件實(shí)時(shí)決定。無驅(qū)動(dòng)時(shí)默認(rèn)為高阻(z)。需要持續(xù)驅(qū)動(dòng),不能保持歷史值。寄存器類型(Register)??:代表數(shù)據(jù)存儲(chǔ)單元,保持最后一次賦值。默認(rèn)初始值為未知(x)。變量線網(wǎng)類型定義??:表示硬件中的物理連線,值由驅(qū)動(dòng)元件決定。默認(rèn)值:無驅(qū)動(dòng)時(shí)默認(rèn)為高阻分類:·可綜合:wire、tri、supply0、supply1·不可綜合:wor、wand、trior、triand、trireg、tri1、tri0變量寄存器類型定義??:表示具有狀態(tài)保持功能的存儲(chǔ)單元特點(diǎn):·通過always

或initial塊中的過程賦值語句賦值

·默認(rèn)初始值為不定值分類:

·可綜合:reg、integer、memory·不可綜合:real、realtime、time運(yùn)算符及優(yōu)先級(jí)運(yùn)算符運(yùn)算符按其功能可分為以下幾類:·算術(shù)運(yùn)算符·賦值運(yùn)算符·關(guān)系運(yùn)算符·等式運(yùn)算符·邏輯運(yùn)算符·條件運(yùn)算符·位運(yùn)算符·移位運(yùn)算符·位拼接運(yùn)算符·其他運(yùn)算符及優(yōu)先級(jí)運(yùn)算符按其所帶操作數(shù)的個(gè)數(shù)運(yùn)算符可分為3種:·單目運(yùn)算符(unaryoperator)·

雙目運(yùn)算符(binaryoperator)

·

三目運(yùn)算符(ternaryoperator)

例:clk=~clkc=a|b;out=sel?in1:in0;運(yùn)算符及優(yōu)先級(jí)優(yōu)先級(jí)各種運(yùn)算符的優(yōu)先級(jí)別關(guān)系總結(jié)優(yōu)先級(jí):

單目運(yùn)算符>雙目運(yùn)算符>三目運(yùn)算符Part3模塊結(jié)構(gòu)及描述方式模塊結(jié)構(gòu)模塊結(jié)構(gòu)Verilog設(shè)計(jì)中的基本單元是“模塊”。一個(gè)模塊由兩部分組成,一部分描述接口,另一部分描述邏輯功能圖一是程序模塊。圖一

程序模塊圖二

電路圖符號(hào)模塊結(jié)構(gòu)1.

端口定義模塊的端口定義了輸入輸出口,也是與別的模塊聯(lián)系端口的標(biāo)識(shí)。定義格式:module模塊名(口1,口2,口3,口4,……);(1)在引用時(shí),嚴(yán)格按照模塊定義的端口順序來連接,不用標(biāo)明原模塊定義時(shí)規(guī)定的端口名例如:

模塊名(連接端口1信號(hào)名,連接端口2信號(hào)名,連接端口3信號(hào)名,……);(2)在引用時(shí)用“.”符號(hào),標(biāo)明原模塊是定義時(shí)規(guī)定的端口名例如:

模塊名(.端口1名(連接信號(hào)1名),.端口2名(連接信號(hào)2名),……);模塊結(jié)構(gòu)2.

I/O說明格式I/O說明的格式如下:輸入口:input[信號(hào)位寬-1:0]端口名i;

輸出口:output[信號(hào)位寬-1:0]端口名j; 輸入/輸出口:inout[信號(hào)位寬-1:0]端口名k;

例如: input[2:0]a,b,c;模塊結(jié)構(gòu)

3.

內(nèi)部信號(hào)聲明在模塊內(nèi),除了進(jìn)行I/O口說明,還要聲明數(shù)據(jù)類型,wire和reg類型變量。

reg[width-1:0]R變量1,R變量2…;

wire[width-1:0]W變量1,W變量2…;4.

功能定義在Verilog模塊中,有以下3種方法描述電路的邏輯功能:(1)用“assign”語句(連續(xù)賦值語句)例如:assignx=b&c;只需在“assign”后面添加關(guān)系方程式。例中的方程式描述了一個(gè)有兩個(gè)輸入的與門。模塊結(jié)構(gòu)4.

功能定義(2)用實(shí)例元件(元件調(diào)用)元件調(diào)用類似于在電路圖輸入方式下調(diào)入元件圖形符號(hào)來完成設(shè)計(jì)。使用實(shí)例元件的格式:門原件關(guān)鍵字<實(shí)例名>(端口列表);例如:and#2ul(q,a,b);(3)用“always”塊(過程賦值語句)

如:always@(posedgeclkorposedgerst)beginif(rst)q<=0;elseif(en)q<=d;end模塊結(jié)構(gòu)5.要點(diǎn)總結(jié)(1)在Verilog模塊中所有過程塊(如:initial塊、always塊)、連續(xù)賦值語句、實(shí)例引用都是并行的;(2)它們表示的是一種通過變量名互相連接的關(guān)系;(3)在同一模塊中這三者出現(xiàn)的先后順序沒有關(guān)系;(4)只有連續(xù)賦值語句assign和實(shí)例引用語句可以獨(dú)立于過程塊而存在于模塊的功能定義部分。描述方式在使用Verilog描述電路時(shí),有3種描述方式:·行為描述方式·結(jié)構(gòu)描述方式·混合描述方式描述方式1.

行為描述方式使用以下三種語句來描述模型:(1)assign連續(xù)賦值語句(2)initial過程語句(3)always過程語句2.結(jié)構(gòu)描述方式使用以下幾種基本結(jié)構(gòu)來建模:(1)內(nèi)置門級(jí)元件(2)模塊實(shí)例調(diào)用(3)用戶自定義的門級(jí)元件描述方式3.

混合描述方式將行為描述方式和結(jié)構(gòu)描述方式混合使用??梢院校骸みB續(xù)賦值語句·always語句·initial語句·內(nèi)置門級(jí)元件·模塊實(shí)例調(diào)用等語句描述方式3.

混合描述方式(1)過程語句過程語句是行為描述的主要組成部分·在行為描述模塊中出現(xiàn)的每個(gè)過程塊都代表一個(gè)獨(dú)立的進(jìn)程·在進(jìn)行仿真時(shí),所有過程塊的執(zhí)行都是從0時(shí)刻開始并行進(jìn)行的·每個(gè)過程塊內(nèi)部的多條語句的執(zhí)行方式可以是順序執(zhí)行的也可以是并行執(zhí)行的(2)always過程塊和initial過程塊都是不能嵌套使用的

initial<塊定義語句1>:<塊名>

塊內(nèi)局部變量說明:

時(shí)間控制1行為語句1;……

時(shí)間控制n行為語句n;<塊定義語句2>always@(敏感事件列表)<塊定義語句1>:<塊名>

塊內(nèi)局部變量說明;

時(shí)間控制1行為語句1;…….

時(shí)間控制n行為語句n;<塊定義語句2>描述方式3.

混合描述方式(3)賦值語句

信號(hào)的兩種賦值方式分別為:·連續(xù)賦值·過程賦值Part4邏輯控制語句條件語句if-else語句if-else條件分支語句用來判定所給條件是否滿足,根據(jù)判定結(jié)果決定執(zhí)行給出的兩種操作之一它有三種格式:

(1)if結(jié)構(gòu)

(2)if-else結(jié)構(gòu)

(3)if-elseif-else結(jié)構(gòu)條件語句if-else語句(1)if結(jié)構(gòu)例如:if(a>b)outl=int1;(2)if-else結(jié)構(gòu)例如:

if(a>b)outl=int1;elseoutl=int2;條件語句if-else語句(3)if-elseif-else結(jié)構(gòu)例如:always@(some_event)

beginif(a>b) outl=int1;else if(a==b)outl=int2;else outl=int3;end條件語句case語句case語句的表述方式有3種,即:case,casex和casez表述的case語句。格式分別如下:

case(敏感表達(dá)式) <case分支項(xiàng)>endcasecasez(敏感表達(dá)式) <case分支項(xiàng)>endcasecasex(敏感表達(dá)式) <case分支項(xiàng)>endcase條件語句case語句(1)case語句分支項(xiàng)的一般格式如下:分支表達(dá)式:

語句;默認(rèn)項(xiàng)(default項(xiàng)):

語句;(2)casez與casex語句VerilogHDL針對(duì)電路的特性提供了case語句的其他兩種形式,即casez和casex。區(qū)別:·case語句,是全等比較·在casez中,高阻值z(mì)被視為“無關(guān)位”·在casex中,不定值x和高阻值z(mì)均被視為“無關(guān)位”循環(huán)語句循環(huán)語句在VerilogHDL中存在著4種類型的循環(huán)語句,用來控制執(zhí)行語句的執(zhí)行次數(shù)。(1)forever:無限連續(xù)的執(zhí)行語句,可用disable語句

中斷。(2)repeat:連續(xù)執(zhí)行一條語句n次。(3)while:執(zhí)行一條語句,直到某個(gè)條件不滿足(4)for:在變量?jī)?nèi)執(zhí)行循環(huán)語句,達(dá)到條件跳出。循環(huán)語句forever語句格式如下:forever

begin

多條語句

end循環(huán)語句repeat語句格式如下:repeat(表達(dá)式)語句;

或repeat(表達(dá)式) begin

多條語句 end循環(huán)語句while語句格式如下:

while(循環(huán)執(zhí)行條件表達(dá)式)語句或

while(循環(huán)執(zhí)行條件表達(dá)式)begin

多條語句end循環(huán)語句for語句for語句是一種條件循環(huán),語句中有一個(gè)控制執(zhí)行次數(shù)的循環(huán)變量。for語句的一般形式為:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句Part5系統(tǒng)任務(wù)及函數(shù)系統(tǒng)任務(wù)任務(wù)的定義任務(wù)的使用包括任務(wù)定義和任務(wù)調(diào)用。任務(wù)既可表示組合邏輯又可表達(dá)時(shí)序邏輯,定義的形式如下:task<任務(wù)名>;<端口及數(shù)據(jù)類型聲明語句>begin<語句1><語句2>.....<語句n>endendtask系統(tǒng)任務(wù)任務(wù)的調(diào)用任務(wù)的調(diào)用是通過“任務(wù)調(diào)用語句”來實(shí)現(xiàn)的。任務(wù)調(diào)用語句的語法如下:<任務(wù)名>(端口1,端口2,……,端口n);在調(diào)用任務(wù)時(shí)必須注意:(1)只能在塊語句中使用(2)端口順序(3)輸出限制系統(tǒng)任務(wù)任務(wù)的特點(diǎn)在利用任務(wù)編程時(shí),任務(wù)有以下特點(diǎn):(1)模塊內(nèi)定義與調(diào)用(2)類似模塊的接口定義(3)調(diào)用時(shí)激活(4)支持嵌套調(diào)用函數(shù)函數(shù)的定義function<返回值類型或范圍><函數(shù)名>;<輸入端口說明><局部變量說明>begin<行為語句1;><行為語句2;>……<行為語句n;>endendfunction函數(shù)函數(shù)的返回值返回值類型可以有三種形式:(1)“[msb:lsb]”(2)“integer”(3)“real”函數(shù)函數(shù)的調(diào)用函數(shù)調(diào)用是通過將函數(shù)作為表達(dá)式中的操作數(shù)來實(shí)現(xiàn)的其調(diào)用格式如下:<函數(shù)名>(<輸入表達(dá)式1>,<輸入表達(dá)式2>,……,<輸入表達(dá)式m>);函數(shù)使用規(guī)則禁止使用時(shí)序控制不可啟動(dòng)任務(wù)必須至少一個(gè)輸入?yún)?shù)必須包含對(duì)內(nèi)部變量的結(jié)果值賦值函數(shù)函數(shù)與任務(wù)的共同點(diǎn)和區(qū)別共同點(diǎn):(1)定義位置(2)局部變量(3)使用限制不同點(diǎn):(1)函數(shù)無時(shí)序控制,任務(wù)可有時(shí)序(2)函數(shù)至少1輸入且通過函數(shù)名返回,任務(wù)I/O可無或任意(3)函數(shù)可用于assign表達(dá)式(4)函數(shù)直接返回值,任務(wù)需I/O傳遞(5)函數(shù)不可調(diào)任務(wù),任務(wù)可調(diào)函數(shù)/任務(wù)常用的系統(tǒng)任務(wù)及函數(shù)依據(jù)實(shí)現(xiàn)功能的不同,系統(tǒng)任務(wù)可分成以下幾類:·顯示任務(wù)(displaytask)·文件輸入/輸出任務(wù)(FileI/Otask)·時(shí)間標(biāo)度任務(wù)(timescaletask)·模擬控制任務(wù)(simulationcontroltask)·時(shí)序驗(yàn)證任務(wù)(timingchecktask)·PLA建模任務(wù)(PLAmodelingtask)·隨機(jī)建模任務(wù)(stochasticmodelingtask)·實(shí)數(shù)變換函數(shù)(conversionfunctionsforreal)·概率分布函數(shù)(probabilisticdistributionfunction)Part6仿真文件撰寫語法仿真文件的基本結(jié)構(gòu)基本結(jié)構(gòu)timescale指令module聲明信號(hào)聲明DUT實(shí)例化初始化塊過程塊初始化過程初始化過程初始信號(hào)設(shè)置復(fù)位操作仿真時(shí)長(zhǎng)設(shè)置例:initialbegin//初始化信號(hào)clk=0;rst=0;data_in=0;

//復(fù)位操作rst=1;#10;rst=0;

//仿真結(jié)束#100;$finish;end測(cè)試向量生成測(cè)試向量生成靜態(tài)測(cè)試向量動(dòng)態(tài)測(cè)試向量例:initialbegin//測(cè)試向量生成data_in=8'hA5;#20;data_in=8'h5A;#20;data_in=8'hFF;end波形輸出波形輸出使用$dumpfile和$dumpvars系統(tǒng)任務(wù)生成波形文件:$dumpfile$dumpvars例:initialbegin$dumpfile("testbench.vcd");$dumpvars(0,testbench);end仿真結(jié)果分析仿真結(jié)果分析波形查看$display系統(tǒng)任務(wù)例:initialbegin$monitor("Attime%t,data_in=%h,data_out=%h",$time,data_in,data_out);endPart7VerilogHDL設(shè)計(jì)實(shí)例簡(jiǎn)要語法總結(jié)1.

典型的Verilog模塊結(jié)構(gòu)assignW1=Expression;wire(Strongl,Weak0)[3:0]#(2,3)W2=Expression;//模塊實(shí)例引用COMPU1(W3,W4);COMPU2(.P1(W3),,P2(W4));taskT1, //任務(wù)定義inputA1;inoutA2;outputA3;begin//聲明語句endendtaskmoduleM(P1,P2,P3,P4);inputP1,P2;output[7:0]P3;inoutP4;reg[7:0]R1,Ml[l:1024];wireW1,W2,W3,W4;parameterCl=“Thisisastring”;initialbegin:塊名//聲明語句endalways@(觸發(fā)事件)begin//聲明語句

end//連續(xù)賦值語句function[7:0]FI; //函數(shù)定義inputA1;begin//聲明語句FI=表達(dá)式;endendfunctionendmodule //模塊結(jié)束簡(jiǎn)要語法總結(jié)2.

聲明語句#delaywait(Expression)@(AorBorC)@(posedgeClk)Reg=Expression;Reg<=Expression;VectorReg[Bit]=Expression;VectorReg[MSB:LSB]=Expression;Memory[Address]=Expression;AssignReg=Expression;deassignReg;TaskEnable(…);disableTaskOrBlock;EventName;if(Condition)elseif(Condition)elsecase(Selection)Choice1

Choice2,Choice3

default:

endcasefor(I=0;I<MAX;I=I+1)

repeat(8)

while(Condition)

forever設(shè)計(jì)實(shí)例(1)clk_5MHz:5MHz輸出信號(hào)moduleclk_gen(reset,clk50M,clk_5MHz,clk_4Hz);inputreset;

inputclk50M;

outputregclk_5MHz,clk_4Hz;

reg[20:0]count;reg[2:0]cnt;

always@(posedgeclk_5MHz)

if(!reset)

count<=0;else

begincount<=count+1;if(count==21′h98968)

begin count<=0; clk_4Hz<=~clk_4Hz; endendalways@(posedgeclk50M)

if(!reset)

cnt<=0;elsebegin cnt<=cnt+1; if(cnt==3′b101)

begin cnt<=0; clk_5MHz<=~clk_5MHz; endendendmodule設(shè)計(jì)實(shí)例(2)音頻產(chǎn)生器模塊moduletone_gen(reset,clk,code,freq_out);inputreset,clk;input[4:0]code;outputregfreq_out;reg[16:0]count,delay;reg[13:0]buffer[20:0];

initial//初始化音符計(jì)數(shù)終止值beginbuffer[0]=14′H2553;buffer[1]=14′H2141;buffer[2]=14′H1DA0;buffer[3]=14′H1BF7;buffer[4]=14′H18EA;buffer[5]=14′H1632;buffer[6]=14′H13C6;buffer[7]=14′H12AA;buffer[8]=14′H10A1;buffer[9]=14′HED0;buffer[10]=14′HDFB;buffer[11]=14′HC75;buffer[12]=14′HB19;buffer[13]=14′H9E3;buffer[14]=14′H955;buffer[15]=14′H850;buffer[16]=14′H768;buffer[17]=14′H6FE;buffer[18]=14′H63A;buffer[19]=14′H58C;buffer[20]=14′H4F1;end

設(shè)計(jì)實(shí)例(2)音頻產(chǎn)生器模塊always@(posedgeclk)

if(!reset)

count<=0;else

begincount<=count+1′b1;if(count==delay&&delay!=1)

begincount<=1′b0;freq_out<=~freq_out; endendelseif(delay==1)

freq_out<=0;end

always@(code)

if(code>=0&&code<=20)

delay=buffer[code];elsedelay=1;endmodule設(shè)計(jì)實(shí)例(3)樂曲控制模塊moduledemo_play(reset,clk_4hz,code_out);inputreset;

inputclk_4hz;

outputreg[4:0]code_out;reg[7:0]count;

reg[2:0]delay;

wire[7:0]play_data;wireread_flag;regover;always@(posedgeclk_4hz)

if(!reset)

begin count<=8′h00; delay<=3′b000; over<=0;end

else

if(~over)

begin delay<=delay-1′b1; if(delay==0)

begin if(play_data==255)

over<=1;delay<=play_data[7:5];

code_out<=play_data[4:0];

count<=count+1′b1;endend練習(xí)習(xí)題2.1簡(jiǎn)述VerilogHDL的歷史背景及其在硬件描述語言中的地位。2.2請(qǐng)舉例說明VerilogHDL如何用模塊化的方式描述一個(gè)簡(jiǎn)單的組合邏輯電路。2.3列舉VerilogHDL中的基本數(shù)據(jù)類型,并描述幾種常用運(yùn)算符的功能及其優(yōu)先級(jí)。2.4模塊的定義由哪些部分組成?每個(gè)部分在設(shè)計(jì)中起到什么作用?2.5簡(jiǎn)述VerilogHDL仿真文件的基本結(jié)構(gòu),并說明如何生成測(cè)試向量和分析仿真結(jié)果。2.6請(qǐng)描述如何用VerilogHDL實(shí)現(xiàn)一個(gè)4位二進(jìn)制計(jì)數(shù)器,并說明其工作原理。第三章

Vivado集成開發(fā)環(huán)境概述

3.1軟件介紹

3.2設(shè)計(jì)導(dǎo)論3.3設(shè)計(jì)套件目錄3.4調(diào)試過程Part1軟件介紹3.1軟件介紹Vivado

Vivado是由Xilinx公司推出的一款集成式設(shè)計(jì)環(huán)境(IDE),它主要用于FPGA設(shè)計(jì)和開發(fā)。這款工具整合了綜合、實(shí)現(xiàn)、布局布線等關(guān)鍵工具,為數(shù)字電路設(shè)計(jì)提供了全面的支持。在Vivado中,綜合器可以將高級(jí)語言描述的設(shè)計(jì)轉(zhuǎn)換為邏輯電路,而實(shí)現(xiàn)器則可以將邏輯電路映射到目標(biāo)FPGA,并進(jìn)行布局布線。Vivado的強(qiáng)大功能和易用性使其在FPGA設(shè)計(jì)領(lǐng)域備受歡迎,廣泛應(yīng)用于通信、嵌入式系統(tǒng)、數(shù)字信號(hào)處理等領(lǐng)域。它支持多種數(shù)據(jù)輸入方式,內(nèi)嵌綜合器以及仿真器,可以完成從新建工程、設(shè)計(jì)輸入、分析綜合、約束輸入到

設(shè)計(jì)實(shí)現(xiàn),最終生成bitstream下載到FPGA的全部開發(fā)流程。本書以Vivado2024.1版本為例。3.1.1軟件安裝軟件安裝步驟在xilinx官網(wǎng)搜索或點(diǎn)擊下方鏈接下載(),根據(jù)電腦系統(tǒng)下載Vivado2024.1版本安裝包。雙擊打開“FPGAsAdaptiveSoCsUnified2024.105222023Win64.exe”文件。后面按照安裝步驟提示完成軟件的安裝。3.1.1軟件安裝軟件安裝步驟此過程中需要輸入下載時(shí)的AMD的賬號(hào)和密碼,選擇自己需要的版本進(jìn)行安裝3.1.1軟件安裝軟件安裝步驟選擇對(duì)應(yīng)的工具,這里就選擇Vivado,然后點(diǎn)擊下一步3.1.1軟件安裝軟件安裝步驟根據(jù)個(gè)人的需要選擇對(duì)應(yīng)的FPGA的組件,這里選擇的器件越多,電腦所需要的內(nèi)存越多。3.1.1軟件安裝軟件安裝步驟全部都選擇同意,然后繼續(xù)點(diǎn)擊下一步3.1.1軟件安裝軟件安裝這里可以調(diào)整軟件的安裝目錄,安裝在合適的位置。切記不要安裝在系統(tǒng)盤,否則可能直接爆滿。3.1.1軟件安裝軟件破解軟件安裝完成后,停留在此窗口。單擊“LoadLicense”,即可加載破解文件。破解文件: /s/1GWGnLNiMOuwbpmWGgwylXw?pwd=bn8v

提取碼:bn8v加載完成之后會(huì)彈出successful的窗口,則表示破解成功。3.1.2用戶界面軟件的主界面Vivado2024.1軟件的主界面如左圖所示。主界面主要包含菜單欄、主工具欄、流程導(dǎo)航窗口、數(shù)據(jù)窗口區(qū)域、狀態(tài)欄和結(jié)果窗口等部分。從上到下依次為設(shè)置(Settings)、添加工程(Addsources)、語言模板(LanguageTemplates)、IP目錄(IPCatalog)、IP集成器(IPINTEGRATOR)、塊設(shè)計(jì)(CreateBlockDesign)、仿真(RunSimulation)、RTL分析、綜合(RunSynthesis、編程和調(diào)試(PROGRAMANDDEBUG)等。3.1.2用戶界面菜單常見操作該菜單主要是對(duì)項(xiàng)目的一些操作?!癋lownavigator”:提供對(duì)命令和工具的訪問,包含從設(shè)計(jì)輸入到生成比特流的整個(gè)過程?!癆ddSources”:添加源文件?!癛unSimulation”:開始仿真。“RunSynthes”:分析綜合?!癝ources窗口”:顯示層次結(jié)構(gòu)(Hierarchy)、IP源文件(IPSources)、庫(Libraries)和編譯順序(CompileOrder)的視圖。“Netlist窗口”:提供分析后的(elaborated)或綜合后的(synthesized)邏輯設(shè)計(jì)的分層視圖?!癙rojectSummary”:提供了當(dāng)前工程的摘要信息,它在運(yùn)行設(shè)計(jì)命令時(shí)動(dòng)態(tài)地更新。用于顯示和編輯基于文本的文件和報(bào)告的TextEditor。3.1.2用戶界面常用操作主工具

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論