XILINXFPGA設計中如何更好的優(yōu)化資源_第1頁
XILINXFPGA設計中如何更好的優(yōu)化資源_第2頁
XILINXFPGA設計中如何更好的優(yōu)化資源_第3頁
XILINXFPGA設計中如何更好的優(yōu)化資源_第4頁
XILINXFPGA設計中如何更好的優(yōu)化資源_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、XILINX FPGA 設計中如何更好的優(yōu)化資源在設計過程中我們只要注意一些要點,就可以節(jié)省下寶貴的芯片資源。下面以XILINXFPGA為例闡述在設計中如何節(jié)約資源。一從器件角度來理解如何節(jié)省資源FPGA是基于查找表技術的可編程邏輯器件,其內(nèi)部包含豐富的資源:CLB,BlockRam而有些器件還包含了 DSP48等資源。CLB是FPGA的基本邏輯單元,CLB模塊不僅可以用 于實現(xiàn)組合邏輯,時序邏輯,還可以配置為分布式RAM和分布式ROM。每個CLB由2個或4個相同的Slice和附加邏輯構成,CLB內(nèi)部結構如圖1所示。COUTCOUTCINCIN圖1 . CLB內(nèi)部結構每個Slice由2個LUT

2、,2個FF和進位鏈構成。圖 2即為6輸入LUT的內(nèi)部結構。圖2 . LUT6內(nèi)部結構1.利用Slice來優(yōu)化資源。巧妙利用Slice可以節(jié)約很多的資源,典型的例子就是移位寄存器。對比用代碼編寫的 32位移位寄存器和用原語調(diào)用的32位移位寄存器,就可以看出怎樣利用Slice節(jié)約資源。用代碼編寫的32位移位寄存器:always(posedge elk)beginQ = Q30:0,D;end用原語調(diào)用一個32位移位寄存器:SRL32#(NIT(32h00000)U_DIV_LATENCY_OIF02:0(.CLK(Gclk), .D(Oif_base_q),.Q(Oif_base_qO), .A0

3、(1b1), .A1(1b1), .A2(1b1), .A3(1b1) , .A4(1b1);綜合之后可以發(fā)現(xiàn),使用代碼會消耗32個FF,而使用原語只要一個 LUT6就可以完成。 用原語生成移位寄存器要比用代碼生成寄存器節(jié)約32個觸發(fā)器資源。當然我們也可以例化IP核,但是,使用原語會比例化 IP核是由.v和.ngc文件構成的。 在綜合和編譯的時候還是要調(diào)用IP核在complier時候更加節(jié)省時間。因為 Verilog語言的 .v只有一些接口信號,而實質(zhì)的內(nèi)容者存在于.ngc文件中,.ngc文件的,這樣就會浪費時間。2.利用BRAM來優(yōu)化資源RAM小于18K,我們可以使用BRAM是一個大頭,下面

4、來談一在設計中,選擇合適的 RAM可以節(jié)約很多資源。如果DRAM,因為BRAM最小的容量是18K。在資源優(yōu)化中, 談如何用BRAM來優(yōu)化資源。在ISE中用core generator來生成Block Ram 的時候,會發(fā)現(xiàn)里面有 single port (單口),simple dual port (準雙口), true dual port (雙口)這三個選項。這三種模式的比較見表1。表1 三種BRAM的比較功能功耗最小容量si ngle port最小最小18Ksimple dual port居中居中18Ktrue dual port最大最大36K我們可以根據(jù)需要來選擇BRAM,如果光從節(jié)約資源

5、角度來選用雙口 RAM的話,可以優(yōu)先考慮 simple dual port。此外,XILINX IP 核中的Build in FIFO 就是利用BRAM做成的,已經(jīng)將控制的邏輯資 源封裝進去了。因此我們能夠使用Build in FIFO時候,直接例化就可以了,無需再耗費額外的資源了。3.利用DSP48來優(yōu)化資源在V4,V5,V6和S3,S6系列的FPGA中都有DSP48,只是S系列和V系列的位寬不 一樣。DSP48可以通過一系列用戶指定的算術表達式來完成不同的計算,比如:乘法器, 乘加器,累加等等。如果算術運算調(diào)用DSP48的話,我們可以節(jié)約下很多的邏輯資源,并且運算速度也比較快。DSP48的

6、結構如圖3所示:ire 弒4乍1.-i-r25圖.3 DSP48的結構二 如何在編碼中節(jié)省資源1. 慎用reset復位信號reset復位信號,這樣往往會導致我們在編寫代碼的時候,總是會習慣于在時序電路中加上 資源無形的浪費。還是以移位寄存器為例,來說明這種情況。不加復位信號的移位寄存器always(posedge elk) beginQ = Q30:0,D;end加異步復位信號的移位寄存器 always(posedge clk or posedge rst) begin if ( rst)Q= 32 b0;elseQ = Q30:0,D;End加同步復位信號的移位寄存器 always(pose

7、dge clk ) begin if ( rst)Q= 32 b0;elseQ = Q30:0,D; end綜合后發(fā)現(xiàn),不加復位信號和加了異步復位信號的移位寄存器用了 32 個 DFF ,而加了 同步復位信號之后用了 32 個 DFF 和 32 個與門,資源明顯增加。移位寄存器這類的直通型電路, 其只是起到一個傳輸信號的作用, 本身不對信號產(chǎn)生影 響。其傳輸?shù)男盘栒_與否,在于其輸入端的信號是否正確。 因此,此類電路自身無需加復 位信號,而只需在其輸入端口加復位信號,以控制輸入數(shù)據(jù)。在寫代碼的時候,在上電復位, 直通型的電路中就不用加復位信號;而在功能復位,帶 反饋的電路中就需要加復位信號。

8、當然這不是絕對的, 在實際應用中還需要根據(jù)實際情況來 決定是否加復位信號。2. pipeline 流水線在代碼中, pipeline 也非常重要, 直接影響著資源利用的效率。 在這節(jié)中留給大家題目, 大家可以通過這道題目來理解 pipeline 在資源優(yōu)化中的意義。題目要求:請大家分析下面的代碼占用了多少資源,并且修改下面的代碼,在保留 rst 的前 提下使其只占用一個DSP48,且速度達到400M。module practice (clk, rst, a, b, c, p );inputclk;inputrst;input 24:0 a;input 17:0 b;input 42:0 c;output 42:0 p;reg42:0 m;re

溫馨提示

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

評論

0/150

提交評論