機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
FPGA器件的設(shè)計(jì)實(shí)現(xiàn)、設(shè)計(jì)優(yōu)化與模塊化設(shè)計(jì)方法
FPGA器件的設(shè)計(jì)實(shí)現(xiàn)、設(shè)計(jì)優(yōu)化與模塊化設(shè)計(jì)方法
 更新時(shí)間:2008-8-3 15:48:32  點(diǎn)擊數(shù):9
【字體: 字體顏色


    綜合與可綜合的HDL設(shè)計(jì)

綜合的定義


綜合就是針對(duì)給定的電路實(shí)現(xiàn)功能和實(shí)現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過(guò)計(jì)算機(jī)進(jìn)行優(yōu)化處理,獲得一個(gè)能滿足上述要求的電路設(shè)計(jì)方案。
被綜合的文件是HDL文件(或相應(yīng)文件等),綜合的依據(jù)是邏輯設(shè)計(jì)的描述和各種約束條件,綜合的結(jié)果則是一個(gè)硬件電路的實(shí)現(xiàn)。該方案必須同時(shí)滿足預(yù)期的功能和約束條件。對(duì)于綜合來(lái)講,滿足要求的方案可能有多個(gè),綜合器將產(chǎn)生一個(gè)最優(yōu)的或接近最優(yōu)的結(jié)果。因此,綜合的過(guò)程也就是設(shè)計(jì)目標(biāo)的優(yōu)化過(guò)程,最后獲得的結(jié)構(gòu)與綜合器的工作性能有關(guān)。


FPGA/CPLD綜合軟件


FPGA/CPLD綜合軟件包括:Synopsys公司的FPGA Compiler II、Synplicity公司的Synplify/Synplify Pro、Mentor公司的LeonardoSpectrum及FPGA/CPLD廠商集成開(kāi)發(fā)環(huán)境中自帶的綜合工具,如Altera Quartus II軟件中的綜合軟件等。


綜合的特點(diǎn)


綜合的特點(diǎn)體現(xiàn)在以下幾個(gè)方面:綜合是在一定的限制條件下進(jìn)行的,比如時(shí)序、面積或物理約束等;綜合器獨(dú)立于具體設(shè)計(jì)工藝,如果工藝改變,可使用新工藝元件庫(kù)重新綜合;綜合器很難得到硬件設(shè)計(jì)的所有實(shí)現(xiàn)方案,不可能得到最優(yōu)的硬件結(jié)果;不同的綜合器使用不同的機(jī)制和算法,因此對(duì)相同的HDL描述可能得到不同的結(jié)果;不同的綜合器對(duì)HDL語(yǔ)句和語(yǔ)法的支持不同,需要通過(guò)察看綜合軟件的相關(guān)文檔進(jìn)行了解。
可綜合的數(shù)據(jù)類型包括枚舉類型、整數(shù)類型、數(shù)組類型(一維數(shù)組、二維數(shù)組)及記錄類型。綜合器不支持的數(shù)據(jù)類型包括:物理類型,如時(shí)間類型;浮點(diǎn)類型,如實(shí)數(shù)類型;存取類型及文件類型等。


面向綜合的編碼風(fēng)格


設(shè)計(jì)描述的編碼風(fēng)格將直接影響EDA軟件工具的綜合結(jié)果。好的描述方式易于被綜合器識(shí)別且能夠被綜合出設(shè)計(jì)者所期望的電路。電路的質(zhì)量取決于設(shè)計(jì)者使用的描述風(fēng)格和綜合工具的能力。

形成良好的編碼風(fēng)格應(yīng)注意以下幾個(gè)方面:


對(duì)希望形成組合邏輯的if和case語(yǔ)句,要完整地描述其各個(gè)分支,避免形成鎖存器(可行的方法之一是給所有被賦值信號(hào)賦初始值);

盡量使用簡(jiǎn)單的邏輯及數(shù)字運(yùn)算符;

進(jìn)程的敏感清單應(yīng)列舉完全,否則可能產(chǎn)生綜合前后仿真結(jié)果不同的現(xiàn)象;

在循環(huán)中不要放置不隨循環(huán)變化的表達(dá)式;

對(duì) 于復(fù)雜的數(shù)字運(yùn)算要充分進(jìn)行資源共享,如采用if塊等;

對(duì)于長(zhǎng)的組合鏈路應(yīng)該在代碼編寫(xiě)階段注意描述成樹(shù)狀結(jié)構(gòu);

時(shí)序邏輯盡可能采用同步設(shè)計(jì);

對(duì)具有不同的時(shí)序或面積限制的設(shè)計(jì),應(yīng)盡可能采用不同的代碼描述以達(dá)到不同的要求(一般而言,面積與延時(shí)是相互沖突的,在FPGA 中面積代表資源的多少);
對(duì)于復(fù)雜系統(tǒng)設(shè)計(jì),應(yīng)盡量采用已有的算法和模塊來(lái)實(shí)現(xiàn)。



設(shè)計(jì)實(shí)現(xiàn)


設(shè)計(jì)實(shí)現(xiàn)即利用實(shí)現(xiàn)工具把邏輯映射到目標(biāo)器件結(jié)構(gòu)的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進(jìn)行連線,并產(chǎn)生相應(yīng)文件(如,配置文件與相關(guān)報(bào)告)的過(guò)程。通?煞譃槿缦挛鍌(gè)步驟:


1)轉(zhuǎn)換:將多個(gè)設(shè)計(jì)文件進(jìn)行轉(zhuǎn)換并合并到一個(gè)設(shè)計(jì)庫(kù)文件中。

