RM新时代网站-首页

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

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

3天內不再提示

解決Vivado implementation擁塞的策略方法

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

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

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列對應的數(shù)據(jù),該列數(shù)據(jù)表明了擁塞程度。

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

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

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

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

擁塞程度=5:存在一定難度實現(xiàn)設計收斂;

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

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

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

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

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

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

Short:擁塞區(qū)域的MUXF或Carry Chain過多;

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

(1)約束是合理的

(2)Pblock之間沒有重疊

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

測試

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

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

具體策略每項的介紹可以看這篇文章:【vivado UG學習】Implementation策略學習_lu-ming.xyz的博客-CSDN博客_vivado 實現(xiàn)策略(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

總結

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

opt_design:Default

place_design:AtspeedLogic_high

phys_opt_design:Explore

route_design:NoTimingRelaxation

(unenable or ennable)phys_opt_design:Explore

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

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

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

審核編輯 :李倩


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

    關注

    9

    文章

    771

    瀏覽量

    84322
  • 擁塞
    +關注

    關注

    0

    文章

    12

    瀏覽量

    9452
  • Vivado
    +關注

    關注

    19

    文章

    812

    瀏覽量

    66470

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

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

收藏 人收藏

    評論

    相關推薦

    Vivado之實現(xiàn)布局布線流程介紹

    一、前言 本文將介紹Vivado進行綜合,以及布局布線的內部流程,熟悉該流程后結合Settings中對應的配置選項,對于時序收斂調試將更具有針對性。 二、Implementation(實現(xiàn)) 實現(xiàn)
    的頭像 發(fā)表于 12-06 09:08 ?296次閱讀
    <b class='flag-5'>Vivado</b>之實現(xiàn)布局布線流程介紹

    每次Vivado編譯的結果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結果都一樣嗎? 在AMD官網(wǎng)上,有這樣一個帖子: Are Vivado results repeatable for identical
    的頭像 發(fā)表于 11-11 11:23 ?305次閱讀
    每次<b class='flag-5'>Vivado</b>編譯的結果都一樣嗎

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調整
    的頭像 發(fā)表于 10-24 15:08 ?302次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado 2024.1版本的新特性(2)

    從綜合角度看,Vivado 2024.1對SystemVerilog和VHDL-2019的一些特性開始支持。先看SystemVerilog。
    的頭像 發(fā)表于 09-18 10:34 ?853次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式發(fā)布,今天我們就來看看新版本帶來了哪些新特性。
    的頭像 發(fā)表于 09-18 10:30 ?1290次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    TCS系統(tǒng)的核心控制策略方法

    策略方法 控制策略:TCS系統(tǒng)運用了一系列高級控制理論,包括邏輯閾值、比例積分微分(PID)控制、模糊邏輯和神經網(wǎng)絡技術。這些控制策略使系統(tǒng)能夠快速準確地對各種復雜的駕駛狀況進行響應
    的頭像 發(fā)表于 08-29 11:25 ?601次閱讀

    論TCP協(xié)議中的擁塞控制機制與網(wǎng)絡穩(wěn)定性

    TCP協(xié)議中的擁塞控制機制與網(wǎng)絡穩(wěn)定性的深度探討 隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡流量呈現(xiàn)爆炸式增長,網(wǎng)絡擁塞問題逐漸凸顯。為了維護網(wǎng)絡的穩(wěn)定運行,TCP協(xié)議中引入了擁塞控制機制。這一機制的主要目的是防止
    的頭像 發(fā)表于 04-19 16:42 ?417次閱讀

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

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

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

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

    TCP協(xié)議技術之擁塞控制算法

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

    一文詳解DCQCN擁塞控制算法

    DCQCN 是一種基于速率的端到端擁塞協(xié)議,它建立在 QCN 和 DCTCP 之上。DCQCN 的大部分功能是現(xiàn)在網(wǎng)卡上(而不是交換機上,或者操作系統(tǒng)上)。
    發(fā)表于 01-23 10:48 ?6343次閱讀
    一文詳解DCQCN<b class='flag-5'>擁塞</b>控制算法

    請問TCP擁塞控制對數(shù)據(jù)延遲有何影響?

    今天分享一篇文章,是關于 TCP 擁塞控制對數(shù)據(jù)延遲產生的影響的。作者在服務延遲變高之后進行抓包分析,結果發(fā)現(xiàn)時間花在了 TCP 本身的機制上面:客戶端并不是將請求一股腦發(fā)送給服務端,而是只發(fā)送
    的頭像 發(fā)表于 01-19 09:44 ?587次閱讀
    請問TCP<b class='flag-5'>擁塞</b>控制對數(shù)據(jù)延遲有何影響?

    如何禁止vivado自動生成 bufg

    Vivado中禁止自動生成BUFG(Buffered Clock Gate)可以通過以下步驟實現(xiàn)。 首先,讓我們簡要了解一下什么是BUFG。BUFG是一個時鐘緩沖器,用于緩沖輸入時鐘信號,使其更穩(wěn)
    的頭像 發(fā)表于 01-05 14:31 ?2155次閱讀

    Vivado時序問題分析

    有些時候在寫完代碼之后呢,Vivado時序報紅,Timing一欄有很多時序問題。
    的頭像 發(fā)表于 01-05 10:18 ?2108次閱讀

    逆變電路的控制策略方法介紹

    逆變電路的控制策略方法主要包括脈沖寬度調制(PWM)、空間矢量脈寬調制(SVPWM)、諧振軟開關(RRS)等。這些控制策略方法可以實現(xiàn)對逆變電路輸出電壓的穩(wěn)定、高效和低諧波控制,提
    的頭像 發(fā)表于 12-27 17:14 ?1706次閱讀
    逆變電路的控制<b class='flag-5'>策略</b>與<b class='flag-5'>方法</b>介紹
    RM新时代网站-首页