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

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

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

解決Vivado implementation擁塞的策略方法

倩倩 ? 來(lái)源:Hack電子 ? 作者:Hack電子 ? 2022-08-31 15:14 ? 次閱讀

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

Vivado strategies:

針對(duì)性能:

Perfornance_Explore

Perfornance_ExplorePostRouteFhsopt

Perfornance_WLBlockPlacement

Perfornance_WLBlockPlacementFanoutopt

Perfornance_NetDelay_high

Perfornance_NetDelay_low

Perfornance_Retiming

Perfornance_ExtraTimingOpt

Perfornance_Refineplacement

Perfornance_SpreadSLLs

Perfornance_BalanceSLLs

針對(duì)布線擁塞:

Congestion_ SpreadLogic_high

Congestion_ SpreadLogic_medium

Congestion_ SpreadLogic_low

Congestion_ SpreadLogic_Explore

以下三個(gè)針對(duì)SSI芯片

Congestion_ SSI_SpreadLogic_high

Congestion_ SSI_SpreadLogic_low

Congestion_ SSI_SpreadLogic_Explore

針對(duì)資源:

Area_Explore

Area_ExploreSequential

Area_ExploreWithRemap

針對(duì)功耗:

Power_DefaultOpt

Power_ExploreArea

針對(duì)運(yùn)行時(shí)間:

Flow_RunPhysOpt

Flow_RunPos tRoutePhysOpt

Flow_Runtimcoptinized

擁塞報(bào)告

第一步:打開(kāi)布局或者布線后的DCP文件

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

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

這里我們要格外關(guān)注Level列對(duì)應(yīng)的數(shù)據(jù),該列數(shù)據(jù)表明了擁塞程度。

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

對(duì)于擁塞程度(Congestion Level),我們有如下判定標(biāo)準(zhǔn):

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

擁塞程度≥6:設(shè)計(jì)很難實(shí)現(xiàn)時(shí)序收斂,運(yùn)行時(shí)間會(huì)很長(zhǎng),而且很有可能出現(xiàn)布線失敗;

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

擁塞程度<5:可認(rèn)為設(shè)計(jì)不存在擁塞問(wèn)題

我們?cè)倏纯床季€后生成的擁塞報(bào)告,如下圖所示。此時(shí),我們要關(guān)注Type這一列。該列表明了擁塞的類(lèi)型。

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

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

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

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

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

明確了擁塞類(lèi)型,就可知道造成擁塞的原因,再結(jié)合報(bào)告中顯示的擁塞區(qū)域,進(jìn)而查找到相應(yīng)的模塊,就可以有的放矢,解決擁塞問(wèn)題。但是,在解決擁塞問(wèn)題之前要確保設(shè)計(jì)滿(mǎn)足以下幾點(diǎn):

(1)約束是合理的

(2)Pblock之間沒(méi)有重疊

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

測(cè)試

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

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

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

在有擁塞的時(shí)候,使用congestion_spreadlogic_high策略,但是好像很容易會(huì)造成版本的unlock,這點(diǎn)不是很確定。

以058版本為例,時(shí)序在-0.5的版本是不行的,一般要在-0.5以?xún)?nèi),-0.4的樣子

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

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

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

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

第二次修改策略,有unlock的問(wèn)題:

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

第四次修改策略:(無(wú)unlock問(wèn)題,功能沒(méi)太大問(wèn)題)

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錯(cuò)誤版本,無(wú)unlock問(wèn)題,但是功能有問(wèn)題:(同策略下跑出過(guò)正常版本很奇怪)

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正式版本:(無(wú)lock問(wèn)題,功能正確,時(shí)序微差)

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版本測(cè)試

057-0606(未通過(guò))

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

總結(jié)

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

opt_design:Default

place_design:AtspeedLogic_high

phys_opt_design:Explore

route_design:NoTimingRelaxation

(unenable or ennable)phys_opt_design:Explore

在使用策略的時(shí)候可以先不用更改策略?xún)?nèi)的項(xiàng),用每個(gè)策略的默認(rèn)項(xiàng),待時(shí)序很差或者擁塞依舊不通過(guò)或者功能不正確時(shí),再考慮更改某些項(xiàng)。

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

不過(guò)這三個(gè)問(wèn)題在不改代碼的前提下,可以去通過(guò)更改策略解決。

審核編輯 :李倩


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

    關(guān)注

    9

    文章

    772

    瀏覽量

    84329
  • 擁塞
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    9452
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66523

原文標(biāo)題:解決Vivado implementation擁塞的策略方法

文章出處:【微信號(hào):Hack電子,微信公眾號(hào):Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    每次Vivado編譯的結(jié)果都一樣嗎

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

    Vivado使用小技巧

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

    Vivado 2024.1版本的新特性(2)

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

    Vivado 2024.1版本的新特性(1)

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

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

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

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

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

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    領(lǐng)域都有著廣泛的應(yīng)用。 Vivado自帶的FIR濾波器IP核已經(jīng)很好用,這里借FIR濾波器的設(shè)計(jì),介紹Simulink圖形設(shè)計(jì)編程方法。Simulink可以使設(shè)計(jì)更直觀,使硬件資源得到更為高效的利用
    發(fā)表于 04-17 17:29

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

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

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

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

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

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

    一文詳解DCQCN擁塞控制算法

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

    請(qǐng)問(wèn)TCP擁塞控制對(duì)數(shù)據(jù)延遲有何影響?

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

    如何禁止vivado自動(dòng)生成 bufg

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

    Vivado時(shí)序問(wèn)題分析

    有些時(shí)候在寫(xiě)完代碼之后呢,Vivado時(shí)序報(bào)紅,Timing一欄有很多時(shí)序問(wèn)題。
    的頭像 發(fā)表于 01-05 10:18 ?2159次閱讀