2)映射:將網(wǎng)表中的邏輯門(mén)映射成物理單元或元素,即把邏輯設(shè)計(jì)分割到構(gòu)成可編程邏輯陣列內(nèi)的可配置邏輯塊與輸入輸出塊及其他資源中的過(guò)程。

3)布局布線:布局是指從映射中取出定義的邏輯和輸入輸出塊,并把它們分配到 FPGA 內(nèi)部的物理位置。通;谀撤N先進(jìn)的算法,如最小分割、模擬退火和一般的受力方向張弛等來(lái)完成;布線是指利用自動(dòng)布線軟件使用布線資源選擇路徑,試著完成所有的邏輯連接。在布局布線過(guò)程中,可同時(shí)提取時(shí)序信息形成時(shí)序分析報(bào)告。

4)時(shí)序提取:產(chǎn)生反標(biāo)文件,供后續(xù)的時(shí)序仿真使用。

5)配置:產(chǎn)生FPGA配置時(shí)所需的位流文件。



增量設(shè)計(jì)


傳統(tǒng)方法vs增量設(shè)計(jì)


傳統(tǒng)的FPGA設(shè)計(jì)過(guò)程中,每次修改都將導(dǎo)致整個(gè)設(shè)計(jì)的重新編譯,如此,時(shí)序也將產(chǎn)生變化,針對(duì)這一現(xiàn)象,引入了增量設(shè)計(jì)的概念。

增 量設(shè)計(jì)主要是指增量編譯:根據(jù)設(shè)計(jì)者的分割設(shè)置,對(duì)不同的層次和模塊分別編譯。在對(duì)設(shè)計(jì)進(jìn)行重新編譯時(shí),可以保持未修改部分的編譯結(jié)果,從而節(jié)省編譯時(shí)間。
增量設(shè)計(jì)可將設(shè)計(jì)中無(wú)需修改的部分鎖定并保持其性能,僅對(duì)設(shè)計(jì)中變化的部分重新處理。使用增量設(shè)計(jì),設(shè)計(jì)人員可在驗(yàn)證過(guò)程中加速設(shè)計(jì)變化的調(diào)試,將更多時(shí)間用于調(diào)整設(shè)計(jì)中的關(guān)鍵元件,甚至在后期設(shè)計(jì)規(guī)范發(fā)生改變時(shí),也不會(huì)影響整個(gè)設(shè)計(jì)的主要進(jìn)度。

對(duì)于設(shè)計(jì)中未改變的部分,由于它們布局布線都保持不變,性能也不會(huì)變化,因此無(wú)需進(jìn)行重新驗(yàn)證,從而可以節(jié)省大量的設(shè)計(jì)時(shí)間。增量設(shè)計(jì)有助于模塊化設(shè)計(jì)和基于團(tuán)隊(duì)的設(shè)計(jì)流程。

圖1 傳統(tǒng)方法vs增量設(shè)計(jì)(略)


設(shè)計(jì)分割


設(shè)計(jì)分割指用戶定義的邏輯分割,它與物理區(qū)域不同。邏輯分割應(yīng)與設(shè)計(jì)的層次邊界相符合,其中,每個(gè)設(shè)計(jì)實(shí)體并不自動(dòng)成為一個(gè)分割。設(shè)計(jì)分割具有不同的設(shè)計(jì)文件,如果使用第三方綜合軟件,要為每個(gè)分割生成各自的EDIF或VQM文件。最優(yōu)化過(guò)程不能跨越分割的邊界,每個(gè)分割部分獨(dú)立的進(jìn)行綜合和適配。


圖2給出了設(shè)計(jì)分割示意,頂層劃為一個(gè)分割,其他層次結(jié)構(gòu)的子模塊根據(jù)具體情況進(jìn)行分割。不一定每個(gè)設(shè)計(jì)實(shí)體即為一個(gè)分割,也可以是幾個(gè)設(shè)計(jì)模塊的組合。

圖2 設(shè)計(jì)分割(略)

對(duì)于不同的設(shè)計(jì)流程,Altera提供了不同的軟件支持。自頂向下(Top-Down)的設(shè)計(jì)流程,整個(gè)設(shè)計(jì)在頂層編譯,可由一個(gè)設(shè)計(jì)者或項(xiàng)目管理者完成編譯設(shè)計(jì),Altera Quartus II 5.0 和5.1中完全支持。自底向上(Bottom-Up)的設(shè)計(jì)流程,整個(gè)設(shè)計(jì)是在底層編譯,在各個(gè)設(shè)計(jì)者分別優(yōu)化后進(jìn)行集成。目前Altera Quartus II 5.0和5.1中尚無(wú)導(dǎo)入和導(dǎo)出功能,因此并不支持自底向上(Bottom-Up)的設(shè)計(jì)流程,而借助LogicLock可實(shí)現(xiàn)該設(shè)計(jì)流程。


圖3 增量編譯流程(略)

增量編譯流程


增量編譯流程如圖3所示,首先,準(zhǔn)備利用增量編譯的項(xiàng)目。包括:詳細(xì)的設(shè)計(jì)分析,識(shí)別設(shè)計(jì)的層次;生成設(shè)計(jì)分割;使能“完全增量編譯”或者“只進(jìn)行增量綜合”;用LogicLock生成設(shè)計(jì)版圖等。

  • 上一篇: 快速創(chuàng)建存儲(chǔ)器接口的設(shè)計(jì)
  • 下一篇: 基于Motorola單片機(jī)的機(jī)器人追跑控制系統(tǒng)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1