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

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

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

Congestion修復(fù)實例及腳本分享-加Blockage array/keepout margin

jf_tpHP8OJR ? 來源:集成電路設(shè)計及EDA教程 ? 2023-01-31 17:17 ? 次閱讀

分享一個Congestion的示例與解決這個Congestion用的2種方法以及對應(yīng)的效果。

下面的一個Design有一個Macro的pin density非常高,有高達1萬個Pin,每層都有出Pin,且Pin基本上都是一個Track放一個,因此在它周圍非常容易產(chǎn)生Congestion問題。

什么控制都不加,默認Place的Cell分布以及Congestion挺好的:

33a3b7f8-973d-11ed-bfe3-dac502259ad0.png

Place congestion:

33d2719c-973d-11ed-bfe3-dac502259ad0.png

可是到了CTS之后發(fā)現(xiàn)Cell的擺放有很大的變化,Cell全部堆在了靠近Macro出pin的地方:

33f2cd8e-973d-11ed-bfe3-dac502259ad0.png

局部放大圖(可以看到很多Buffer/inverter),density非常高:

341917dc-973d-11ed-bfe3-dac502259ad0.png

CTS階段的congestion也變差很多:

344718ee-973d-11ed-bfe3-dac502259ad0.png

這個是對應(yīng)的cell density分布圖:

34a90c34-973d-11ed-bfe3-dac502259ad0.png

嘗試了2種解決方案,都是有效的,這里分享一下兩種方法以及對應(yīng)的腳本。

方案1:加Hard placement blockage array

方案1: 在Place之前,在Macro周圍要出Pin的地方創(chuàng)建Hard placement blockage array:

34f5dfe6-973d-11ed-bfe3-dac502259ad0.png

對應(yīng)的tcl腳本:

setsite_height [get_attribute [get_core_area] tile_height]

setsite_width [get_attribute [get_core_area] tile_width]



create_placement_blockage_array -coordinate "$core_llx$core_lly$core_urx[expr $core_lly+2000]"-method checker -spacing 10 -height $site_height-width 4 -typehard -snap litho -prefix checkerboard_blkg



setALL_bbox [get_attribute [get_cells xxx/u_ra_m/u_sim_rram_multix4] bbox]



# remove placement blockage overlapped with analog macro

remove_placement_blockage [get_placement_blockage -within "$ALL_bbox"]

創(chuàng)建Hard placement blockage array的tcl proc分享

方案1的結(jié)果:

CTS之后可以看到Cell的分布散開了挺多,但是彼此之間還是有點擁擠的:

352e47be-973d-11ed-bfe3-dac502259ad0.png

CTS的congestion改善非常多,除了局部有黃色的Congestion(overflow=6的1個,overflow=5的33個)之外其他地方都是可以接受的,如果把blockage的間距和尺寸再減小一點的話會改善更多。

3547f24a-973d-11ed-bfe3-dac502259ad0.png

方案2: 加Keepout margin

由于方案1的Cell在hard placement blockage之間的Cell擁擠程度還是蠻高的,所以想到了方案2:在Place之后給Macro周圍的Cell加Keepout margin,然后做優(yōu)化,CTS的時候也會避免把它們靠的太近。

對應(yīng)的腳本見知識星球

方案2的結(jié)果:

CTS之后的Congestion結(jié)果:

355f80cc-973d-11ed-bfe3-dac502259ad0.png

可以看到Congestion已經(jīng)有了很大的改善,這種已經(jīng)可以接受了。

對應(yīng)Cell density的分布:

35af7e1a-973d-11ed-bfe3-dac502259ad0.png

在Macro周圍Cell的分布,可以看到Cell分布的非常均勻:

35c1ad74-973d-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    18

    瀏覽量

    17323
  • design
    +關(guān)注

    關(guān)注

    0

    文章

    154

    瀏覽量

    45644
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    382

    瀏覽量

    14761
  • CTS
    CTS
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    13970

原文標題:Congestion修復(fù)實例及腳本分享 - 加Blockage array/keepout margin

