《《FPGA數(shù)字電路設(shè)計(jì)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《FPGA數(shù)字電路設(shè)計(jì)》PPT課件.ppt(55頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,FPGA 數(shù)字電路系統(tǒng)設(shè)計(jì),劉 怡 7158,FPGA的特點(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(Digit
2、al Signal Processor)哈佛結(jié)構(gòu)/改進(jìn)型的哈佛結(jié)構(gòu)程序/數(shù)據(jù)分別獨(dú)立存儲(chǔ)/訪問專門的流水線(時(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)可編程邏輯門陣列),FPGA,資源單元獨(dú)立!!!,大規(guī)模集成電路,電路系統(tǒng)已固定,
3、只能進(jìn)行程序開發(fā),大規(guī)??删幊踢壿嬈骷峁┵Y源,電路系統(tǒng)需要設(shè)計(jì)開發(fā),FPGA,CPU、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)的極致 SOC最大的特點(diǎn): 實(shí)現(xiàn)了軟硬件無(wú)縫結(jié)合,直接在處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。?? 體積和功耗小,可靠性高。 SOC往往是專
4、用的,所以大部分都不為用戶所知。,Altera公司專門有一個(gè)工具軟件---SOPC Builder,用于在其FPGA產(chǎn)品上實(shí)現(xiàn)SOC。 其處理器名為:NIOS/NIOS II Altera提供NIOS處理器的軟核版本,SOC & SOPC,系統(tǒng)的定義,為實(shí)現(xiàn)規(guī)定功能以達(dá)到某一目標(biāo)而構(gòu)成的相互關(guān)聯(lián)的一個(gè)集合體或裝置(部件),,Quartus II 界面,,SOPC Builder 界面,FPGA的SOC設(shè)計(jì),用寫程序代替接線進(jìn)行硬件設(shè)計(jì) 硬件編程本質(zhì)是在寫電路 FPGA是可編程數(shù)字器件 FPGA工程師是在進(jìn)行數(shù)字電路系統(tǒng)設(shè)計(jì),硬件編程是什么?,可編程模擬器件 (Programmable Anal
5、og Device) 是近年來(lái)嶄露頭角的一類新型集成電路。它既屬于模擬集成電路,又同可編程邏輯器件一樣,可由用戶通過(guò)現(xiàn)場(chǎng)編程和配置來(lái)改變其內(nèi)部連接和元件參數(shù)從而獲得所需要的電路功能。 通用型可編程模擬器件主要包括現(xiàn)場(chǎng)可編程模擬陣列(FPAA)和在系統(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)行控制(開關(guān)信號(hào)可視為1bit數(shù)據(jù)流)。 2、完成各種外設(shè)接口控制,即按滿足外設(shè)協(xié)議的時(shí)序進(jìn)行數(shù)
6、據(jù)流的控制。 *實(shí)時(shí)性要求不高的控制可用實(shí)時(shí)性不強(qiáng)的主處理器完成,如單片機(jī)等。對(duì)實(shí)時(shí)性要求特別高的控制用FPGA完成,如算法設(shè)計(jì)中數(shù)據(jù)讀寫。,控制模塊小結(jié),控制模塊小結(jié),要掌握的知識(shí): 1、系統(tǒng)概念:系統(tǒng)是如何運(yùn)作的?要完成如種功能?要控制什么數(shù)據(jù)流? 2、外設(shè)協(xié)議:各種外設(shè)的DataSheet,外設(shè)特性如何?接口時(shí)序怎樣? 3、明白如何控制數(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)行分
7、割: 將并行計(jì)算與順序計(jì)算進(jìn)行分割,利用FPGA并行特性進(jìn)行邏輯設(shè)計(jì),包括邏輯設(shè)計(jì)、代碼設(shè)計(jì)(開發(fā)環(huán)境或任意編輯器)、功能仿真(modelsim)及算法驗(yàn)證(matlab)算法算,算法模塊框架圖范例,算法模塊時(shí)序設(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行: 用
8、hs_timing根據(jù)各級(jí)通道buff進(jìn)行雙線性放大; 用hs_timing將各級(jí)通道放大后數(shù)據(jù)加權(quán)求和得到背景; 用hs_timing將RAM中的原圖與背景相減,得到前景; 用hs_timing對(duì)前景進(jìn)行銳化處理; 用hs_timing將銳化后圖像與原圖相加得到增強(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ù),使之成為隔行顯示程序(程序
9、4),比較程序4與程序1的差別,找出修正參數(shù)引起的鋸齒情況與圖像形變情況。 在Modelsim中仿真FPGA代碼(程序5),比較與程序4的仿真結(jié)果之差。這兩種都為隔行顯示算法。一致說(shuō)明在隔行顯示情況下FPGA代碼與程序4等價(jià)。 得出結(jié)論,F(xiàn)PGA算法移植是否等價(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)
10、行比較,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(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.Lo
11、gicLOCK,協(xié)同設(shè)計(jì),1.LogicLOCK,協(xié)同設(shè)計(jì),2.DesignPatition,協(xié)同設(shè)計(jì),2.DesignPartition,協(xié)同設(shè)計(jì),2.DesignPatition,Netlist Type有四個(gè)可選值Source File,Post-Synthesis,Post-fit,Empty Source File:如果源代碼未修改,則僅不重新Analysis,還需進(jìn)行Synthesis和Fitter; Post-Synthesis:如果源代碼未修改,不需重新Analysis、Synthesis,結(jié)果只進(jìn)行Fitter; Post-Fit:如果源代碼未修改,保留前次Analysis、
12、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í)間是否滿足要求等)作出分析判斷,提供分析報(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,
13、路徑延時(shí)為:T2,路徑延時(shí)為:T3,時(shí)鐘周期為:T_cycle,Ts (T_cycle T)T1,Th T1T, 令 T T3T2,則 條件1.如果T_setup 0 時(shí),T_hold受影響;當(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ì)
14、者提供最大便利條件,便于電路錯(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)通過(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)步!,謝 謝 !,