日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ICC_lab总结——ICC_lab2:设计规划

發(fā)布時(shí)間:2024/4/13 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ICC_lab总结——ICC_lab2:设计规划 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PS:字丑,禁止轉(zhuǎn)載!!!

首先先寫出大概的流程,然后是一些教材的理論知識(shí)總結(jié),最后是進(jìn)行l(wèi)ab2的一些流程概述。

教材的理論知識(shí)總結(jié)主要是:數(shù)字集成電路物理設(shè)計(jì)學(xué)習(xí)總結(jié)——布圖規(guī)劃和布局

-->數(shù)據(jù)準(zhǔn)備(設(shè)置)、加載設(shè)計(jì)并切換到floorplan模式

-->?創(chuàng)建拐角(Corner)和電源地(P/G)單元并定義他們pad的位置

-->創(chuàng)建floorplan

-->在電源/接地信號(hào)和I / O焊盤,宏和標(biāo)準(zhǔn)單元的所有電源/接地引腳之間建立“邏輯”連接

-->創(chuàng)建pad的電源環(huán),保存電源環(huán)創(chuàng)建后的設(shè)計(jì)

-->驗(yàn)證當(dāng)前虛擬平面放置策略選項(xiàng)是否具有默認(rèn)設(shè)置

-->設(shè)置sliver?的尺寸,防止標(biāo)準(zhǔn)單元放置在宏單元之間的狹窄通道

-->使用“無層次結(jié)構(gòu)重力”(選項(xiàng))來執(zhí)行 ?時(shí)序驅(qū)動(dòng)的虛擬平臺(tái)放置

-->進(jìn)行宏單元布局約束

-->檢查設(shè)置

-->所有宏單元周圍設(shè)置10微米的硬限制邊距

-->再次進(jìn)行宏單元布局,鎖定所有的宏,保存IO、宏單元布局規(guī)劃后的設(shè)計(jì)

-->在宏單元周圍創(chuàng)建P/G環(huán)

-->電源網(wǎng)絡(luò)綜合:對(duì)核心電源環(huán)、宏單元環(huán)、垂直以及水平環(huán)帶進(jìn)行約束、提交電源計(jì)劃、連接所有宏單元上的電源引腳,并創(chuàng)建標(biāo)準(zhǔn)單元電源軌道(power rail)、保存這一階段的設(shè)計(jì)

-->檢查時(shí)序

-->寫出DEF文件

-->為布局做準(zhǔn)備而創(chuàng)建第二遍(布局規(guī)劃)設(shè)計(jì)

?

?

?

?

上面是理論知識(shí),下面是lab實(shí)踐:

首先就進(jìn)行數(shù)據(jù)設(shè)置,數(shù)據(jù)建立(設(shè)置)之后,保存為orca_setup

數(shù)據(jù)設(shè)置的過程在lab2實(shí)驗(yàn)中是沒有詳細(xì)敘述的,也就是說只給出了數(shù)據(jù)建立的結(jié)果:orca_setup

本次workshop實(shí)驗(yàn)需要準(zhǔn)備/用到的數(shù)據(jù)為:

需要說明的是,圈圈的文件,在數(shù)據(jù)設(shè)置階段就已經(jīng)準(zhǔn)備好了,其他方框的則是本次實(shí)驗(yàn)需要準(zhǔn)備的。

下面就是正式過程了:

?

一、加載設(shè)計(jì)

啟動(dòng)ICC后,加載orca_setup這數(shù)據(jù)設(shè)置階段產(chǎn)生的階段設(shè)計(jì),然后執(zhí)行時(shí)序優(yōu)化的控制腳本:

source scripts/opt_ctrl.tcl

然后在layout窗口中切換到design planning模式下:

?File ?--> Task ?--->Design Planning

?

?

二、初始化平面圖(floorplan),也是創(chuàng)建布局規(guī)劃

1、創(chuàng)建拐角(Corner)和電源地(P/G)單元并定義他們pad的位置:

因?yàn)檫壿嬀C合的網(wǎng)表里面沒有上面的這些物理單元,我們需要自己創(chuàng)建,才能進(jìn)行放置他們的位置,創(chuàng)建只要執(zhí)行下面的腳本:

source?–echo scripts/pad_cell_cons.tcl

pad_cell_cons.tcl腳本里面的內(nèi)容主要是:

·創(chuàng)建Corners ?pad和power/group pads

·定義Corner pad?的位置

·定義signal pad?和?power pad的位置(主要是分為左邊、右邊、頂層和底層)

?

2、初始化floorplan

需要注意的是,icc2013.3以后(包括),初始化floorplan不能用initial_floorplan,而是用create_floorplan(也就是進(jìn)行布局規(guī)劃).

?

3、插入pad fillers,填充pad之間的間隙

執(zhí)行命令:

?source ?./scripts/insert_pad_filler.tcl

這個(gè)腳本文件主要定義要插入的filler cells

?

