0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA布線擁塞主要原因及解決方法

微云疏影 ? 來源:FPGA算法工程師 ? 作者:FPGA算法工程師 ? 2022-12-07 10:22 ? 次閱讀

FPGA開發(fā)設(shè)計中,我們可能會經(jīng)歷由于資源占用過高的情況,例如BRAM、LUT和URAM等關(guān)鍵資源利用率達(dá)到或超過80%,此時出現(xiàn)時序違例是常有的事,甚至由于擁塞導(dǎo)致布線失敗,整個FPGA工程面臨無法生成bit文件的危險。

那么,有沒有辦法來解決這類問題呢?

此類問題是FPGA設(shè)計實現(xiàn)中比較棘手的問題,Xilinx針對7系列及以后的UltraScale/UltraScale+等,提出了UltraFast設(shè)計方法論,用于指導(dǎo)該系列器件的成功設(shè)計和實現(xiàn),完成復(fù)雜系統(tǒng)設(shè)計。

時序收斂是指設(shè)計滿足所有的時序要求。針對綜合采用正確的 HDL 和約束條件就能更易于實現(xiàn)時序收斂。通過選擇更合適的 HDL、約束和綜合選項,經(jīng)過多個綜合階段進(jìn)行迭代同樣至關(guān)重要,如下圖所示。

poYBAGOP-PmAGzyEAAEnrEwmNOQ542.jpg

Xilinx提出的實現(xiàn)快速收斂的設(shè)計方法論

FPGA布線擁塞怎么辦?

如果關(guān)鍵路徑在擁塞區(qū)域內(nèi)或者緊鄰擁塞區(qū)域,或者是資源利用率較高,都會導(dǎo)致時序收斂困難。在很多情況下,擁塞會消耗大量的布線時間,甚至布線失敗。如果布線延遲顯著大于預(yù)期值,那么我們就得考慮降低設(shè)計的擁塞程度。

在確保時序約束和物理約束正確的情況下,我們可以通過以下方法解決擁塞問題。

1.擁塞類型

Xilinx FPGA布線結(jié)構(gòu)包括東、南、西、北共4個方向不同長度的互聯(lián)資源。擁塞區(qū)域以最小的正方形體現(xiàn),這個正方形覆蓋了相鄰的互聯(lián)資源或CLB單元。

pYYBAGOP-PqAbOnOAANBm99fwnM627.jpg

“Device”視圖中的擁塞等級和擁塞區(qū)域

擁塞包括3種類型:全局擁塞、短線擁塞和長線擁塞。

擁塞類型

poYBAGOP-PuAEbSgAABBkfsFtKA792.png

2.生成設(shè)計擁塞報告

為了檢查擁塞程度,我們可以基于布局之后生成的DCP,通過以下Tcl命令生成設(shè)計擁塞報告。

report_design_analysis -congestion -name cong

分析擁塞時,工具報告的等級可按下表所示方式進(jìn)行分類。擁塞等級為 5 或更高時,通常會影響 QoR 并且必然會導(dǎo)致布線器運行時間延長。

pYYBAGOP-PuAXLBGAABeLVl4tp4898.png

為幫助識別擁塞,Report Design Analysis命令支持生成擁塞報告以顯示器件的擁塞區(qū)域,以及這些區(qū)域內(nèi)存在的設(shè)計模塊的名稱。此報告中的擁塞表會顯示布局器和布線器算法發(fā)現(xiàn)的擁塞區(qū)域。下圖顯示了擁塞表示例。

poYBAGOP-PyACFMuAAC48PTtcgw932.jpg

擁塞表

“Placed Maximum”、“Initial Estimated Router Congestion”和“Router Maximum”擁塞表可提供有關(guān)東西南北四個方向上擁塞最嚴(yán)重的區(qū)域的信息。選中該表中的窗口時,在“Device”窗口中會突出顯示對應(yīng)的擁塞區(qū)域。

3.生成設(shè)計復(fù)雜性報告

