<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解決Vivado implementation擁塞的策略方法

倩倩 ? 來源:Hack電子 ? 作者:Hack電子 ? 2022-08-31 15:14 ? 次閱讀

摘要:根據官方說法,嘗試解決post route里面的擁塞問題,參考文章在策略中一些參數細節的配置方法。參考文章中的

Vivado strategies:

針對性能:

Perfornance_Explore

Perfornance_ExplorePostRouteFhsopt

Perfornance_WLBlockPlacement

Perfornance_WLBlockPlacementFanoutopt

Perfornance_NetDelay_high

Perfornance_NetDelay_low

Perfornance_Retiming

Perfornance_ExtraTimingOpt

Perfornance_Refineplacement

Perfornance_SpreadSLLs

Perfornance_BalanceSLLs

針對布線擁塞:

Congestion_ SpreadLogic_high

Congestion_ SpreadLogic_medium

Congestion_ SpreadLogic_low

Congestion_ SpreadLogic_Explore

以下三個針對SSI芯片

Congestion_ SSI_SpreadLogic_high

Congestion_ SSI_SpreadLogic_low

Congestion_ SSI_SpreadLogic_Explore

針對資源:

Area_Explore

Area_ExploreSequential

Area_ExploreWithRemap

針對功耗:

Power_DefaultOpt

Power_ExploreArea

針對運行時間:

Flow_RunPhysOpt

Flow_RunPos tRoutePhysOpt

Flow_Runtimcoptinized

擁塞報告

第一步:打開布局或者布線后的DCP文件

第二步:在菜單下,依次選擇Reports -> Report Design Analysis,彈出如下圖所示對話框,只選擇圖中的Congestion,即可生成擁塞報告。

5f17c67c-28fc-11ed-ba43-dac502259ad0.png

這里我們要格外關注Level列對應的數據,該列數據表明了擁塞程度。

5f48907c-28fc-11ed-ba43-dac502259ad0.png

對于擁塞程度(Congestion Level),我們有如下判定標準:

擁塞程度≥7:設計幾乎不太可能收斂,布線極有可能失??;

擁塞程度≥6:設計很難實現時序收斂,運行時間會很長,而且很有可能出現布線失??;

擁塞程度=5:存在一定難度實現設計收斂;

擁塞程度<5:可認為設計不存在擁塞問題

我們再看看布線后生成的擁塞報告,如下圖所示。此時,我們要關注Type這一列。該列表明了擁塞的類型。

5f712226-28fc-11ed-ba43-dac502259ad0.png

通常,有三類擁塞類型:Global、Long和Short。造成這三類擁塞的原因是不同的。

Global:擁塞區域的Combined LUT過多,或者控制集過多;

Long:擁塞區域的BRAM、URAM和DSP過多,或者跨die路徑過多;

Short:擁塞區域的MUXF或Carry Chain過多;

明確了擁塞類型,就可知道造成擁塞的原因,再結合報告中顯示的擁塞區域,進而查找到相應的模塊,就可以有的放矢,解決擁塞問題。但是,在解決擁塞問題之前要確保設計滿足以下幾點:

(1)約束是合理的

(2)Pblock之間沒有重疊

(3)不存在過大的Hold違例(WHS < -0.4ns)

測試

首先看擁塞的等級,可以分別采用Congestion_ SpreadLogic_high、Congestion_ SpreadLogic_medium等不同的策略去解決。

我在跑版本的時候發現,有的版本時序還行,但是功能完全不正確,warning比功能正確的版本要多??紤]到可能是策略不同所致,所以進行了一些關于策略測試,不是很明白策略,只是單純的跑版本進行測試。