4、在電源/接地信號(hào)和I / O焊盤,宏和標(biāo)準(zhǔn)單元的所有電源/接地引腳之間建立“邏輯”連接(無物理布線),也就是執(zhí)行前面數(shù)據(jù)設(shè)置中沒有進(jìn)行的第6步:

source?–echo scripts/connect_pg.tcl

?

?

5、創(chuàng)建pad的電源環(huán):

create_pad_rings

???

6、保存電源環(huán)創(chuàng)建后的設(shè)計(jì)

save_mw_cel?–as ?floorplan_init

?

三、將連接到IOpad的宏單元進(jìn)行預(yù)布置(也就是布置好宏單元到核心區(qū))

這里可以通過手動(dòng),也可以用腳本進(jìn)行:

source?–echo scripts/preplace_macros.tcl

這個(gè)腳本就是進(jìn)行對(duì)三個(gè)宏單元的位置進(jìn)行規(guī)劃

?

四、執(zhí)行虛擬平面放置

1、驗(yàn)證當(dāng)前虛擬平面放置策略選項(xiàng)是否具有默認(rèn)設(shè)置:

report_fp_placement_strategy?(個(gè)人理解也就是查看各種放置默認(rèn)信息)

?

2、設(shè)置sliver?的尺寸,防止標(biāo)準(zhǔn)單元放置在宏單元之間的狹窄通道(sliver size <10)中:

set_fp_placement_strategy ???-sliver_size ??10

?

3、使用“無層次結(jié)構(gòu)重力”(選項(xiàng))來執(zhí)行 ?時(shí)序驅(qū)動(dòng)的虛擬平臺(tái)放置(以確保“邏輯層次結(jié)構(gòu)”不會(huì)影響此非層次結(jié)構(gòu)或平面布局的放置):

create_fp_placement?–timing_driven ?-no_hierarchy_gravity

?

上面的這個(gè)命令的效果就是把宏單元的位置放好(在核心區(qū)域上)

?

4、把一些宏轉(zhuǎn)換成數(shù)組,電源和接地帶和宏單元環(huán)的布線可以更容易。將宏單元置于盡可能接近芯片的邊緣,將宏盡可能多地組合在一起、打開虛擬IPO以模仿時(shí)序優(yōu)化(并防止不必要的布局優(yōu)化)、限制某些RAM的合法布局方向,上面的四個(gè)操作通過執(zhí)行腳本完成:(宏單元布局約束腳本)

source?–echo scripts/macro_place_cons.tcl

?

5、檢查設(shè)置:

report_fp_placement_strategy

report_fp_macro_options

?

6、 所有宏單元周圍設(shè)置10微米的硬限制邊距。 這樣容易在宏單元周圍創(chuàng)建P / G環(huán),并避免擁塞以及宏單元周圍的信號(hào)布線DRC錯(cuò)誤:

source -echo scripts/keepout.tcl

?

7、再次進(jìn)行宏單元布局:

create_fp_placement ??-timing_driven ??-no_hierarchy_gravity

可以進(jìn)行擁塞分析

?

8、鎖定所有的宏:

set_dont_touch_placement ??[all_macro_cells]

?

9、保存IO、宏單元布局規(guī)劃后的設(shè)計(jì):

save_mw_cel -as floorplan_placed

?

?

五、在宏單元周圍創(chuàng)建P/G環(huán)

P/G環(huán)的創(chuàng)建方式(或者依據(jù)內(nèi)容)主要有

·定義包含一組宏的粗略“區(qū)域”

·定義block ?ring ?layers,寬度和偏移量

·創(chuàng)建(提交)金屬布線

通過執(zhí)行腳本創(chuàng)建宏單元的P/G環(huán):

source ??./scripts/macro_pg_rir ngs.tcl

?

六、電源網(wǎng)絡(luò)綜合

1、對(duì)核心電源環(huán)、宏單元環(huán)、垂直以及水平環(huán)帶進(jìn)行約束

·電源帶約束

·對(duì)核心的電源帶約束

·為沒有電源環(huán)的PLL定義宏單元環(huán)

·進(jìn)行全局約束

執(zhí)行腳本:

scripts / pns.tcl

2、提交電源計(jì)劃:

commit_fp_rail

?

3、連接所有宏單元上的電源引腳,并創(chuàng)建標(biāo)準(zhǔn)單元電源軌道(power rail):

preroute_instances

preroute_standard_cells?–fill_empty_rows \

-remove_floating_pieces

?

創(chuàng)建完之后,可以進(jìn)行IR drop分析

?

4、保存這一階段的設(shè)計(jì)

save_mw_cel ??-as ??floorplan_pns

?

七、檢查時(shí)序

1、PNS在METAL4和METAL5上產(chǎn)生了許多電源帶,這些帶放在標(biāo)準(zhǔn)單元上。可以有利地防止標(biāo)簽單元放置在帶下?-?這降低了沿帶的擁塞的可能性,并且減少了對(duì)電源網(wǎng)絡(luò)的串?dāng)_影響。 在帶上應(yīng)用“完整”電源網(wǎng)(pnet)阻塞,然后再次運(yùn)行虛擬平面放置以考慮pnet設(shè)置:

set_pnet_options -complete "METAL4 METAL5"

create_fp_placement ?-timing_driven ?-no_hierarcI hy_gravity

?

2、通過執(zhí)行實(shí)際布線進(jìn)行檢查時(shí)序:

route_zrt_global

?

3、使用“view,查看”過程生成最大延遲(建立時(shí)間)時(shí)序報(bào)告(更新時(shí)序和生成報(bào)告需要幾秒鐘):

v report_timing

如果有時(shí)序違規(guī),則可以重新進(jìn)行優(yōu)化布線:

optimize_fp_timing?–fix_design_rule

?

4、保存設(shè)計(jì)

save_mw_cel -as floorplan_complete

?

八、寫出DEF文件

刪除所有放置的標(biāo)準(zhǔn)單元,然后以DEF格式寫出floorplan文件。這個(gè)DEF平面規(guī)劃文件將被Design Compiler Topographical ?使用來再次綜合;然后在ICC再次讀入再次綜合后的網(wǎng)表后,再用ICC進(jìn)行布局規(guī)劃:

下面是刪除所有放置的標(biāo)準(zhǔn)單元,然后以DEF格式寫出floorplan文件:

remove_placement -object_type standard_cell

?

?

九、為布局做準(zhǔn)備而創(chuàng)建第二遍(布局規(guī)劃)設(shè)計(jì)

假裝這個(gè)設(shè)計(jì)是從RTL代碼使用DC的拓?fù)淠J街匦戮C合的,重新綜合的過程使用上一步生成的DEF文件。這是我們得到第二遍網(wǎng)表ORCA_2.v以及更新后的約束文件ORCA_2.sdc。

1、使用新的ORCA網(wǎng)表和約束執(zhí)行數(shù)據(jù)設(shè)置:

source -echo scripts/2nd_pass_setup.tcl

這個(gè)腳本進(jìn)行了標(biāo)準(zhǔn)的數(shù)據(jù)設(shè)置準(zhǔn)備。

?

2、讀入上一個(gè)步驟寫出的def文件:

read_def design_data/ORCA.def

?

3、新應(yīng)用的電源網(wǎng)絡(luò)合成后應(yīng)用的pnet選項(xiàng)。這些設(shè)置不在DEF文件中定義:

set_pnet_options -complete "METAL4 METAL5"

4、將設(shè)計(jì)保存為ready_for_placement:

save_mw_cel ??-as ??ready_for_placement

?

ICC的設(shè)計(jì)規(guī)劃實(shí)驗(yàn)大概流程就是這樣了,其中主要跑腳本,腳本的內(nèi)容才是設(shè)計(jì)規(guī)劃的內(nèi)容,要把腳本的內(nèi)容參透才真正把這個(gè)實(shí)驗(yàn)的內(nèi)容參透。時(shí)間問題,這里就不仔細(xì)去看了,主要學(xué)習(xí)流程.

-->數(shù)據(jù)準(zhǔn)備(設(shè)置)、加載設(shè)計(jì)并切換到floorplan模式

-->?創(chuàng)建拐角(Corner)和電源地(P/G)單元并定義他們pad的位置

-->創(chuàng)建floorplan

-->在電源/接地信號(hào)和I / O焊盤,宏和標(biāo)準(zhǔn)單元的所有電源/接地引腳之間建立“邏輯”連接

-->創(chuàng)建pad的電源環(huán),保存電源環(huán)創(chuàng)建后的設(shè)計(jì)

-->驗(yàn)證當(dāng)前虛擬平面放置策略選項(xiàng)是否具有默認(rèn)設(shè)置

-->設(shè)置sliver?的尺寸,防止標(biāo)準(zhǔn)單元放置在宏單元之間的狹窄通道

-->使用“無層次結(jié)構(gòu)重力”(選項(xiàng))來執(zhí)行 ?時(shí)序驅(qū)動(dòng)的虛擬平臺(tái)放置

-->進(jìn)行宏單元布局約束

-->檢查設(shè)置

-->所有宏單元周圍設(shè)置10微米的硬限制邊距

-->再次進(jìn)行宏單元布局,鎖定所有的宏,保存IO、宏單元布局規(guī)劃后的設(shè)計(jì)

-->在宏單元周圍創(chuàng)建P/G環(huán)

-->電源網(wǎng)絡(luò)綜合:對(duì)核心電源環(huán)、宏單元環(huán)、垂直以及水平環(huán)帶進(jìn)行約束、提交電源計(jì)劃、連接所有宏單元上的電源引腳,并創(chuàng)建標(biāo)準(zhǔn)單元電源軌道(power rail)、保存這一階段的設(shè)計(jì)

-->檢查時(shí)序

-->寫出DEF文件

-->為布局做準(zhǔn)備而創(chuàng)建第二遍(布局規(guī)劃)設(shè)計(jì)

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/IClearner/p/6597498.html

總結(jié)

以上是生活随笔為你收集整理的ICC_lab总结——ICC_lab2:设计规划的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。