文章出處:【微信號:集成電路設(shè)計及EDA教程,微信公眾號:集成電路設(shè)計及EDA教程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    linux shell腳本分

    今天浩道跟大家分享shell腳本硬核干貨,可以說是拿來即用序列!
    發(fā)表于 02-17 09:13 ?365次閱讀

    Linux shell腳本分

    今天浩道跟大家分享幾個Linux運維中常用到的shell腳本!
    發(fā)表于 07-18 09:53 ?522次閱讀
    Linux shell<b class='flag-5'>腳本分</b>享

    實例中教你修復(fù)晶振

      晶振損壞了,很多人苦于不知如何修復(fù),今天我們就在實例中教你修復(fù)損壞的晶振?! ?b class='flag-5'>實例一  一片經(jīng)過測試員多次放回的主板,故障原因定為不開機。后經(jīng)確認,該板開機不穩(wěn)定,大部分時間能開機
    發(fā)表于 03-24 15:52

    全面介紹充滿魔性的Placement

    上,在這個光圈內(nèi)的區(qū)域不能放置其他單元。當幾個Macro之間有congestion問題時,可以添加一些Keepout Margin,阻礙buffer, inverter的插入。4)Cell
    發(fā)表于 01-17 16:49

    ad2013 logo腳本分享!

    貌似現(xiàn)在ad2013里面沒有l(wèi)ogo的運行腳本,所以得自己添加一個運行腳本,這樣后就能想ad9那樣添加做圖標咯。實際上這個運行腳本就是ad9里面拷貝過來的,不過添加到13里面是可以用的,下載后將其
    發(fā)表于 08-20 01:54

    求分享NodeMcu Lua腳本實例

    求分享NodeMcu Lua腳本實例
    發(fā)表于 04-28 08:07

    Design Complexity、congestion、Timing

    隨著FPGA規(guī)模越來越大,設(shè)計本身的復(fù)雜度也同樣增加。Xilinx UFDM中也經(jīng)常提到了Design Complexity這樣一個概念。Timing/Complexity/congestion
    發(fā)表于 02-08 05:46 ?3827次閱讀
    Design Complexity、<b class='flag-5'>congestion</b>、Timing

    數(shù)字后端基本概念介紹——Placement Blockage的9中人為約束

    congestion的問題,提高routing的效率。 Placement blockage的類型很多,一共分為9種,分別對應(yīng)hard, hard_macro, soft, partial
    的頭像 發(fā)表于 01-02 09:52 ?9930次閱讀

    VBS腳本實例之一鍵升級哨位臺核心板和底板程序腳本的資料說明

    本文檔的主要內(nèi)容詳細介紹的是VBS腳本實例之一鍵升級哨位臺核心板和底板程序腳本的資料說明免費下載。
    發(fā)表于 05-07 18:22 ?0次下載
    VBS<b class='flag-5'>腳本</b><b class='flag-5'>實例</b>之一鍵升級哨位臺核心板和底板程序<b class='flag-5'>腳本</b>的資料說明

    如何使用符號執(zhí)行的python實現(xiàn)攻擊腳本分析平臺

    傳統(tǒng)的靜態(tài)分析方法大多不能準確處理腳本與網(wǎng)絡(luò)交互的過程,且會引入不可達路徑,動態(tài)分析則需要搭建實驗環(huán)境和手工分析。針對上述問題,提出一種基于符號執(zhí)行的Python攻擊腳本分析平臺PyExZ3+。通過
    發(fā)表于 07-16 15:50 ?11次下載
    如何使用符號執(zhí)行的python實現(xiàn)攻擊<b class='flag-5'>腳本分</b>析平臺

    JavaScript常用檢測腳本實例代碼免費下載

    本文檔的主要內(nèi)容詳細介紹的是JavaScript常用檢測腳本實例代碼免費下載。
    發(fā)表于 02-03 17:02 ?6次下載

    109個實用shell腳本分

    Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執(zhí)行這些功能,也可以說Shell腳本就是一系列命令的集合。
    的頭像 發(fā)表于 03-16 08:58 ?2484次閱讀

    產(chǎn)生Congestion的主要原因

    Congestion也分為幾種情況,和前端密切相關(guān)的是Logic Congestion(更多關(guān)于后端Congetsion問題,查看文末參考文章),主要原因是RTL設(shè)計問題導(dǎo)致,這種問題的現(xiàn)象從后端看上去就是Cell數(shù)沒多少,就是線密。
    的頭像 發(fā)表于 08-18 10:57 ?1822次閱讀

    5個shell腳本實例分享

    今天浩道跟大家分享這兩天對實習(xí)生階段考核時給他布置的5道shell腳本題目,雖然花了兩天時間調(diào)試完成,但是質(zhì)量還是不錯的,決定雞腿,順便分享給大家看看!
    的頭像 發(fā)表于 12-29 15:34 ?622次閱讀

    PR工具中blockage的定義、分類及其作用

    Blockage是PR工具中的一個重要概念,我今天就簡單說一下它是什么,以及它的分類、作用,再說一下類似blockage的一些概念。
    的頭像 發(fā)表于 12-06 16:01 ?661次閱讀