具體策略每項的介紹可以看這篇文章:【vivado UG學習】Implementation策略學習_lu-ming.xyz的博客-CSDN博客_vivado 實現策略(https://blog.csdn.net/lum250/article/details/119920135)

在有擁塞的時候,使用congestion_spreadlogic_high策略,但是好像很容易會造成版本的unlock,這點不是很確定。

以058版本為例,時序在-0.5的版本是不行的,一般要在-0.5以內,-0.4的樣子

5f9b6644-28fc-11ed-ba43-dac502259ad0.png

5fde8f82-28fc-11ed-ba43-dac502259ad0.png

第一次修改策略,其它不變,只改HigherDelayCost

6005f9f0-28fc-11ed-ba43-dac502259ad0.png

第二次修改策略,有unlock的問題:

opt_design:Default

place_design:AtspeedLogic_high

phys_opt_design:AggressiveExplore

route_design:NoTimingRelaxation

(unenable)phys_opt_design:Explore

60318bd8-28fc-11ed-ba43-dac502259ad0.png

第三次修改策略:

opt_design:Default

place_design:AtspeedLogic_high

phys_opt_design:ExploreWithHoldFix

route_design:NoTimingRelaxation

(unenable)phys_opt_design:Explore

60611c72-28fc-11ed-ba43-dac502259ad0.png

第四次修改策略:(無unlock問題,功能沒太大問題)

opt_design:Explore

place_design:AtspeedLogic_high

phys_opt_design:AggressiveExplore

route_design:NoTimingRelaxation

(unenable)phys_opt_design:Explore

608b9f4c-28fc-11ed-ba43-dac502259ad0.png

058錯誤版本,無unlock問題,但是功能有問題:(同策略下跑出過正常版本很奇怪)

opt_design:ExploreArea

place_design:AtspeedLogic_high

phys_opt_design:Explore

route_design:NoTimingRelaxation

(unenable)phys_opt_design:Explore

60bcc9d2-28fc-11ed-ba43-dac502259ad0.png

058正式版本:(無lock問題,功能正確,時序微差)

opt_design:Default

place_design:AtspeedLogic_high

phys_opt_design:Explore

route_design:NoTimingRelaxation

(unenable)phys_opt_design:Explore

13 critical warning

354 warning

WNS:-0.429

TNS:-4010.661

057版本測試

057-0606(未通過)

opt_design:Explore

place_design:AtspeedLogic_high

phys_opt_design:Explore

route_design:NoTimingRelaxation

phys_opt_design:Explore

53 critical warnings

273 warnings

WNS:-0.438ns

總結

根據測試,簡單的判斷下來,在高LUT使用率以及擁塞的版本下,可暫時使用如下策略,雖然同策略跑出的其他版本在prach測試時有點偏差,但是不能夠確定是環境問題還是代碼問題:

opt_design:Default

place_design:AtspeedLogic_high

phys_opt_design:Explore

route_design:NoTimingRelaxation

(unenable or ennable)phys_opt_design:Explore

在使用策略的時候可以先不用更改策略內的項,用每個策略的默認項,待時序很差或者擁塞依舊不通過或者功能不正確時,再考慮更改某些項。

目前看下來,當LUT使用過多,并且時序差的時候會有擁塞、unlock以及功能不正確的現象。我在使用congestion_spreadlogic_high策略的時候,很容易會有unlock的現象。功能不正確伴隨著的是時序竟然會好,這點很奇怪,感覺是由于策略過于激進優化掉了很多東西,造成了更多的warning(DRC警告)。

不過這三個問題在不改代碼的前提下,可以去通過更改策略解決。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 布線
    +關注

    關注

    9

    文章

    733

    瀏覽量

    84069
  • 擁塞
    +關注

    關注

    0

    文章

    12

    瀏覽量

    9413
  • Vivado
    +關注

    關注

    18

    文章

    791

    瀏覽量

    65315

原文標題:解決Vivado implementation擁塞的策略方法

文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    以太網存儲網絡的擁塞管理連載案例(六)

    消除或減少無損以太網網絡擁塞的高級方法與光纖通道結構相同。幾十年來,不同的傳輸類型都采用了類似的方法,只是略有不同。
    的頭像 發表于 03-06 16:35 ?507次閱讀
    以太網存儲網絡的<b class='flag-5'>擁塞</b>管理連載案例(六)

    以太網存儲網絡的擁塞管理連載案例(五)

    解決無損以太網網絡擁塞問題的方法與光纖通道結構相同。兩者都使用逐跳流量控制機制,只是實現方式不同而已。
    的頭像 發表于 03-04 11:17 ?468次閱讀
    以太網存儲網絡的<b class='flag-5'>擁塞</b>管理連載案例(五)

    TCP協議技術之擁塞控制算法

    擁塞控制是在網絡層和傳輸層進行的功能。在網絡層,擁塞控制可以通過路由算法來控制數據包在網絡中的傳輸,以降低網絡擁塞的發生。
    的頭像 發表于 02-03 17:06 ?1120次閱讀
    TCP協議技術之<b class='flag-5'>擁塞</b>控制算法

    量化策略里的MAX方法是指min-max嗎?

    量化策略里的MAX方法是指min-max嗎
    發表于 09-19 06:38

    UltraFAST設計方法指南(適用于Vivado Design Suite)

    電子發燒友網站提供《UltraFAST設計方法指南(適用于Vivado Design Suite).pdf》資料免費下載
    發表于 09-15 09:56 ?1次下載
    UltraFAST設計<b class='flag-5'>方法</b>指南(適用于<b class='flag-5'>Vivado</b> Design Suite)

    Vivado ML版中基于ML的路由擁塞和延遲估計

    電子發燒友網站提供《Vivado ML版中基于ML的路由擁塞和延遲估計.pdf》資料免費下載
    發表于 09-14 11:41 ?0次下載
    <b class='flag-5'>Vivado</b> ML版中基于ML的路由<b class='flag-5'>擁塞</b>和延遲估計

    Vivado設計套件用戶:使用Vivado IDE的指南

    電子發燒友網站提供《Vivado設計套件用戶:使用Vivado IDE的指南.pdf》資料免費下載
    發表于 09-13 15:25 ?6次下載
    <b class='flag-5'>Vivado</b>設計套件用戶:使用<b class='flag-5'>Vivado</b> IDE的指南

    UltraFast Vivado HLS方法指南

    電子發燒友網站提供《UltraFast Vivado HLS方法指南.pdf》資料免費下載
    發表于 09-13 11:23 ?1次下載
    UltraFast <b class='flag-5'>Vivado</b> HLS<b class='flag-5'>方法</b>指南

    UltraFAST設計方法指南(適用于Vivado Design Suite)

    電子發燒友網站提供《UltraFAST設計方法指南(適用于Vivado Design Suite).pdf》資料免費下載
    發表于 09-13 10:18 ?0次下載
    UltraFAST設計<b class='flag-5'>方法</b>指南(適用于<b class='flag-5'>Vivado</b> Design Suite)

    請問如何快速地創建掃描策略呢?

    Vivado提供了豐富的Implementation Strategy,如下圖所示。這使得掃描策略成為時序收斂的一種方法。
    的頭像 發表于 08-31 14:59 ?529次閱讀
    請問如何快速地創建掃描<b class='flag-5'>策略</b>呢?

    VivadoImplementation階段約束報警告?

    幫到不經??慈合⒌男』锇?,另一方面也算是我們的技術積累。 Q:VivadoImplementation階段約束報警告? ? [Vivado?12-627]?No?clocks?matched
    的頭像 發表于 08-08 14:10 ?844次閱讀

    vivado軟件和modelsim軟件的安裝方法

    本文詳細介紹了vivado軟件和modelsim軟件的安裝,以及vivado中配置modelsim仿真設置,每一步都加文字說明和圖片。
    的頭像 發表于 08-07 15:48 ?1948次閱讀
    <b class='flag-5'>vivado</b>軟件和modelsim軟件的安裝<b class='flag-5'>方法</b>

    Linux內核網絡擁塞控制算法的具體實現框架(一)

    談起網絡擁塞控制,大家可能很熟悉八股文中的“加法增大“、”乘法減小“、”慢開始“、“擁塞避免”、“快重傳”、“快恢復”等概念。沒錯,這是一種經典網絡擁塞控制算法的基礎理論,但在實際的實現時不同的
    的頭像 發表于 07-28 11:32 ?468次閱讀
    Linux內核網絡<b class='flag-5'>擁塞</b>控制算法的具體實現框架(一)

    用 TCL 定制 Vivado 設計實現流程

    Implementation 的 Default 策略。黃色部分表示可選擇執行的部分,不同的實現策略中配置不同。 這里不會討論那些圖形化界面中可選的策略,不同
    發表于 06-28 19:34

    如何在Vivado中添加時序約束呢?

    今天介紹一下,如何在Vivado中添加時序約束,Vivado添加約束的方法有3種:xdc文件、時序約束向導(Constraints Wizard)、時序約束編輯器(Edit Timing Constraints )
    的頭像 發表于 06-26 15:21 ?2415次閱讀
    如何在<b class='flag-5'>Vivado</b>中添加時序約束呢?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>