隨著電子技術(shù)的進步.FPGA邏輯電路能完成的功能越來越多,同樣也帶來了一個很大的問題,即邏輯電路的規(guī)模越來越大,這意味著RTL代碼到FPGA的映射、布局布線所花費的時間也越來越長。
如果代碼結(jié)構(gòu)不合理,編寫隨意,沒有考慮到FPGA布局布線的可行性以及時序收斂的問題,那么很可能使時序收斂非常困難,更壞的情況是布局布線失敗(即place and route fail)。這種情況在大規(guī)模的設(shè)計、大規(guī)模的FPGA上更為常見,因此有必要專門有一個章來講RTL代碼的設(shè)計、電路結(jié)構(gòu)的設(shè)計、大規(guī)模邏輯電路的技巧以及如何解決此類問題。
布局布線失敗
在某些FPGA中,特別是在大規(guī)模的FPGA(XilinxVirtex6以上,AlteraStratixIV以上)中實現(xiàn)大規(guī)模的設(shè)計,如果前期沒有對設(shè)計的邏輯電路做好結(jié)構(gòu)優(yōu)化,同時不注意代碼風(fēng)格,那么很可能會帶來一個問題:布局布線失敗。這種現(xiàn)象困擾著設(shè)計者因為一個大型的設(shè)計從綜合到布局布線通常需要花費十來個小時,有些甚至是一兩天的時間,而這種結(jié)果意味著這些時間將被極大地浪費。該現(xiàn)象一般在FPGA工具中會出現(xiàn)如圖14-1所示的信息。

圖14-1 布線失敗提示信息
圖14-1的大體意思是說布線工具(router)檢測到當前是一個非常密集(dense)擁塞(congested)的設(shè)計,布線工具有可能沒有辦法實現(xiàn)布線。這里的密集和擁塞是指什么呢?從字面上意思理解就是FPGA布線工具在進行布線的時候,發(fā)現(xiàn)設(shè)計的某些部分在布局后器件之間的分布過于密集,連線過于復(fù)雜,因此無法完成布線。
這跟PCB的設(shè)計有點類似,當PCB的布局不合理或者器件過多的時候,有可能在指定的面積下無法完成布線,只能通過增加PCB面積或者層數(shù)來完成。
那么對于FPGA來說到了設(shè)計能夠布局布線階段,這已經(jīng)是一個中期的階段,此時要重新選型不現(xiàn)實;另外如果FPGA本身已經(jīng)是最大規(guī)模,那么更換FPGA更是不可能。這種情況跟時序不收斂要惡劣得多。
因此,在這個時候,設(shè)計者通常面臨兩種選擇:
①刪除部分設(shè)計需求,除低設(shè)計占用的FPGA資源;
②優(yōu)化邏輯電路的實現(xiàn)架構(gòu)、代碼。
對于第一種選擇,設(shè)計變更太大,造成的影響太多,而且降低FPGA資源利用率后也不能保證能夠布線成功第二種選擇是一個比較艱難的選擇,這意味著很可能要對前期已經(jīng)仿真驗證好的代碼進行大量修改和優(yōu)化,在進行布局布線測試的過程中又重新仿真驗證。
這是一個比較麻煩的過程,但是,這也印證了前期設(shè)計規(guī)劃的重要性,即要求設(shè)計者在前期就能夠預(yù)見到該設(shè)計可能遇到的問題,在做邏輯電路架構(gòu)和編碼的時候注意到這種潛在的危險,爭取在概要設(shè)計和詳細設(shè)計階段就把該類風(fēng)險考慮進去,編碼的時候養(yǎng)成良好的編碼風(fēng)格和習(xí)慣,最大程度地減少該類事情的出現(xiàn)。
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1660文章
22411瀏覽量
636271 -
邏輯電路
+關(guān)注
關(guān)注
13文章
503瀏覽量
44083 -
PCB設(shè)計
+關(guān)注
關(guān)注
396文章
4921瀏覽量
95241
原文標題:FPGA布局布線失敗怎么辦(一)
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
FPGA去耦電容如何布局布線
PCB布局布線技術(shù)的發(fā)展
布局布線技術(shù)的發(fā)展
FPGA設(shè)計的塑封式布局和布線介紹
FPGA的布局布線
MCM布局布線的軟件實現(xiàn)
華秋干貨鋪 | PCB布局布線的可制造性設(shè)計
【干貨分享】PCB布局布線的可制造性設(shè)計
PCB布局布線的可制造性設(shè)計
【PCB設(shè)計】一招搞定PCB布局布線的可制造性設(shè)計問題
PCB布局布線技巧104問
DCDC電源的布局布線設(shè)計
FPGA布局布線的可行性 FPGA布局布線失敗怎么辦
評論