增量設(shè)計(jì)流程針對(duì)需要變更部分進(jìn)行優(yōu)化
將綜合工具的功能和集成設(shè)計(jì)環(huán)境 (IDE) 結(jié)合在一起,提供高效的增量設(shè)計(jì)方法,管理工程設(shè)計(jì)變更通知 (ECO) 需求,使設(shè)計(jì)人員能對(duì)原設(shè)計(jì)作模塊級(jí)變更,即只更改那些需要變更的部分。這種設(shè)計(jì)流程大大減少了變更對(duì)那些原已成熟的設(shè)計(jì)部分的影響,因此能夠節(jié)省時(shí)間和資源。
FPGA設(shè)計(jì)人員總是希望設(shè)計(jì)“一次便成功”,但由于復(fù)雜的大型系統(tǒng)中涉及各種復(fù)雜功能、性能要求,以及數(shù)量龐大的系統(tǒng)門,因此,不管他們花費(fèi)多少時(shí)間和精力,通常都需要更改設(shè)計(jì)、糾正一些邏輯問題或做進(jìn)一步的優(yōu)化。與傳統(tǒng)的設(shè)計(jì)流程相比,面向設(shè)計(jì)/綜合及布局布線物理實(shí)現(xiàn)而開發(fā)的增量設(shè)計(jì)流程,卻非常適合于修改或優(yōu)化設(shè)計(jì)中的特定部分,而且不會(huì)影響已經(jīng)達(dá)到設(shè)計(jì)要求的其它部分。如果因?yàn)橄到y(tǒng)內(nèi)存受限或涉及大強(qiáng)度運(yùn)行時(shí)間而難于采用自上而下的嚴(yán)密方法時(shí),設(shè)計(jì)人員還可采用增量設(shè)計(jì)流程完成大型設(shè)計(jì)。在增量設(shè)計(jì)流程中還采用了其它一些設(shè)計(jì)策略,以便在繼續(xù)獨(dú)立地開發(fā)設(shè)計(jì)某些部分的同時(shí),凍結(jié)該設(shè)計(jì)的另一些部分。
傳統(tǒng)設(shè)計(jì)的創(chuàng)建和物理實(shí)現(xiàn)
一般的FPGA開發(fā)流程有如下幾個(gè)步驟:用HDL語(yǔ)言創(chuàng)建設(shè)計(jì);運(yùn)行綜合前仿真;設(shè)置約束;綜合設(shè)計(jì);運(yùn)行綜合后仿真 ;進(jìn)行布局布線 ;分析設(shè)計(jì)的時(shí)序性能。
若能滿足功能和時(shí)序性能的要求,則可生成編程文件并對(duì)器件進(jìn)行編程。Libero IDE (集成設(shè)計(jì)環(huán)境) 白金版工具配有Actel及其合作伙伴提供的一流開發(fā)工具,可成功地管理“一次性成功”的設(shè)計(jì)。為了改善性能,Actel 的SmartTime時(shí)序分析和約束管理工具提供了識(shí)別和解析設(shè)計(jì)中關(guān)鍵路徑的功能。此外,Magma PALACE物理綜合工具一般都能大幅提升Actel的Fusion可編程系統(tǒng)芯片 (PSoC) 和ProASIC3器件的整體性能。
但若在初始布局完成后還需要進(jìn)一步優(yōu)化設(shè)計(jì)的某些部分,那該怎么辦?若性能還不穩(wěn)定,或有些構(gòu)件還存在功能問題,又該怎么辦?
增量設(shè)計(jì)流程的概念和優(yōu)勢(shì)
增量設(shè)計(jì)流程 (見圖1) 與傳統(tǒng)的綜合/物理實(shí)現(xiàn)流程非常相似。不過,該流程在初始綜合項(xiàng)目設(shè)置和編譯之后增加了一些“編譯點(diǎn)”。這些編譯點(diǎn)是設(shè)計(jì)的一部分,但作為相對(duì)獨(dú)立的綜合單元存在;它們有自己的約束文件,進(jìn)行單獨(dú)優(yōu)化 ;而且只在必要時(shí)才需根據(jù)設(shè)計(jì)關(guān)聯(lián)分析和設(shè)計(jì)變更性質(zhì)進(jìn)行重新綜合。為確保增量設(shè)計(jì)的穩(wěn)定性以及實(shí)現(xiàn)具有多個(gè)輸出網(wǎng)表的層次化的布局布線 (每個(gè)編譯點(diǎn)有一個(gè)輸出網(wǎng)表,每個(gè)設(shè)計(jì)的頂層有一個(gè)網(wǎng)表),這些編譯點(diǎn)會(huì)被鎖定。“鎖定”編譯點(diǎn)是指在綜合該編譯點(diǎn)的上一層時(shí),不對(duì)該點(diǎn)進(jìn)行重新優(yōu)化,其層次接口保持不變,且不對(duì)其邊界進(jìn)行優(yōu)化。這意味著同一個(gè)被鎖定的編譯點(diǎn)的所有實(shí)例都采用相同的物理實(shí)現(xiàn),在綜合中均同等對(duì)待。
另外,設(shè)計(jì)組可同時(shí)在各個(gè)編譯點(diǎn)獨(dú)立展開工作,每個(gè)編譯點(diǎn)均視為可進(jìn)行增量修改和個(gè)別映射的單獨(dú)構(gòu)件,設(shè)計(jì)中可識(shí)別和嵌套任意數(shù)目的編譯點(diǎn)。采用編譯點(diǎn)后,就可管理設(shè)計(jì)變更,且不影響其它設(shè)計(jì)部分。
增量設(shè)計(jì)流程中采用一種“基于差異”的增量綜合方法,跟蹤設(shè)計(jì)的變化和關(guān)聯(lián)。這樣,只有那些直接受增量變更影響的設(shè)計(jì)部分才會(huì)進(jìn)行重新綜合。這種綜合方法也可確保網(wǎng)表中所作的增量變更能被相應(yīng)的網(wǎng)表導(dǎo)入和編譯功能所識(shí)別。設(shè)計(jì)人員可用“Layout Options”(布局選項(xiàng)) 菜單中的“Incremental Mode”(增量模式) 和“Lock Existing Layout”(鎖定現(xiàn)有布局) 選項(xiàng)來(lái)盡可能保持原有的布局布線。只有那些與綜合工具產(chǎn)生的編譯點(diǎn)變更直接相關(guān)的布局部分才會(huì)被更新和修改。
Synplify Pro 綜合工具的MultiPoint功能和Actel的Libero集成設(shè)計(jì)環(huán)境 (IDE) 一起提供了高效的增量設(shè)計(jì)方法,管理真正的工程設(shè)計(jì)變更通知 (ECO) 需求。兩者的結(jié)合使設(shè)計(jì)人員能對(duì)原設(shè)計(jì)作模塊級(jí)變更,即只更改那些需要變更的部分。這種設(shè)計(jì)流程大大減少了變更對(duì)那些原已成熟的設(shè)計(jì)部分的影響,因此能夠節(jié)省時(shí)間和資源。
例如,你可用Synplify Pro中的MultiPoint 為日后設(shè)計(jì)或重新設(shè)計(jì)預(yù)留多個(gè)“編譯點(diǎn)”。也可將設(shè)計(jì)分成一些較小的綜合對(duì)象,以便對(duì)其中一些區(qū)塊進(jìn)行修改,同時(shí)又不影響另一些區(qū)塊。在特大型設(shè)計(jì)中,MultiPoint還能對(duì)增量區(qū)塊進(jìn)行設(shè)計(jì)和綜合,避免系統(tǒng)內(nèi)存或運(yùn)行時(shí)間方面的問題。
Actel 的Libero可輕易接受Synplify Pro的MultiPoint 綜合產(chǎn)生的更新網(wǎng)表。Libero中“增量”布局布線流程提供ECO方法,而且,只更新那些需要更新的布局部分,原布局中 (由用戶選中) 的其余部分將不受影響。顯然,用增量布局方法比重新進(jìn)行整個(gè)布局快得多。
在許多情況下,你可能需要返回到最初的設(shè)計(jì),進(jìn)行功能和性能修改,使其達(dá)到設(shè)計(jì)要求。此時(shí),若使用Synplify Pro中的MultiPoint 綜合和Libero IDE中的布局布線選項(xiàng),設(shè)計(jì)人員就可用有效的增量ECO模式方法,以最短的時(shí)間完成設(shè)計(jì)更新,且不會(huì)影響那些已經(jīng)完成的寶貴的設(shè)計(jì)和開發(fā)工作。
而且,Libero IDE中的設(shè)計(jì)“視圖”允許在同一設(shè)計(jì)項(xiàng)目中獨(dú)立保存設(shè)計(jì)的不同版本。這個(gè)功能可讓設(shè)計(jì)人員保存先前的約束和布局布線文件,從而在增量設(shè)計(jì)布局與原來(lái)的布局間作比較。這樣,你就能輕松判斷增量修改后的設(shè)計(jì)能否滿足設(shè)計(jì)要求,或原來(lái)的方案是否更好些。有了這些視圖,你就能輕松地在原始布局上進(jìn)行更改,或以各增量布局為起點(diǎn)逐次進(jìn)行更改,并比較每次迭代的結(jié)果。
增量設(shè)計(jì)流程能夠給用戶帶來(lái)許多益處 :一方面,可將大型設(shè)計(jì)分解成一些較小的區(qū)塊,減少綜合和布局布線的總體運(yùn)行次數(shù)和內(nèi)存需求;第二,可在Synplify Pro中標(biāo)記網(wǎng)表或布局中感興趣的區(qū)域,并以增量方法進(jìn)行修改,最大限度地減少對(duì)原布局的影響,同時(shí)還能節(jié)約重新綜合和布局運(yùn)行時(shí)間;第三,傳統(tǒng)自下而上的設(shè)計(jì)需要設(shè)計(jì)人員編寫和維護(hù)一些費(fèi)時(shí)且易出錯(cuò)的腳本,用于引導(dǎo)綜合和跟蹤設(shè)計(jì)關(guān)聯(lián)。增量流程采用基于差異的增量綜合方法,無(wú)需這類腳本。
評(píng)論