<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/269337.htm

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

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

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

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

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

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

            增量式設(shè)計(jì)對(duì)一處復(fù)雜的設(shè)計(jì)來(lái)說(shuō)是非常必要的,主要是因?yàn)樵隽渴皆O(shè)計(jì)有以下兩個(gè)方面的優(yōu)點(diǎn)。

            1.減小綜合、布局布線的耗時(shí)

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

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

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

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

            6.6.2 增量設(shè)計(jì)流程

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

            

           

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

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

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

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

            在進(jìn)行邏輯分組時(shí),需要考慮以下因素。

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

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

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

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

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

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

            2.增量綜合(Incremental Synthesis)

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

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

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

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

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



          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: FPGA ISE

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();