新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > FPGA設(shè)計開發(fā)軟件ISE使用技巧之:增量式設(shè)計(Incremental Design)技巧

FPGA設(shè)計開發(fā)軟件ISE使用技巧之:增量式設(shè)計(Incremental Design)技巧

作者: 時間:2015-02-02 來源:網(wǎng)絡(luò) 收藏

  6.6 增量式設(shè)計(Incremental Design)技巧

本文引用地址:http://2s4d.com/article/269337.htm

  本節(jié)將對下增量式設(shè)計做一個全面的介紹。作為一種現(xiàn)場可編程邏輯器件,其現(xiàn)場可重編程特性能夠提高調(diào)試速度。每次硬件工程師可以很方便地改變設(shè)計,重新進行綜合、實現(xiàn)、布局布線,并對整個設(shè)計重新編程。

  然而當設(shè)計算法比較復(fù)雜時,每一次綜合、實現(xiàn)、布局布線需要花很長的時間。即使僅僅改變設(shè)計中的一點,也會使綜合編譯的時間成倍增加。而且更為麻煩的是如果整個工程的運行頻率很高,對時序的要求也很嚴格,這樣重新布線往往會造成整個時序錯亂。

  運用增量式設(shè)計可以有效地解決這一問題。一方面大大節(jié)約綜合、布局布線的耗時,另一方面可以繼承前一設(shè)計中已有的成果,是一種比較常用的設(shè)計流程。

  6.6.1 增量式設(shè)計的必要性

  增量式設(shè)計(Incremental Design)方法是一種能在小范圍改動情況下節(jié)約綜合、實現(xiàn)時間并繼承以往設(shè)計成果的設(shè)計手段。作為一個流程,增量設(shè)計能夠極大地減小布局布線時間,并且當對一個近似完整的設(shè)計作小的變動,可以保持整個系統(tǒng)的性能。

  在增量設(shè)計中每一個邏輯分組在Xilinx的里受到約束以使之只占有自己的空間。在設(shè)計中,對當對其中之一的邏輯分組做改動時,一個增量設(shè)計流程可以確保未做改動的邏輯分組在進行綜合輸出時不變化。接著布線工具對改動了的邏輯分組重新進行布局布線,而未改動的邏輯分組則繼續(xù)以前的布局布線結(jié)果,這使得整個設(shè)計的布局布線時間得以削減。

  增量式設(shè)計對一處復(fù)雜的設(shè)計來說是非常必要的,主要是因為增量式設(shè)計有以下兩個方面的優(yōu)點。

  1.減小綜合、布局布線的耗時

  當僅對大型設(shè)計工程的局部進行改動時,增量設(shè)計流程僅僅改動的部分重新編譯,如果改動模塊的接口設(shè)計恰當,將不會影響其余部分的綜合與實現(xiàn)結(jié)果,布局布線時也只對改動部分重新布線,未改動的部分保持不變,從而節(jié)約了整個編譯、布局布線與優(yōu)化的耗時。

  2.能夠很好地繼承未修改區(qū)域的實現(xiàn)成果

  這一點對于對時序要求很嚴格的設(shè)計來說是很有用的。如果一個設(shè)計經(jīng)過多次調(diào)試,附加合適的約束,設(shè)置恰當?shù)膮?shù)達到了最佳實現(xiàn)成果。但是因為對某個細節(jié)進行了修改,就需要全部重新綜合、布局布線,這樣可能前面所做的精心調(diào)整工作都無效了。

  通過增量式設(shè)計,可以解決這一問題。對于已達到設(shè)計要求的部分將其保持不變,僅對修改的部分重新編譯、布局布線,從而保證在最大程度上繼承以往的實現(xiàn)結(jié)果。

  6.6.2 增量設(shè)計流程

  具體的增量設(shè)計流程如圖6.29所示。

  

 

  增量設(shè)計的流程可歸納如下。

  1.創(chuàng)建邏輯分組(Create Logic Group)

  在增量設(shè)計中為了實現(xiàn)減小綜合、布局布線耗時,極大程度地繼承未修改區(qū)域的成果,必須要求將設(shè)計分成多個邏輯分組。每個邏輯分組應(yīng)該分配一定的邏輯區(qū)域,當某一邏輯分組的內(nèi)容發(fā)生改變時,增量設(shè)計可以在該邏輯分組分配的邏輯區(qū)域內(nèi)對其進行重新綜合和布局布線,而不會影響到其他的邏輯分組。

  所謂“邏輯分組”,是惟一的邏輯層次中的若干邏輯實體的劃分。比如在頂層邏輯層次中每個子模塊即為一個邏輯分組。在代碼中即為頂層中“module(Verilog)”和“entity(VHDL)”定義的子模塊的實體。在一個設(shè)計中往往將實現(xiàn)的不同功能設(shè)置為不同的模塊,然后在一個頂層模塊中實例化所有這些不同功能的模塊,從而實現(xiàn)一個完整的功能,那么這些不同功能的模塊就可以看作是不同的邏輯分組。

  在進行邏輯分組時,需要考慮以下因素。

  (1)設(shè)計中所有邏輯除了IOB和時鐘邏輯,都應(yīng)該包含在邏輯分組當中。

  (2)頂層模塊不應(yīng)該包含復(fù)雜邏輯,僅僅包含一些I/O定義、時鐘分配邏輯和所有子模塊的實例化,直正的功能實體用子模塊的邏輯描述。增量設(shè)計方法希望將所有的邏輯實體分割到子模塊中去,而頂層模塊不含任何實際的邏輯功能,以便于做相應(yīng)的區(qū)域約束。

  頂層包含實際邏輯功能的缺點在于:當頂層改變時,相關(guān)的Logic Group的接口將發(fā)生變化,從而影響Logic Group的結(jié)構(gòu),在做編譯和布局布線時,會影響增量設(shè)計的效能。

  (3)邏輯模塊分組必須以寄存器輸出,即用寄存器分割模塊。這一點其實不僅僅是增量設(shè)計的需求,也是合理劃分模塊的一個基本要求。

  如果采用同步時序方式設(shè)計電路,用寄存器分割邏輯模塊,模塊間的接口盡量簡單,則時序優(yōu)化路徑集中在同一模塊內(nèi)部而不是模塊之間的邊界上。這樣能夠使綜合器完整地掌握需要時序優(yōu)化的路徑,從而避免了因一個模塊內(nèi)部改變而通過邊界影響到其他模塊的時序這種不利于增量設(shè)計的情況發(fā)生。

  (4)每個邏輯分組為其附加區(qū)域分組約束。

  2.增量綜合(Incremental Synthesis)

  所謂增量綜合是指只有改變的部分重新綜合,而對未改變部分保持原有的綜合結(jié)果的一種綜合技術(shù)。傳統(tǒng)的綜合技術(shù)即使有微小的改動,也會對整個設(shè)計重新綜合。

  如果要實現(xiàn)增量綜合必須對綜合工具做相應(yīng)的設(shè)置。在這里主要講述自帶綜合工具XST是如何實現(xiàn)增量綜合的,對于其他綜合工具如:Synplify/Synplify Pro和Leonardo Spectrum綜合工具,在這里不做詳細介紹。

  XST支持單一工程的模塊級增量綜合(BLSI)。實現(xiàn)的方法為在XST的約束文件(擴展名為xcf)中附加邏輯分組約束,從而告知XST Logic Group的邊界。

  XST在綜合時,所有的編譯與優(yōu)化都不超越用戶在XCF文件中約定的Logic Group的邊界,以達到在細微修改后僅僅對Logic Group內(nèi)部進行重新綜合的目的。這樣一個邏輯分組HDL源代碼的改變就不會對其他邏輯分組造成影響。

fpga相關(guān)文章:fpga是什么



上一頁 1 2 下一頁

關(guān)鍵詞: FPGA ISE

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