《《FPGA數(shù)字電路設(shè)計(jì)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《FPGA數(shù)字電路設(shè)計(jì)》PPT課件(55頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 劉劉 怡怡7158FPGA的特點(diǎn)SOC與硬件編程概念數(shù)字電路系統(tǒng)設(shè)計(jì)設(shè)計(jì)案例分析 (以ALTERA的FPGA為例)目 錄并行處理記住下面的數(shù):651841651214863287241822987512665123并行設(shè)計(jì)串行設(shè)計(jì)VS速度快 速度慢資源消耗多 資源消耗少設(shè)計(jì)難度大 設(shè)計(jì)難度小開發(fā)周期長(zhǎng) 開發(fā)周期短CPUDSPGPUFPGA處理器CPU(Central Processing Unit)馮諾依曼結(jié)構(gòu)或哈佛結(jié)構(gòu)多線程,操作系統(tǒng)調(diào)度的順序處理流水線設(shè)計(jì)(時(shí)間并行設(shè)計(jì))多核(空間并行設(shè)計(jì))處理器DSP(Digital Signal Processor)哈佛結(jié)構(gòu)/改進(jìn)型的哈佛結(jié)構(gòu)程序/數(shù)
2、據(jù)分別獨(dú)立存儲(chǔ)/訪問(wèn)專門的流水線(時(shí)間并行設(shè)計(jì))多核(空間并行設(shè)計(jì))處理器GPU(Graphic Processing Unit)最初用于3D圖像渲染CUDA技術(shù)使GPU架構(gòu)有了顯著改進(jìn)由GPU到General Purpose GPU獨(dú)立ALU(Arithmetic Logic Unit 算術(shù)邏輯單元)非常適合并行計(jì)算G80(Geforce8)有128個(gè)單獨(dú)ALU處理器Field Programmable Gate Array(現(xiàn)場(chǎng)可編程邏輯門陣列)FPGAsFPGAs系列系列邏輯單元邏輯單元ALM ALM(高性能自適應(yīng)邏輯模塊高性能自適應(yīng)邏輯模塊)Stratix V1,052,000397,
3、000Stratix IV813,050325,220Stratix III338,000135,200FPGA資源單元獨(dú)立!大規(guī)模集成電路,電路系統(tǒng)已固定,只能進(jìn)行程序開發(fā)大規(guī)模可編程邏輯器件,提供資源,電路系統(tǒng)需要設(shè)計(jì)開發(fā)FPGACPU、DSP、GPU特 點(diǎn)并行設(shè)計(jì)串行設(shè)計(jì)VS速度快 速度慢資源消耗多 資源消耗少設(shè)計(jì)難度大 設(shè)計(jì)難度小開發(fā)周期長(zhǎng) 開發(fā)周期短http:/zet.aluzina.org/index.php/Zet_processor Cyclone III 3C16!高自由度設(shè)計(jì)片上系統(tǒng)SOC SOC:System On Chip。SOC是當(dāng)前嵌入式系統(tǒng)的極致是當(dāng)前嵌入式系統(tǒng)的
4、極致 SOC最大的特點(diǎn)最大的特點(diǎn):實(shí)現(xiàn)了軟硬件無(wú)縫結(jié)合,直接在處理實(shí)現(xiàn)了軟硬件無(wú)縫結(jié)合,直接在處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。?體積和功耗小,可靠性高。體積和功耗小,可靠性高。SOC往往是專用的,所以大部分都往往是專用的,所以大部分都不為用戶所知。不為用戶所知。Altera公司專門有一個(gè)工具軟件公司專門有一個(gè)工具軟件-SOPC Builder,用于在其,用于在其FPGA產(chǎn)品上實(shí)現(xiàn)產(chǎn)品上實(shí)現(xiàn)SOC。其處理器名為:其處理器名為:NIOS/NIOS II Altera提供提供NIOS處理器的軟核版本處理器的軟核版本SOC&SOPC系統(tǒng)的定義 為實(shí)現(xiàn)規(guī)定功能以達(dá)到某一目
5、標(biāo)而構(gòu)成的相互關(guān)聯(lián)的一個(gè)集合體或裝置(部件)QuartuS II 界面SOPC BuIlder 界面FPGa的SOC設(shè)計(jì) 用寫程序代替接線進(jìn)行硬件設(shè)計(jì)用寫程序代替接線進(jìn)行硬件設(shè)計(jì) 硬件編程本質(zhì)是在寫電路硬件編程本質(zhì)是在寫電路 FPGA是可編程數(shù)字器件是可編程數(shù)字器件 FPGA工程師是在進(jìn)行數(shù)字電路工程師是在進(jìn)行數(shù)字電路系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 硬件編程是什么?可編程模擬器件可編程模擬器件(Programmable Analog Device)是近年來(lái)嶄露頭角的一類新型集成電路。它既是近年來(lái)嶄露頭角的一類新型集成電路。它既屬于模擬集成電路,又同可編程邏輯器件一樣,屬于模擬集成電路,又同可編程邏輯器件一樣
6、,可由用戶通過(guò)現(xiàn)場(chǎng)編程和配置來(lái)改變其內(nèi)部連可由用戶通過(guò)現(xiàn)場(chǎng)編程和配置來(lái)改變其內(nèi)部連接和元件參數(shù)從而獲得所需要的電路功能。接和元件參數(shù)從而獲得所需要的電路功能。通用型可編程模擬器件主要包括現(xiàn)場(chǎng)可編程模通用型可編程模擬器件主要包括現(xiàn)場(chǎng)可編程模擬陣列(擬陣列(FPAA)和在系統(tǒng)可編程模擬電路)和在系統(tǒng)可編程模擬電路(ispPAC)兩大類。)兩大類。多了解一點(diǎn)FPGa硬件設(shè)計(jì)流程數(shù)字邏輯電路系統(tǒng)設(shè)計(jì)設(shè)計(jì)流程系統(tǒng)功能設(shè)計(jì)兩個(gè)工作點(diǎn)1.系統(tǒng)需求分析2.功能模塊分解控制模塊設(shè)計(jì)要完成的工作:要完成的工作:并行控制并行控制1、完成各種信號(hào)的控制,即對(duì)數(shù)據(jù)流進(jìn)行控制完成各種信號(hào)的控制,即對(duì)數(shù)據(jù)流進(jìn)行控制(開關(guān)信
7、號(hào)可視為開關(guān)信號(hào)可視為1bit數(shù)據(jù)流數(shù)據(jù)流)。2、完成各種外設(shè)接口控制,即按滿足外設(shè)協(xié)議完成各種外設(shè)接口控制,即按滿足外設(shè)協(xié)議的時(shí)序進(jìn)行數(shù)據(jù)流的控制。的時(shí)序進(jìn)行數(shù)據(jù)流的控制。*實(shí)時(shí)性要求不高的控制可用實(shí)時(shí)性不強(qiáng)的主處實(shí)時(shí)性要求不高的控制可用實(shí)時(shí)性不強(qiáng)的主處理器完成,如單片機(jī)等。對(duì)實(shí)時(shí)性要求特別高的理器完成,如單片機(jī)等。對(duì)實(shí)時(shí)性要求特別高的控制用控制用FPGA完成,如算法設(shè)計(jì)中數(shù)據(jù)讀寫。完成,如算法設(shè)計(jì)中數(shù)據(jù)讀寫??刂颇K小結(jié)控制模塊小結(jié)要掌握的知識(shí):要掌握的知識(shí):1、系統(tǒng)概念:系統(tǒng)是如何運(yùn)作的?要完成如種功能?、系統(tǒng)概念:系統(tǒng)是如何運(yùn)作的?要完成如種功能?要控制什么數(shù)據(jù)流?要控制什么數(shù)據(jù)流?2
8、、外設(shè)協(xié)議:各種外設(shè)的、外設(shè)協(xié)議:各種外設(shè)的DataSheet,外設(shè)特性如,外設(shè)特性如何?接口時(shí)序怎樣?何?接口時(shí)序怎樣?3、明白如何控制數(shù)據(jù)流。、明白如何控制數(shù)據(jù)流。算法模塊設(shè)計(jì)完成數(shù)據(jù)流的變形,即數(shù)據(jù)流通過(guò)算子邏輯流出得到希望得到的結(jié)果算法模塊設(shè)計(jì)要掌握的知識(shí):要實(shí)現(xiàn)的算法功能:算法由哪些計(jì)算步驟組成?算法的特性:哪些是同時(shí)計(jì)算(并行)哪些是順序計(jì)算(串行)?定點(diǎn)或浮點(diǎn)的差別?將算法進(jìn)行分割:將并行計(jì)算與順序計(jì)算進(jìn)行分割,利用FPGa并行特性進(jìn)行邏輯設(shè)計(jì),包括邏輯設(shè)計(jì)、代碼設(shè)計(jì)(開發(fā)環(huán)境或任意編輯器)、功能仿真(mOdelSIm)及算法驗(yàn)證(matlaB)算法算算法模塊框架圖范例算法模塊時(shí)
9、序設(shè)計(jì)VS與HS為數(shù)字14位輸入時(shí)序。場(chǎng)20mS,行320Px256lIne,共占用時(shí)間不足10mS;HS_tImInG為自己生成用于做算法的時(shí)序。共555行,每行正程320P,消隱160P。2256行:用VS、HS將數(shù)字14位圖像緩存至ram中;用HS_tImInG從ram中讀出,進(jìn)行各級(jí)通道的高斯下采樣;將各級(jí)通道的下采樣結(jié)果緩存至各級(jí)通道BuFF;260516行:用HS_tImInG根據(jù)各級(jí)通道BuFF進(jìn)行雙線性放大;用HS_tImInG將各級(jí)通道放大后數(shù)據(jù)加權(quán)求和得到背景;用HS_tImInG將ram中的原圖與背景相減,得到前景;用HS_tImInG對(duì)前景進(jìn)行銳化處理;用HS_tImI
10、nG將銳化后圖像與原圖相加得到增強(qiáng)圖像;用HS_tImInG將增強(qiáng)圖像進(jìn)行高斯濾波,輸至lInkPOrt聯(lián)合仿真工具算法模塊仿真驗(yàn)證仿真驗(yàn)證方法:先將FPGa的.V程序改為m程序(程序2),比較經(jīng)典算法的m程序(程序1)與之的差別。這兩種程序都為逐行顯示算法。一致說(shuō)明在逐行顯示情況下程序2與程序1等價(jià)。在程序2上增加修正參數(shù),使之成為隔行顯示程序(程序4),比較程序4與程序1的差別,找出修正參數(shù)引起的鋸齒情況與圖像形變情況。在mOdelSIm中仿真FPGa代碼(程序5),比較與程序4的仿真結(jié)果之差。這兩種都為隔行顯示算法。一致說(shuō)明在隔行顯示情況下FPGa代碼與程序4等價(jià)。得出結(jié)論,F(xiàn)PGa算法
11、移植是否等價(jià)于隔行消旋算法。算法模塊仿真驗(yàn)證程序1的旋轉(zhuǎn)45度仿真結(jié)果程序4旋轉(zhuǎn)45度的仿真結(jié)果算法模塊仿真驗(yàn)證程序5的旋轉(zhuǎn)45度逐行仿真結(jié)果程序5的旋轉(zhuǎn)45度隔行仿真結(jié)果結(jié)論:十字線圖片進(jìn)行比較,mOdelSIm仿真結(jié)果與matlaB仿真結(jié)果一致,F(xiàn)PGa算法設(shè)計(jì)驗(yàn)證結(jié)果:正確。算法模塊仿真驗(yàn)證結(jié)論:十字線圖片進(jìn)行比較,mOdelSIm仿真結(jié)果與matlaB仿真結(jié)果一致,F(xiàn)PGa算法設(shè)計(jì)驗(yàn)證結(jié)果:正確。程序1 matlaB處理結(jié)果程序5 mOdelSIm處理結(jié)果算法模塊仿真驗(yàn)證程序1運(yùn)行結(jié)果像素灰度分析,左上角點(diǎn)為坐標(biāo)G(360,144)的灰度 程序5運(yùn)行結(jié)果像素灰度分析,左上角點(diǎn)為坐標(biāo)G(
12、360,144)的灰度 算法模塊仿真驗(yàn)證程序1與程序5的灰度差值誤差直方圖結(jié)論:不考慮邊界處理的情況下,F(xiàn)PGa定點(diǎn)算法設(shè)計(jì)實(shí)現(xiàn)結(jié)果與浮點(diǎn)計(jì)算值相比較不到2%的值灰度值誤差在2個(gè)灰度級(jí)以外(2/256=0.78%)協(xié)同設(shè)計(jì)1.lOGIClOCk協(xié)同設(shè)計(jì)1.lOGIClOCk協(xié)同設(shè)計(jì)1.lOGIClOCk協(xié)同設(shè)計(jì)2.deSIGnPatItIOn協(xié)同設(shè)計(jì)2.deSIGnPartItIOn協(xié)同設(shè)計(jì)2.deSIGnPatItIOnnetlISt tyPe有四個(gè)可選值SOurCe FIle,POSt-SyntHeSIS,POSt-FIt,emPtySOurCe FIle:如果源代碼未修改,則僅不重新an
13、alySIS,還需進(jìn)行SyntHeSIS和FItter;POSt-SyntHeSIS:如果源代碼未修改,不需重新analySIS、SyntHeSIS,結(jié)果只進(jìn)行FItter;POSt-FIt:如果源代碼未修改,保留前次analySIS、SyntHeSIS、FItter結(jié)果;emPty:標(biāo)志為空分區(qū),編譯時(shí)將忽略此分區(qū)。時(shí)序分析目的為了增加可編程邏輯器件電路工作的穩(wěn)定性,一定要加強(qiáng)可編程邏輯器件設(shè)計(jì)的規(guī)范要求,要盡量采用同步電路設(shè)計(jì)。對(duì)于設(shè)計(jì)中的異步電路,要給出不能轉(zhuǎn)換為同步設(shè)計(jì)的原因,并對(duì)該部分異步電路的工作可靠性(如時(shí)鐘等信號(hào)上是否有毛刺,建立-保持時(shí)間是否滿足要求等)作出分析判斷,提供分析
14、報(bào)告。電路設(shè)計(jì)的難點(diǎn)在時(shí)序設(shè)計(jì),而時(shí)序設(shè)計(jì)的實(shí)質(zhì)就是滿足每一個(gè)觸發(fā)器的建立/保持時(shí)間的要求。時(shí)序分析基礎(chǔ)時(shí)序分析基礎(chǔ)對(duì)reG2而言:觸發(fā)器的建立時(shí)間要求為:t_SetuP,保持時(shí)間要求為:t_HOld,路徑延時(shí)為:t1,路徑延時(shí)為:t2,路徑延時(shí)為:t3,時(shí)鐘周期為:t_CyCle,tS(t_CyCle t)t1,tH t1t,令 t t3t2,則條件1.如果t_SetuP tS,即 t_SetuP (t_CyCle t)t1,這說(shuō)明信號(hào)比時(shí)鐘有效沿超過(guò)t_SetuP 時(shí)間到達(dá)reG2的d端,滿足建立時(shí)間要求。反之則不滿足;條件2.如果t_HOld tH,即t_HOld 0 時(shí),t_HOld受
15、影響;當(dāng)t 0 時(shí),t_SetuP 受影響。同步設(shè)計(jì)優(yōu)點(diǎn)1.同步電路比較容易使用寄存器的異步復(fù)位/置位端,以使整個(gè)電路有一個(gè)確定的初始狀態(tài);2.在可編程邏輯器件中,使用同步電路可以避免器件受溫度,電壓,工藝的影響,易于消除電路的毛刺,使設(shè)計(jì)更可靠,單板更穩(wěn)定;3.同步電路可以很容易地組織流水線,提高芯片的運(yùn)行速度,設(shè)計(jì)容易實(shí)現(xiàn);4.同步電路可以很好地利用先進(jìn)的設(shè)計(jì)工具,如靜態(tài)時(shí)序分析工具等,為設(shè)計(jì)者提供最大便利條件,便于電路錯(cuò)誤分析,加快設(shè)計(jì)進(jìn)度。同步設(shè)計(jì)原則1.盡可能在整個(gè)設(shè)計(jì)中只使用一個(gè)主時(shí)鐘,同時(shí)只使用同一個(gè)時(shí)鐘沿,主時(shí)鐘走全局時(shí)鐘網(wǎng)絡(luò)。2.在FPGa設(shè)計(jì)中,推薦所有輸入、輸出信號(hào)均應(yīng)通
16、過(guò)寄存器寄存,寄存器接口當(dāng)作異步接口考慮。3.當(dāng)全部電路不能用同步電路思想設(shè)計(jì)時(shí),即需要多個(gè)時(shí)鐘來(lái)實(shí)現(xiàn),則可以將全部電路分成若干局部同步電路(盡量以同一個(gè)時(shí)鐘為一個(gè)模塊),局部同步電路之間接口當(dāng)作異步接口考慮。4.當(dāng)必須采用多個(gè)時(shí)鐘設(shè)計(jì)時(shí),每個(gè)時(shí)鐘信號(hào)的時(shí)鐘偏差(t)要嚴(yán)格控制。5.電路的實(shí)際最高工作頻率不應(yīng)大于理論最高工作頻率,留有設(shè)計(jì)余量,保證芯片可靠工作。時(shí)序約束tImeQueSt時(shí)序分析工具時(shí)序約束tImeQueSt時(shí)序分析工具時(shí)序約束tImeQueSt時(shí)序分析工具時(shí)序約束tImeQueSt時(shí)序分析工具實(shí)物調(diào)試分析SIGnaltaP II lOGIC analyzer希望能和大家希望能和大家一起交流一起進(jìn)步!一起交流一起進(jìn)步!謝謝 謝謝!