我們也可以通過設(shè)計復(fù)雜性報告來預(yù)判是否出現(xiàn)擁塞。我們可以對布局生成的DCP,通過以下Tcl命令生成設(shè)計復(fù)雜度報告。

report_design_analysis -complexity -name comp

復(fù)雜性報告 (Complexity Report) 可按頂層設(shè)計和/或?qū)蛹墕卧娜~節(jié)點單元的類型顯示 Rent 指數(shù) (Rent Exponent)、平均扇出 (Average Fanout) 和分布方式。Rent 指數(shù)是指在使用min-cut算法以遞歸形式對設(shè)計進(jìn)行分區(qū)時,網(wǎng)表分區(qū)的端口數(shù)量和單元數(shù)量之間的關(guān)系。其計算方法與在全局布局期間布局器所使用的算法類似。因此,它可準(zhǔn)確表明布局器所面臨的困難,當(dāng)設(shè)計的層級與在全局布局期間所發(fā)現(xiàn)的物理分區(qū)匹配良好時尤其如此。

Rent 指數(shù)較高的設(shè)計表示此類設(shè)計中包含邏輯緊密相連的分組,并且這些分組與其它分組同樣連接緊密。這通??衫斫鉃槿植季€資源利用率較高并且布線復(fù)雜性也更高。此報告中提供的 Rent 指數(shù)是根據(jù)未布局和未布線的網(wǎng)表來計算的。完成布局后,相同設(shè)計的 Rent 指數(shù)可能改變,因為它基于物理分區(qū)而不是邏輯分區(qū)。

pYYBAGOP-PyAP2v4AAFi7kACK90397.jpg

復(fù)雜性報告

Rent 指數(shù)的典型范圍

poYBAGOP-P2AHD4TAACDP18NotA966.jpg

“平均扇出”典型范圍

pYYBAGOP-P2ABLXhAACwBtaZ9XE247.jpg

4.解決擁塞問題

根據(jù)前文所述造成擁塞的原因,我們可以采用以下辦法解決布線擁塞問題。

擁塞原因1:過多的MUXF(將MUXF轉(zhuǎn)化為LUT)

方法1:利用模塊化綜合技術(shù),對特定模式設(shè)置MUXF_REMAPPING:

set_property BLOCK_SYNTH.MUXF_M(jìn)APPING 1 [get_cells top/instance]

方法2:在opt_design階段使用-remap選項:

opt_design -mux_remap -remap

方法3:針對特定MUXF設(shè)置MUXF_REMAP屬性為ture

set_property MUXF_REMAP 1 [get_cells -h(huán)ier-filter {NAME=~ cpu*&& REF_NAME=~MUXF*}]

擁塞原因2:過長的進(jìn)位鏈(將進(jìn)位鏈轉(zhuǎn)化為LUT)

方法1:在opt_design階段使用-remap選項:

opt_design -carry_remap -remap

方法2:針對特定MUXF設(shè)置CARRY_REMAP屬性

set_property CARRY_REMAP 2 [get_cells -h(huán)ier-filter { REF_NAME==CARRY8}]

擁塞原因3:過多的控制集(合并控制集)

方法1:利用模塊化綜合技術(shù),對特定模式設(shè)置CONTROL_SET_THRESHOLD:

set_property BLOCK_SYNTH. CONTROL_SET_THRESHOLD 10 [get_cells top/instance]

方法2:在opt_design階段,使用-control_set_merge合并等效控制集

opt_design -control_set_merge

方法3:在opt_design階段,使用merge_equivalent_drivers合并等效控制集,包括非控制邏輯

opt_design -merge_equivalent_drivers

擁塞原因4:過多的LUT整合(阻止LUT整合)

方法1:利用模塊化綜合技術(shù),對特定模式設(shè)置LUT_COMBINING:

set_property BLOCK_SYNTH. LUT_COMBINING 0 [get_cells top/instance]

方法2:設(shè)定LUT的LUTNM屬性為空:

set_property LUTNM “”[get_cells hier-filter {REF_NAME =~LUT*&& NAME=~inst}]

在綜合階段,除了使用以上的方法外,對于IP,我們最好采用OOC的綜合方式。

在實現(xiàn)階段,可以選擇適當(dāng)?shù)膶崿F(xiàn)策略來緩解擁塞。對于UltraScale系列芯片,可嘗試采用“Congestion_*”策略緩解擁塞;對于UltraScale+系列芯片,可嘗試采用“performance_NetDelay_*” 策略緩解擁塞。如下圖所示。

poYBAGOP-P6AFb9UAAGGfcq2PUg197.jpg

實現(xiàn)時解決擁塞策略

當(dāng)然,我們也嘗試采用“performance_ExtraTimingOpt” 策略進(jìn)行時序優(yōu)化,但可能無法解決擁塞問題。

FPGA算法工程師

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21579

    瀏覽量

    600777
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2152

    瀏覽量

    120759
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    383

    瀏覽量

    37237
收藏 人收藏

    評論

    相關(guān)推薦

    華納云:企業(yè)遷移到云端的主要原因是什么?

    企業(yè)遷移到云端的主要原因是什么?原因不止一個。削減成本通常被認(rèn)為是主要原因——但盡管通過云遷移降低成本無疑是一種誘人的可能性,但創(chuàng)新潛力才是更大的獎勵。云計算通過支持企業(yè)創(chuàng)新而產(chǎn)生的價值是僅僅通過 降低 IT 成本所能實現(xiàn)的價值
    的頭像 發(fā)表于 09-14 17:38 ?209次閱讀

    服務(wù)器錯誤是怎么回事?常見錯誤原因解決方法匯總

    服務(wù)器錯誤是怎么回事?最常見的原因分有六個,分別是:硬件問題、軟件問題、網(wǎng)絡(luò)問題、資源耗盡、數(shù)據(jù)庫、文件權(quán)限問題??梢愿鶕?jù)以下具體錯誤原因進(jìn)行辨別,并選擇適合的解決方法。關(guān)于常見服務(wù)器原因
    的頭像 發(fā)表于 08-12 10:11 ?964次閱讀

    接地網(wǎng)阻值偏大的原因解決方法

     地網(wǎng)接地電阻測試儀是保障電氣設(shè)備安全運行的重要組成部分,但在實際使用中,我們可能會遇到接地網(wǎng)阻值偏大的情況。接下來,鴻蒙小小編介紹造成這種情況的原因,并提供一些解決方法。   1、接地體積不足
    發(fā)表于 06-17 09:19

    SMT貼片加工物料損耗的各種因素、原因與相應(yīng)的解決方法

    損耗的原因以及解決方法對提升生產(chǎn)效率和降低成本非常重要。接下來為大家介紹SMT貼片加工物料損耗的常見原因解決方法。 SMT加工物料損耗原因
    的頭像 發(fā)表于 06-03 10:39 ?561次閱讀

    焊接質(zhì)量缺陷產(chǎn)生的主要原因

    創(chuàng)想焊縫跟蹤小編將與大家一起探討焊接質(zhì)量缺陷產(chǎn)生的主要原因。 材料選擇不當(dāng) 焊接質(zhì)量缺陷的主要原因之一是材料選擇不當(dāng)。焊接材料包括焊條、電極、焊絲、焊劑等,如果選擇的焊接材料與基材不匹配,或者焊接材料的質(zhì)量
    的頭像 發(fā)表于 05-15 09:41 ?509次閱讀
    焊接質(zhì)量缺陷產(chǎn)生的<b class='flag-5'>主要原因</b>

    諧波引起電纜損壞的主要原因

    諧波是指在電力系統(tǒng)中出現(xiàn)的頻率為整數(shù)倍于基波頻率的波動現(xiàn)象。在電纜中傳輸?shù)碾娔苤校C波存在的情況是很常見的。然而,諧波也是導(dǎo)致電纜損壞的主要原因之一。
    的頭像 發(fā)表于 03-14 14:20 ?578次閱讀
    諧波引起電纜損壞的<b class='flag-5'>主要原因</b>

    PCB焊盤脫落的原因解決方法?

    PCB焊盤脫落的原因解決方法? PCB(印刷電路板)焊盤的脫落是一個常見的問題,它會導(dǎo)致電子設(shè)備無法正常工作。本文將詳細(xì)介紹焊盤脫落的原因以及解決方法。 一、焊盤脫落的
    的頭像 發(fā)表于 01-18 11:21 ?5518次閱讀

    輥壓機(jī)軸承位磨損主要原因

    電子發(fā)燒友網(wǎng)站提供《輥壓機(jī)軸承位磨損主要原因.docx》資料免費下載
    發(fā)表于 01-10 14:10 ?0次下載

    現(xiàn)代獨立顯卡電力消耗的主要原因

    現(xiàn)代獨立顯卡電力消耗的主要原因 近年來,隨著科技的不斷發(fā)展和人們對高畫質(zhì)游戲和圖形處理需求的增加,獨立顯卡已經(jīng)成為電腦的必備硬件之一。然而,獨立顯卡的電力消耗問題也逐漸浮出水面。本文將詳細(xì)探討現(xiàn)代
    的頭像 發(fā)表于 01-09 13:52 ?454次閱讀

    電阻屏觸摸失靈的原因解決方法

    電阻屏觸摸失靈是指在使用電阻屏?xí)r,手指或觸摸筆無法正常識別觸摸操作,導(dǎo)致無法進(jìn)行正常的操作。這種情況可能是由于多種原因引起的,下面將介紹一些常見的原因解決方法。 屏幕表面臟污:電阻屏的工作原理
    的頭像 發(fā)表于 12-28 17:34 ?6822次閱讀

    fpga布局布線算法加速

    現(xiàn)代電子設(shè)備中,針對復(fù)雜的數(shù)字電路,FPGA(Field-Programmable Gate Array)是一種非常優(yōu)秀的可編程邏輯器件。在FPGA的設(shè)計過程中,布局布線算法是關(guān)鍵步驟之一,其
    的頭像 發(fā)表于 12-20 09:55 ?690次閱讀

    7種光纜故障的主要原因

    7種光纜故障的主要原因? 光纜故障是指光纜在傳輸信息過程中出現(xiàn)的問題,影響著光信號的傳輸質(zhì)量和速度。這些故障可能由多種原因引起,下面將詳細(xì)介紹7種光纜故障的主要原因。 1. 光纜折斷 光纜折斷是最常
    的頭像 發(fā)表于 12-07 09:40 ?2077次閱讀

    為什么共模電流是EMI的主要原因

    為什么共模電流是EMI的主要原因
    的頭像 發(fā)表于 12-05 15:56 ?411次閱讀
    為什么共模電流是EMI的<b class='flag-5'>主要原因</b>

    在PCB設(shè)計中,使用多層PCB板的主要原因

    一站式PCBA智造廠家今天為大家講講PCB設(shè)計為什么要采用多層PCB結(jié)構(gòu)進(jìn)行?使用多層PCB板的主要原因。隨著芯片集成度的提高,芯片封裝的I/O引腳數(shù)目也在飛躍性地增加,特別是BGA封裝的出現(xiàn),僅靠單面、雙面導(dǎo)體層布線已經(jīng)無法將BGA內(nèi)圈的引腳的走線引出。
    的頭像 發(fā)表于 11-24 09:16 ?709次閱讀
    在PCB設(shè)計中,使用多層PCB板的<b class='flag-5'>主要原因</b>

    鉛酸蓄電池短路的主要原因

    電子發(fā)燒友網(wǎng)站提供《鉛酸蓄電池短路的主要原因.doc》資料免費下載
    發(fā)表于 11-15 09:07 ?2次下載
    鉛酸蓄電池短路的<b class='flag-5'>主要原因</b>