<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > QIC 在縮短大容量FPGA編譯時(shí)間中的作用

QIC 在縮短大容量FPGA編譯時(shí)間中的作用

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

6.jpg

圖4 在Quartus GUI中創(chuàng )建分區示意

5.jpg

圖5 分區與邏輯歸屬變化

4.jpg

圖6 分區合并報告

3.jpg

圖7 分區綜合后資源使用統計

2.jpg

圖8 Design partition window

1.jpg

圖9 Design partition window

從前面分區的性質(zhì)和特點(diǎn)可以看出,對包含多個(gè)功能模塊的多層次復雜設計,可以有許多種設置分區的方案。但需要注意的是:不是任何一種分區方案都能帶來(lái)的節約,惡劣的設計分區甚至能夠導致編譯失??!如何得到高效合理的設計分區呢?我們需要遵從以下原則:

a. 不要創(chuàng )建太多的分區,一般性的設計建議分區的數量控制在4~8個(gè)之間;

b. 不要創(chuàng )建太小的分區,一般建議不要小于1000個(gè)LE或者ALM;

c. 外設接口邏輯和內核處理邏輯放到不同的設計分區;

d. 相同或相近功能的外設接口,如果管腳位置相鄰,可以放在同一個(gè)分區,否則創(chuàng )建不同的設計分區;

e. 不同的分區方案中,分區之間的聯(lián)接少的方案更優(yōu)。

針對優(yōu)化代碼

除了分區方案,設計代碼也對的性能有直接的影響,需要設計者針對做一些特定的代碼優(yōu)化。優(yōu)化主要有兩方面,一方面是升級所使用的Megacore IP到最新的版本;另一方面則是一些更嚴格的編碼規則。

之所以建議升級Megacore IP到最新的版本,這是由于QIC增量式編譯常常需要調用Megacore IP的一些特性來(lái)支持一些特定操作,而這些特性通常在較新的版本中才能得到比較好的支持,而且隨著(zhù)QIC的成熟不斷改進(jìn)。筆者就曾經(jīng)在一個(gè)嘗試使用QIC的項目中,發(fā)現客戶(hù)的設計繼承了一部分老項目中的代碼,其中包含好幾個(gè)Quartus 9.1版本的DDR EMIF控制器,占了整個(gè)設計使用資源的20%左右。當說(shuō)服客戶(hù)把這幾個(gè)控制器升級到當時(shí)最新的Quartus 11版本,發(fā)現QIC所能節約的增加了近1個(gè)小時(shí),大約15%的整體。

之所以QIC要求遵從更嚴格的編碼規則,這是由于Quartus在有分區存在的時(shí)候,是不對跨越分區邊界的邏輯進(jìn)行綜合優(yōu)化,一些在Flat compilation中可以被軟件優(yōu)化掉的不良代碼,在QIC的流程中會(huì )造成嚴重的影響。這些嚴格的編碼規則包括:

a. 不要在底層分區邊界上使用三態(tài)信號和雙向端口;

Altera器件中,只有在器件的輸出管腳上才能實(shí)現真正的三態(tài)信號,在器件內部,三態(tài)驅動(dòng)是依靠多路器邏輯模擬實(shí)現,這兩點(diǎn)往往要求跨層的編譯優(yōu)化,而這在增量式編譯流程中是做不到的,會(huì )導致編譯失敗。只有一種情形例外,就是內部三態(tài)邏輯所涉及的所有信號都在同一個(gè)底層分區中,Quartus可以依靠多路器邏輯模擬此三態(tài)邏輯。雙向端口也類(lèi)似,只有在此雙向邏輯所涉及的所有信號都在一個(gè)底層分區中,QIC才能正常進(jìn)行。

b. 分區的輸入輸出最好都通過(guò)寄存器實(shí)現,資源有限的情況下至少保證跨分區的連接中的一端是寄存器(reg-in或者reg-out);

雖然這一規則有一定的實(shí)現難度,但它可以避免在使用增量式編譯流程的時(shí)候,那些跨分區邊界的信號的延遲出現大的惡化。如果不能實(shí)現這一規則,跨分區連接的兩端有可能都是組合邏輯。在Flat Compilation中,這兩組組合邏輯會(huì )被綜合優(yōu)化到一起來(lái)布局布線(xiàn),時(shí)序容易滿(mǎn)足;但在是增量式編譯中,由于不能跨區優(yōu)化,這2組組合邏輯的分別布局布線(xiàn),那穿過(guò)這兩組邏輯的路徑延遲將有可能變得很長(cháng),出現時(shí)序違背。

c. 避免不包含任何處理邏輯的信號環(huán)路穿越分區邊界;

也是由于不能跨區優(yōu)化,這樣的信號環(huán)在Flat Compilation中可以被優(yōu)化消除掉,在增量式編譯中就不能消除,浪費資源。

d. 避免跨分區的常量信號

類(lèi)似C,跨區的常量信號不能在目的端分區中直接實(shí)現(“0”連接地層,“1”連接電源層),而必須占用走線(xiàn)資源實(shí)現。

關(guān)注相關(guān)報告信息

使用QIC時(shí),Quartus中會(huì )產(chǎn)生很多QIC專(zhuān)有的消息,因此在編譯報告中也增加一些新的章節。這些報告章節,對我們了解QIC的運行情況有直接的幫助,尤其是當一些異常情況出現,往往需要我們通過(guò)閱讀這些報告章節來(lái)進(jìn)行調試。比較重要的報告有:

a. Partition Merge report

分區合并的報告章節如下圖所示,分別提供在這個(gè)階段網(wǎng)表的使用情況(netlist Types Used),各個(gè)分區的綜合警告信息(Partition Warning)和綜合后各類(lèi)資源使用情況(Partition Statistics)。

b. Incremental compilation section in Fitter report

在Fitter報告中,也增加了增量式編譯的章節。其中,Incremental Compilation Preservation Summary匯總了設計中被保留的布局和布線(xiàn)比例;Incremental Compilation Partition setting 說(shuō)明了設計中所有分區的創(chuàng )建方式和網(wǎng)表的保留級別(Preservation level);Incremental Compilation Placement Preservation給出了每一個(gè)分區中節點(diǎn)保留的信息;Incremental Compilation Routing Preservation則是每個(gè)分區中布線(xiàn)保留的信息。

c. Design partition window

這個(gè)窗口默認是不在Quartus 界面中顯示的,用戶(hù)需要通過(guò)Quartus菜單欄“Assignments”->”Design partition window”打開(kāi)這個(gè)窗口。這個(gè)窗口給出可配置分區的當前設置及各個(gè)網(wǎng)表文件的時(shí)間戳信息,并且可以在此窗口中快速修改分區使用的網(wǎng)表類(lèi)型(Netlist Type)和Fitter網(wǎng)表的保留級別(Fitter Preservation Level)。

結束語(yǔ)

在本文中,向大家介紹了增量式編譯的原理、過(guò)程和一些性能表現,同時(shí)給出了使用QIC需要注意的一些指導原則。華為、中興等客戶(hù)的多個(gè)項目實(shí)踐已經(jīng)證明QIC是一個(gè)可以用來(lái)解決設計編譯時(shí)間太長(cháng)的有效手段。增量式編譯QIC,值得您去嘗試!


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

關(guān)鍵詞: FPGA QIC 大容量 編譯時(shí)間

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>