DC~PT~FM~ICC學(xué)習(xí)筆記(注釋)_第1頁(yè)
DC~PT~FM~ICC學(xué)習(xí)筆記(注釋)_第2頁(yè)
DC~PT~FM~ICC學(xué)習(xí)筆記(注釋)_第3頁(yè)
DC~PT~FM~ICC學(xué)習(xí)筆記(注釋)_第4頁(yè)
DC~PT~FM~ICC學(xué)習(xí)筆記(注釋)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

BackendStudyNotes

DC綜合學(xué)習(xí)筆記-1-

一、verilog編寫(xiě)-1-

二、DC綜合注意的地方-2-

1.在同一個(gè)電路中不能同時(shí)含有觸發(fā)器和鎖存器兩種電路單元。-2-

2.在電路中不能出現(xiàn)有反應(yīng)的組合邏輯。-2-

3.不能出現(xiàn)用一個(gè)觸發(fā)器的輸出作為另一個(gè)觸發(fā)器的時(shí)鐘。-2-

4.異步邏輯和模擬電路要單獨(dú)處理。-2-

5使用的單元電路沒(méi)有映射到工藝庫(kù)中。-2-

三、DC綜合名詞解釋及腳本-2-

1.名詞解釋-2-

2環(huán)境腳本說(shuō)明-3-

3.約束腳本說(shuō)明-4-

4.查看報(bào)告命令-5-

一些綜合經(jīng)歷-6-

附錄-7-

1.DC的啟動(dòng)腳本-7-

2.組合電路優(yōu)化腳本-8-

3.時(shí)序電路優(yōu)化腳本-9-

PTSTA學(xué)習(xí)筆記-11-

一、一些注意的地方-11-

二、常用的腳本-12-

附錄-13-

時(shí)序分析范例-13-

分析腳本(worst)-13-

分析腳本(best)-15-

Formality學(xué)習(xí)筆記-16-

腳本范例-16-

Encounter學(xué)習(xí)比擬-17-

一、理論-17-

ls布圖-17-

1.1、I/O單元-17-

12層次化設(shè)計(jì)-17-

2、布局-18-

2.1、電源規(guī)劃-18-

2.2、標(biāo)準(zhǔn)單元和模塊的放置-19-

3、CTS-20-

4、布線-21-

二、腳本運(yùn)用-21-

三、需要抽取和保存的文件-23-

ICC學(xué)習(xí)筆記-23-

一、ICC根本流程-23-

二、文件準(zhǔn)備-23-

三、腳本運(yùn)用-24-

附錄:腳本范例-24-

啟動(dòng)腳本范例-24-

Floorplan腳本范例-25-

無(wú)PAD腳本-25-

有PAD腳本-26-

Placement腳本范例-28-

CTS腳本范例-28-

Route腳本范例-29-

文件導(dǎo)出范例-30-

ECO腳本范例-30-

VCS學(xué)習(xí)筆記-33-

DFT學(xué)習(xí)筆記-33-

Tel語(yǔ)言學(xué)習(xí)筆記-33-4

Perl語(yǔ)言學(xué)習(xí)筆記-33-

時(shí)序?qū)W習(xí)筆記-33-

1、根本概念-33-

2、ON-ChipVariations(OCV)-37-

3、時(shí)間借用(TimeBorrowingorcyclestealing)-39-

4、DatatoDataCheck-40-

其他學(xué)習(xí)筆記-41-

一、低功耗學(xué)習(xí)筆記-41-

1.ClockGate-41-

二、信號(hào)完整性分析-42-

名詞解釋-42-

后端工程師具備的能力-43-

附錄-43-

DC綜合學(xué)習(xí)筆記

一、verilog編寫(xiě)

在使用if語(yǔ)句的時(shí)候,一定得把條件寫(xiě)全,不然會(huì)綜合出鎖存器。一個(gè)if語(yǔ)句只能跟一個(gè)

表達(dá)式。如果一個(gè)電路中出現(xiàn)兩種時(shí)序電路構(gòu)造(鎖存器和觸發(fā)器),會(huì)增加電路的測(cè)試難度。

If語(yǔ)句對(duì)應(yīng)的是選擇器。開(kāi)語(yǔ)句隱含這優(yōu)先級(jí)別,這和case語(yǔ)句不同。

Case和If語(yǔ)句一樣,都是用于選擇輸出的,但是case語(yǔ)句隱含的是平行的電路構(gòu)造。當(dāng)

case語(yǔ)句的條件沒(méi)有完全譯碼時(shí),會(huì)引起具有優(yōu)先級(jí)的電路構(gòu)造。

在使用always語(yǔ)句描述組合電路時(shí),在該語(yǔ)句中讀入的所有變量都需要出現(xiàn)在事件列表

中,否那么可能會(huì)得不到期望的結(jié)果。[//synopsysfull_caseparallel_case,如果case語(yǔ)句

不寫(xiě)全可以加這個(gè)keyword]

在使用aIways語(yǔ)句描述時(shí)序電路的時(shí)候,都會(huì)引用觸發(fā)器,使用“<="來(lái)對(duì)變量賦值,

這種賦值叫做非阻塞賦值(相當(dāng)是順序語(yǔ)句,得前一句賦值完后才執(zhí)行下一句,如果是觸發(fā)器

的話,向后延時(shí)一個(gè)時(shí)鐘周期)。

在verilog語(yǔ)言中,一個(gè)reg類型的數(shù)據(jù)是被解釋成無(wú)符號(hào)數(shù),integer類型的數(shù)據(jù)是被解釋成

二進(jìn)制補(bǔ)碼的有符號(hào)數(shù),而且最右邊是有符號(hào)數(shù)的最低位。

keyword—//synopsys

//synopsysasync_set_reset"reset"

e.g.:moduleSP2reset/SP2IBl,IB12SBSPen,

SP2IBlen);

inputSPen,SP2IBlen,reset;

input[2:0]IB12SP;

output[2:0]SP2IB1;

reg[2:0]sp;

//synopsysasync_set_reset"reset"〃加這句說(shuō)明和不加這句說(shuō)明綜合結(jié)果是不一樣的,最好是加上這么一句

always@(SPenorIB12SPorreset)

begin

if(reset)

sp=07;

elseif(SPen)

sp=IB12SP;

end

assignSP2IB1=(SP2IBlen?sp:'bz);

endmodule

二、DC綜合注意的地方

1.在同一個(gè)電路中不能同時(shí)含有觸發(fā)器和鎖存器兩種電路單元。

2.在電路中不能出現(xiàn)有反應(yīng)的組合邏輯。

3.不能出現(xiàn)用一個(gè)觸發(fā)器的輸出作為另一個(gè)觸發(fā)器的時(shí)鐘。

4.異步邏輯和模擬電路要單獨(dú)處理。

5.使用的單元電路沒(méi)有映射到工藝庫(kù)中。

三、DC綜合名詞解釋及腳本

L名詞解釋

link_library設(shè)置單元或模塊的引用。前面必須包含土,表示DC在引用實(shí)例化模塊時(shí)

首先搜索已經(jīng)調(diào)進(jìn)DCmemory的模塊。link_library{"*"slow.db}

target_library為最終要映射的庫(kù)。

syntheticjibrary的庫(kù)在初始化DC的時(shí)候,不需要設(shè)置標(biāo)準(zhǔn)的DesignWare庫(kù)

standard.sldb用于實(shí)現(xiàn)Verilog描述的運(yùn)算符,對(duì)于擴(kuò)展的DesignWare,需要在

syntheticjibrary中設(shè)置,同時(shí)需要在link」ibrary中設(shè)置相應(yīng)的庫(kù)以使得在鏈接的時(shí)候

DC可以搜索到相應(yīng)運(yùn)算符的實(shí)現(xiàn)。

路徑的劃分:DC綜合及優(yōu)化都是基于路徑的,路徑的劃分為:路徑的起點(diǎn)為輸入端

或者觸發(fā)器的時(shí)鐘端;路徑的終點(diǎn)為輸出端或觸發(fā)器的數(shù)據(jù)端。

2.環(huán)境腳本說(shuō)明

set_operating_conditions[-minmin_condition][-maxmax-condition]

[-minjibraryminjib][-maxmaxjib]指定DC優(yōu)化時(shí)使用的工作壞境,其中工作

壞境的指定必須在庫(kù)中指定,或者在linkjbrary中的其中一個(gè)庫(kù)中指定,如果不指定

工作壞境,DC會(huì)自動(dòng)搜索link」ibrary中的第一個(gè)庫(kù)的工作壞境最為優(yōu)化是所使用的

工作壞境。使用get_attributelibnamedefault.operating_conditions來(lái)看工作壞

境。

-max的選項(xiàng)用于指定電路最大延遲分析〔分析電路是否滿足觸發(fā)器建立時(shí)間setup

time的要求〕的工作環(huán)境

-min的選項(xiàng)用于指定電路最小延遲分析〔分析電路是否滿足觸發(fā)器保持時(shí)間hold

time的要求〕的工作環(huán)境,該選項(xiàng)不能單獨(dú)使用,必須與-max同時(shí)使用。

如果不指定用于分析最小延遲的庫(kù),那么只使用-max中指定的庫(kù)用于電路的延遲分

析。

-minjibrary的選項(xiàng)指定用于電路最大延遲分析的工藝庫(kù)。

-maxjibrary的選項(xiàng)指定用于電路最小延遲分析的工藝庫(kù)。

e.g.set_operating_conditions-maxtypical_lv2c25

set_wire_load_model-namesmicl3_wl20

set_wire_load_modetop(這個(gè)是設(shè)置模塊之間的線負(fù)載,在編譯后可用)

set_drive默認(rèn)值為0表示驅(qū)動(dòng)能力無(wú)限大(表示電阻值)set_drive0{elk,rest)

set_driving_cell用一個(gè)具體的電路來(lái)模擬輸入延時(shí)set_driving_cell-lib_cellBUFX2{a,b}

在電路的優(yōu)化階段,輸入端口的驅(qū)動(dòng)能力用于計(jì)算輸入端口到門(mén)電路的延遲,一般來(lái)說(shuō),輸入端

口的驅(qū)動(dòng)能力可以按照以下公式影響延遲:

Time=arrive_time+drive*net_load+connect_delay

set_driving_cell-lib_cellBUFX2-librarytypical_lv2c25[all_inputs]所有的輸入端口

(portload=2.5+3*Ioad_of(tech_lib/IV/A)

set_loadport_loadall_outputs())一起用的命令

3.約束腳本說(shuō)明

set_max_capacitance用于設(shè)置輸出單元允許的最大電容負(fù)載set_max_capacitance2.0

test-設(shè)置設(shè)計(jì)test的最大電容負(fù)載是2.0

set_max_capacitance2.0a--設(shè)置端口a的最大電容負(fù)載是2.0

set_max_transition是指電壓從10%VDD上升到90%VDD所需要的時(shí)間(或下降),這個(gè)值長(zhǎng)表示電路速度

慢。用法同上。

set_max_fanout語(yǔ)法同上。

(create_clock-period1-nameelk[get_portselk]-wareform{00.5}周期為Ins的方波。

set_clock_uncertainty0.3[get_clocksclk](時(shí)鐘的偏移))

)不對(duì)其端口綜合。

set_dont_touch_network{restzclk,clr

set_dont_touch不進(jìn)展優(yōu)化的模塊、端口??梢杂胹et_dont_touch口false來(lái)取消前面的設(shè)

置。

set_input_delay2.3{ab}(組合電路)set_input_delay2.3-clock[get_clockselk]

[aIl_inputs](時(shí)序電路)

set_output_delay語(yǔ)法同上。

set_max_area0

(set_max_delay5-fromaset_min_delay2-froma)用于完全組合電路。

set_dont_use{typical_lv2c25/1*}表示不調(diào)用以I開(kāi)頭的cell。

create_clock-nameelk-period2這是設(shè)置的虛擬時(shí)鐘用于組合電路。

dcprocheckrun.tcl檢查synopsystel腳本命令。

setjoad[expr[load_ofmy_lib/invlaO/A]*3][get_portsoutl]輸出端口outl并歹I」驅(qū)動(dòng)三

個(gè)inv的A

set_driving_cell-lib_cellBUFX2-pinY[get_portsoutl]如果沒(méi)有說(shuō)pin那么默認(rèn)為celI的輸出pin

report_timing-delaymax|minmax看setup;min看hold的

4.查看報(bào)告命令

查看用了那些查看每個(gè)用的功耗

report_cellcelloreport_power-netcell

查看的、、

report_netcellfanoutfanincapacitancesresistance.

setverilogout_show_unconnected_pinstrue設(shè)置在.synopsys_dc.setup里面,主要是為了輸入編譯

后的的沒(méi)有用到的

verilogcellpino

report_port返回所有加在輸入輸出端口的約束條件。

reset_design刪除當(dāng)前所有屬性和約束。

remove_input_delay刪除input_delay設(shè)定的延時(shí)。

remove_design刪除當(dāng)前設(shè)計(jì).

report_path_group報(bào)告當(dāng)前設(shè)計(jì)中個(gè)路徑組的信息。

group_path-namecombo-from[alljnputs]-to[all_outputs]設(shè)定一^關(guān)鍵路徑。

set_critical_range2[current_design]這樣設(shè)置將會(huì)使相對(duì)于關(guān)鍵路徑2ns范圍內(nèi)的路徑群

都進(jìn)展優(yōu)化。

group_path-nameclkl-critical_range0.3對(duì)于路徑組的關(guān)鍵范圍可以使用參數(shù)來(lái)指定。

set_dont_use{typical/*)表示不用typical這個(gè)庫(kù)。

一些綜合經(jīng)歷

set_clock_uncertainy-setup0.5-hold0.25[get_clocksCLK]在布圖前和后階段都指定一定的余量,

這樣可使芯片少受制造工藝偏差的影響。

set_max_delay5-from[alljnputs]-to[all_outputs]主要用在組合電路上

set_generated_clocknameckll-sourceCLK-divide_by2生成源CLK時(shí)鐘的2分頻

只有當(dāng)通過(guò)編譯達(dá)不到目標(biāo)時(shí),才使用

compile-map_efforthigh0

時(shí)鐘樹(shù)的綜合除了使用set_dont_touch_networt外還可有先用report_net查看高扇出的線

網(wǎng)再使用balance_buffer命令點(diǎn)對(duì)點(diǎn)對(duì)其進(jìn)展緩沖,或者用compile-in_place進(jìn)展原地優(yōu)化

(IP0),并將compile_ok_to_buffer_during_inplace_opt開(kāi)關(guān)設(shè)為false.

report_transitive_fanout-dock_tree(-fromreset)檢查無(wú)意識(shí)的時(shí)鐘門(mén)控(復(fù)位)

read_sdf*.sdf讀入延遲文件

read_parasitics*.pef讀入RC文件(spf)

使用迫使在適當(dāng)?shù)奈恢貌迦?/p>

disconnect_netcreate_cellconnect_netDCcello

在布圖后將不用設(shè)置set_wire_load_model和set_wire_load_mode用實(shí)際的延遲和電容電

阻代替了;也不用設(shè)置set_clock_latancy和set_clock_transition用具體時(shí)鐘樹(shù)代替(使用

set_propagated_clock[get_clocksCLK])

report_timing-from[alljnput]-to[all_registers-data_pins]

如果綜合完發(fā)現(xiàn)不能使用write命令來(lái)寫(xiě)verilog而出現(xiàn)assign報(bào)錯(cuò)提示那么可以使用:

set_fix_multiple_port_nets-all來(lái)解決這個(gè)問(wèn)題。

附錄

1.DC的啟動(dòng)腳本

#####################################################

##desetupfile##

#####################################################

setsearch_path[list../core./verlog./script]

setlinkjibrary{*typical_lv2c25.db}

settargetjibrary{typical_lv2c25.db}

setsymboljibrary"yourjibrary.sdb"

setsynthetiejibrary""

read_file-formatverilog./verilog/cntlO.v

current_designcntlO

setverilogout_show_unconnected_pinstrue

aliasrp"report_power"

aliasrt"report_timing"

aliasra"report_area"

aliasrc"report_constraint-all_violators"

aliash"history"

2.組合電路優(yōu)化腳本

link

set_operating_conditionstypical_lv2c25

set_wire_load_model-namesmicl3_wll0

set_wire_load_modetop

set_drive_cell-lib_cellBUFX2[alljnputs]

set_max_capacitance2.0test

set_max_capacitance18test

set_max_fanout15test

set_input_delay2.0[alljnputs]

set_output_delay1.5[all_outputs]

set_max_area0

set_max_delay2.0-froma

set_max_delay1.0-froma

setjoad1{s,co}

#set_drive0reset

uniquify

compile

rp>>./reports/power.rpt

ra>>./reports/area.rpt

rt>>./reports/timing.rpt

rc>>./reports/constraint.rpt

write-formatverilog-hierarchy-output./outputs/adder.v

write-formatddc-hierarchy-o./outputs/adder.ddc

write_sdf./outputs/adder.sdf

write_sdc./outputs/adder.sdc

3.時(shí)序電路優(yōu)化腳本

link

create_clockelk-period5-waveform{02.5}

set_dont_touch_network[get_clockselk]

set_fix_hold[get_clockselk]

set_clock_uncertainly0.2[get_clockselk]

set_clock_latency-source0[get_clockselk]

set_clock_latency1[get_clockselk]

set_input_transition0.3[alljnputs]#ifyouwantdontafixvalue,useset_driving_cell

set_clock_transition0.3[all_clocks]

set_operating_conditions-minjibraryfast_lv32c0-minfast_lv32c0-maxjibrary

slowlv08cl25-maxslowlv08cl25

】d」qu!叫suco/Modaj/,<<a

idj-BuiiuiVlJodaj/-<<1」

idieaie/ijodai/'<<ej

]d」」3Mod/i」od3」/,<<dj

uoiieziiuijdo-Xjepunoq-e|idiuoD

Xjinbiun

[sinduPne]£-Quo^sue」廠xeuOas

[sinduPne]乙jnouej.-xeiu-ies

0eQje-xeiu-ies

{ap'Hsaj}oaAup-jes#

[sindino-||e]*>pop-10uiiu-Xe|ap-indino-j9S

[sjndino"||e]>ip>pop-lxeiu-Xe|ep-indino-ias

[sinduFne]不力叩-乙0UIUJ-Xe|ap_induri9s

[sinduF||e]>|P>pop-lxeiu-福?叩一)ndu「13s

[sjndino-||e][“"加:1”0乙。80八6。0,p-peo|]peopjas

[[>|psjjocTjeB]

[sjndur||e]uo!pe||OD_ujO4_0AOUjaj]LO/TXzHCl/S乙。80八工一州。同)o-eAup]aAup-jes

[MPsuod^sB][,A/乙XzIDg/S80ATMO|S.p-SAup]SAIJP^SS

___

..SIDiius,,Ajejq!|-11000000resje3DU3Jspj11peo|3JiMjss

do】spouj—peo「叫/vQss

/v\o|sXjejqi|-01|AA-£TD!UJSemeu-|epoiu_peo|-9J!/v\"ies

write-formatverilog-hierarchy-output./outputs/.v

write-formatddc-hierarchy-o./outputs/.ddc

write_sdf./outputs/.sdf

write_sdc./outputs/.sdc

PTSTA學(xué)習(xí)筆記

一、一些注意的地方

report_transitive_fanout-clock_tree報(bào)告出的"unknown*的clocknetwork可能計(jì)算出錯(cuò)誤的

延遲,report’eference查看cell的屬性也可看使用了多少register。當(dāng)出現(xiàn)這樣的問(wèn)題我們可以使

用Stamp模型來(lái)解決或者使用virtualclock旁通clkbuf

(create_clock-nameVCLK-p2-w{01}find(pin,U49/NQ)

set_clock_latancy0.2-sourceVCLK

setdeal_netfind(net,VCLK))o

在時(shí)序分析中,經(jīng)常會(huì)檢查setup/hold、removal/recovery和minpulsewidth.,然而有些會(huì)是

這使用

untested0report_analysis_coverage-status_details{untested}-sort_byslack

-check_type{setup|hold}去查看。報(bào)告結(jié)果可能會(huì)出現(xiàn)"no_clock",找到原因。一般是時(shí)鐘沒(méi)有

到達(dá),或者case_analysis分析;上面修復(fù)后會(huì)有一局部hold也修復(fù)了這是因?yàn)閞egister的elk沒(méi)有

clock。然后還有一局部hold是untested可能會(huì)是對(duì)input/output沒(méi)有min_delay的約束。報(bào)告

結(jié)果可能會(huì)出現(xiàn)"no_paths/z,這意味著endpoints沒(méi)有約束。這可能是設(shè)置了set_false_path或

者set_multicycle_path的原因先使用report_timing查看。

二.常用的腳本

report_analysis_converage查看設(shè)計(jì)所有的setup.hold等情況的比例

sw叩_cell<celllisttobereplaced><newdesign>用這個(gè)命令去用一樣的cell去代替,這個(gè)代替只

是虛擬代替。如果設(shè)計(jì)符合要求了,還得手動(dòng)去修改

netlistso

set_disable_timing制止個(gè)別單元的時(shí)序弧有用。

有些違例路徑共享的共同的葉單元的能力。這稱為瓶頸分析且通過(guò)使用命令report_bottleneck來(lái)進(jìn)

展查看。

如果一個(gè)時(shí)鐘延遲是3±0.5那么指令為

create_clock-period10[get_portsCLK]

set_clock_latency2.5-source-early[get_clocksCLK]

set_clock_latency3.5-source-late[get_clocksCLK]這個(gè)指令只能是sourceclock

set_min_pulse_width-high1.5[all_clocks]

set_min_pulse_width-low1.0[all_clocks]

report_min_pulse_width這個(gè)主要是在有時(shí)鐘門(mén)控的時(shí)候

set_clock_gating_check-setup0.5-hold0.4[get_clocksCLK]

report_clock_gating_check

set_disable_clock_gating_checktodisablespecificclockgatingchecksinadesign

report_exceptions-ignored

checkjiming當(dāng)設(shè)置了時(shí)序例外后我們檢查是不是有用了用

set_case_analysis0(oredge(rising))[get_portssei]一般用于選擇器

report_case_analysisremove_case_analysis[get_portssei]

report_delay_calculation-fromUl/A-toUl/Z用于計(jì)算cell或net的時(shí)序弧

當(dāng)使用read_sdf讀入延遲文件時(shí)報(bào)沒(méi)有某端口時(shí)序弧錯(cuò)時(shí)使用read_sdf-path和read_sdf

-strip_path檢查,以及report_annotated_delay-list_not_annotated查看。

檢查所有的類型,像和

drive_clocksclockgatedclocksinternalgenerateddockmuxedclockso

然后用

report_clocko

附錄

時(shí)序分析范例

pt_shell>report_timing-pathfull_clock

PointIncrPath

clockelk(riseedge)0.000.00

clocksourcelatency0.000.00

clk(in)0.000.00

S_2/Z(BUF2)0.40*0.40f

A_reg[l]/CP(FD1)0.02*0.42

A_reg[l]/Q(FD1)0.12*0.54f

result_reg[0]/D(FD1)0.001.96r

dataarrivaltime1.96

clockelk(riseedge)4.004.00

elk(in)0.000.00r

S_l/Z(BUF1)1.06*5.06r

result_reg[0]/CP(FD1)0.01*5.07r

librarysetuptime-0.80*4.27

datarequiredtime4.27

從紅色標(biāo)記看出clockskew(uncertainy)是1.07-0.42

分析腳本(worst)

read_verilog./verilog/pr_cntl0.v

current_designcntlO.v

set_operating_conditionsslow_lv08cl25

sjoie|oiA-||e-曾!叫sucDRods」

[sjnduF||e]乙uopisue」「xeuFgs

[sjnduTne]g】nou呼xeuOos

0eejexeiu13s

{>[p'HS3」}oaAup-ies

[sjn力廿|但]>|p>pop_10UILU-Xe|ap_indino-i9s

[sjndino-||e]>|p>|Dop-O'lxeiu-Xe|ap-jndino-jes

[sjnduF||e]>|p>pop-乙0uim-Xe|ap-jnduries

[sjnduF||e]>|p>pop-0,1xeiu-Xe|ap-jnduries

[sjndurne]乙ouoii!sueji.-jndurjes

[sindino"||e]LA/乙XANI/G乙。80八1一根。Ejo-peo|]peopas

[[>IPsjjod-ie6]

[sinduF||e]uo!pe||OD_iuo4_aAOiuaj]["人/TXANI/S乙TP80A1—MO|S”jo-aAup]aAup^as

[>ipsjjod-i96]匕人/工XANI/S乙T。80AT—MO|S”p"0Aup]aAup-jes

||aD-6u!Aup-iasasn^nieAXIJ.e】uop】UBMnoXJI#

“ps>|Dop_j06]>pop-p31e6edo」d—i3s

[Hsa」sjjod-je6]>|Jo/v\ieu-qDnoj_juop_jes

“ps>|Dop_je6]>|Jo/v\ieu-qDno;-juop-jes

{To}cujopAe/v\-乙poued->|p>|Dop_0jeajD

j3ds7v\-0T]U3/3|!j—】ndu!/.Diiiseued-peaj

4ps,oiluD/eiy-jndui/-Buiiuii-peej

{>|p43S3」}oaAup-ias

[sjnd}.no"||e]>|p>pop-rouiiu-Xe|ep-jndjno-jes

[sjndino-||e]>|p>pop-O'Txeiu-Xe|ep-indjno-ies

[sinduF||e]>|p>pop-乙,0UIUJ-Xe|ep-induFies

[sjnduFne]>|p>pop-0,工xeiu-Xe|ep-jnduFies

[sjnduF||e]乙0uoijisuejj-jnduFjes

[sjndjno-||e][?A/2XANI/SZ1380AI-MO|S?p-peo|]peo「】as

[“psjjod-j96]

-:)A-MOS_-

[sjnduF||e]uoipa11ODIUOAOLUaJ][1IA/IXANI/S2180IIH)o9Aup]aAuptas

[>IPsiJ0d-j36][?A/IXANI/S21380AI-MO|S?4O_9Aup]SAup^ss

l|eD-6u!Aup-iesesn'anieAxye】uop】UBMnoX41#

“ps>|Dop_ja6]>|DO|D-peie6edojd-jes

[jesejsjJOcTia6]不0MlstTqz)no廠luoplas

“ps>|Dop_je6]"」OM:131rlpnoCuop—ias

{10}LUJopAe/w-乙pouod-"p>|Dop_aieejD

jmds,q_()DU:)/3|!門(mén)ndu!/,邛!sejecTpeaj

jps,o口LD/可!門(mén)ndu!/,Guiiui^'peoj

0?!臧斯ひ?%suoR!puo:T6u呷3d。一郎

A'OIIUDu6isap-iuejjnD

A-QXJUD-jd/6o|ueA/-6o|!」3A-peai

Qsaq)切摩勢(shì)3

set_max_area0

set_max_fanout5[alljnputs]

set_max_transition2[alljnputs]

report_constraint-all_violators

Formality學(xué)習(xí)筆記

腳本范例

setsearch_path"./core./rtl./netlist"

set_svfdefault.svf

read_verilog-r"cntlO.v"

set_topcntlO

read_db-ifast_lv32cO.db

read_verilog-ipr_cntlO.v

set_topcntlO

match

verify

Encounter學(xué)習(xí)比擬

一、理論

L布圖

1.1、I/O單元

I/O單元主要是保證信號(hào)從芯片內(nèi)部傳遞到外部時(shí)其路徑最短,同時(shí)要求從I/O單元關(guān)鍵引線到封裝

點(diǎn)時(shí),防止信號(hào)穿插,方便封裝基板的制作,減少基板上的走線層數(shù)。當(dāng)芯片的輸入輸出單元較多而內(nèi)部

邏輯單元較少且一般為I/O單元限制型設(shè)計(jì)時(shí),那么一般選用狹窄的I/O單元;當(dāng)芯片的輸入輸出單元較

少而內(nèi)部邏輯單元較大時(shí),那么一般選用寬的I/O單元。但設(shè)計(jì)子模塊時(shí),I/O單元的形式為接點(diǎn)(pin)而

不是接口(pad)。I/O單元分為信號(hào)接口和電源兩種類型信號(hào)I/O單元關(guān)鍵是選擇驅(qū)動(dòng)的大小,而電源I/O

單元需要重點(diǎn)考慮的是供電電源的數(shù)量計(jì)算和擺放。電源I/O單元分為:模擬的、數(shù)字的、隔離數(shù)字模擬

供電的。數(shù)字I/O供電單元分為給I/O單元供電的和給核內(nèi)標(biāo)準(zhǔn)單元供電的。給核內(nèi)單元供電的I/O單元

的數(shù)量m根據(jù)芯片的功耗、I/。單元的供電電壓以及電流來(lái)估計(jì):

其中叫為芯片的平均功耗;勿a4勿ad為供電I/O單元的電壓和最大電流波為調(diào)整因子,min(l~2),

給單元供電的供電單元輸了也由多種因素決定,單元的功耗、輸出。單元的驅(qū)動(dòng)

max(5~10)oI/OI/OI/

能力等,經(jīng)歷做法是給I/O單元供電的單元數(shù)量與給輸出信號(hào)端口的比例為1:(5~10)的關(guān)系,與給內(nèi)核供

電的I/O單元的數(shù)量是1:2的關(guān)系。供電單元位置擺放還需要考慮電壓降(IRdrop)的大小,一般需要在電

源環(huán)設(shè)計(jì)完成后,做功耗分析,從而選擇一個(gè)最正確的布局。

1.2、層次化設(shè)計(jì)

層次化設(shè)計(jì)大致可分為三個(gè)步驟:芯片頂層設(shè)計(jì)規(guī)劃、子模塊分割(partition)與實(shí)現(xiàn)以及芯片頂層組裝實(shí)

現(xiàn)。布線通道按照形狀分有典型的T形通道和L形通道兩種。當(dāng)兩個(gè)子模塊在芯片內(nèi)部的空間跨度比擬大

時(shí),有時(shí)還需要定義直通(feedthrough)布線通道,從而滿足時(shí)序和布線的要求。

2、布局

2.1.電源規(guī)劃

供電網(wǎng)絡(luò)設(shè)計(jì)主要內(nèi)容有:

(1)電源連接關(guān)系的定義,又稱為globalnetconnect

芯片核內(nèi)局部的電源環(huán)設(shè)計(jì),又稱為

(2)powerringo

(3)芯片內(nèi)所包含的硬核(RAM、ROMandIP、COT)的電源環(huán)設(shè)計(jì)。

芯片核內(nèi)縱橫交織的電源網(wǎng)格的設(shè)計(jì),又稱為

(4)powerstripe0

(5)芯片的供電單元與電源環(huán)的連接,又稱為I/O單元power。

(6)芯片內(nèi)部電源網(wǎng)格和硬核電源環(huán)連接局部的設(shè)計(jì),又稱為ringpins.

(7)將標(biāo)準(zhǔn)單元的供電網(wǎng)絡(luò)與核內(nèi)電源網(wǎng)格總連接設(shè)計(jì),又稱為followpins。

供電單元電源環(huán)的設(shè)計(jì),又稱為單元

(8)I/OI/Opowerring0

電源網(wǎng)格是為了平均分布電流,縮短電流回路,在有效減小電壓降的同時(shí),防止由于電流分布不均時(shí)

造成的熱點(diǎn)(hotspot)現(xiàn)象以及電遷移(EM,electromi-gration)為問(wèn)題。電源環(huán)的設(shè)計(jì)主要有3個(gè)參數(shù):

電源環(huán)的寬度以電源環(huán)的間距d以及電源環(huán)的對(duì)數(shù)&估算方法為:

其中勿為芯片的峰值電流;S為廠家工衣庫(kù)給出的電流密度的上限;〃為電源環(huán)對(duì)數(shù);Z為調(diào)整因子。

電源網(wǎng)格(powergrid)通常是均勻分布,電源條線(powerstripes)通常是不規(guī)那么或不均勻分布。

其中powerstripes的寬度Wstripe_V與縱向powerstripes的間距S1成正比關(guān)系,同理可得

Wstripe_H與S2的關(guān)系。對(duì)于Wstripe_V和Wstripe_H的設(shè)定,有以下幾個(gè)經(jīng)歷規(guī)那么:

(1)Wstripe_V的分布間隔一般取垂直分布間距(pitch)的整數(shù)倍,一般最大情況下不超過(guò)最小

NAND2X1寬度的4倍。

(2)Wstripe_V的最大值取標(biāo)準(zhǔn)單元庫(kù)中NAND2X1寬度的4倍。

(3)Wstripe_H的取值一般是標(biāo)準(zhǔn)單元高度的整數(shù)倍,通常選擇1~2倍。

在確定了powerstripe的寬度后,需要計(jì)算其間距Sl、S2。在估

算出內(nèi)部縱/橫供電金屬寬度根底上,我們可以求出功耗為P的總

電流ItotaL

total匕假設(shè)圖中A點(diǎn)有5%的電壓降,那么位于

VDD

W

Lop=1down=hotal加調(diào)A點(diǎn)其有效電阻分別為

IT—H

隈#="Iright-totalZZ777

假設(shè)N為縱向powerstripes的對(duì)+數(shù),M為橫向powerstripes的對(duì)數(shù),那

么其值分別為:

RR

N_八stripe-V加_八stripe-H最后得出縱向電源網(wǎng)格的間距S1和橫向電源網(wǎng)格的間距S2分別是:

^effect-VRe第ct-H

S1=W/N,S2=H/MO

在數(shù)字和模擬混合供電,布圖前一般需要作如下幾點(diǎn)考慮:

(1)模擬模塊的工作區(qū)域一般放置于芯片的某個(gè)角落。

(2)模擬區(qū)域需要單獨(dú)供電,給模擬信號(hào)供電的I/O單元應(yīng)放在模擬模塊別上,盡量縮短供電線路的

長(zhǎng)度。

⑶在模擬模塊的周圍布置保護(hù)隔離環(huán)(guardingring),從而實(shí)現(xiàn)數(shù)字信號(hào)和模擬信號(hào)電源之間的隔

當(dāng)設(shè)計(jì)中存在被關(guān)閉的電壓域,為了不使關(guān)閉區(qū)域與非關(guān)閉區(qū)域相互影響,必須在所有的接口處添加

隔離單元(isolationcell),并要:1檢查出所有需要添加格力網(wǎng)絡(luò)的信號(hào)端口;2在相應(yīng)的接口處添加隔離

單元。

2.2、標(biāo)準(zhǔn)單元和模塊的放置

展平式設(shè)計(jì)包括兩個(gè)局部:1模塊的擺放與布局。2標(biāo)準(zhǔn)單元的擺放和優(yōu)化。

層次化布局有三個(gè)過(guò)程:1先分配子模塊,這是與展平式布局最大的不同之處;2作子模塊級(jí)的布局,

他的方法與展平式一樣;3所有子模塊完成后在頂層組裝,其布局方法與展平式一樣。層次化設(shè)計(jì)中子模

塊的約束類型一般有三中:向?qū)Ъs束(guide)、區(qū)域約束(region)和限制約束(fence),其中向?qū)Ъs束為模塊

指定向?qū)Х秶?,屬于該模塊的標(biāo)準(zhǔn)單元可以放置在該向?qū)Х秶鷥?nèi),也可以放置在向?qū)Х秶?。不屬于該?/p>

塊的標(biāo)準(zhǔn)單元可以放置在該區(qū)域之內(nèi)。區(qū)域約束中,屬于該模塊的單元只能放在指定的區(qū)域內(nèi),該區(qū)域還

可以放置其他模塊單元。限制約束中,屬于該模塊的單元只能放在指定的區(qū)域內(nèi),該區(qū)域不可以放置其他

模塊單元。

在標(biāo)準(zhǔn)單元布局優(yōu)化后,需要對(duì)設(shè)計(jì)進(jìn)展擁塞(congestion)分析、靜態(tài)時(shí)序分析、噪聲分析和電源分

析從而確定布局的好壞。布局目標(biāo):1各模塊的位置相對(duì)確定;2滿足設(shè)計(jì)規(guī)那么要求,出時(shí)鐘網(wǎng)絡(luò),其

他高扇出網(wǎng)絡(luò)都插入了驅(qū)動(dòng)單元。3芯片的時(shí)序和供電較為良好。

在布局完成后需要評(píng)估的目標(biāo)主要有:擁塞(congestion)程度(當(dāng)實(shí)際需要的通道超過(guò)先游的通道的

5%時(shí),外表?yè)砣潭缺葦M大)、延遲和時(shí)序、供電預(yù)估(可以引用VCD文件,對(duì)芯片的功耗、IRdrop及

EM進(jìn)展評(píng)估。由于時(shí)鐘樹(shù)還沒(méi)綜合功耗會(huì)偏小)。

如果一個(gè)fence或region的EU值到達(dá)或超過(guò)了100%,placementchangesthefenceorregion

為了防止這種情況,在進(jìn)展之前,如有必要,應(yīng)確保核對(duì)和更新值。

toaguideoplacementEU

總密度Coresize的計(jì)算:Coresize=(standardcellarea/coreutilization)+(macroarea+halo)

標(biāo)準(zhǔn)單元密度StdCellsize的計(jì)算:StdCellsize=(standardcellarea/StdCellutilization)+(macro

area+halo)

一旦使用StdCellsize定義floorplan,那么Core的大小將會(huì)變小。

3、CTS

時(shí)鐘信號(hào)通常是整個(gè)芯片中有最大扇出、通過(guò)最長(zhǎng)距離、以最高速度運(yùn)行的信號(hào)。時(shí)鐘源通常有RC

時(shí)鐘、晶振時(shí)鐘和鎖相環(huán)(PLL)時(shí)鐘。時(shí)鐘信號(hào)的延遲(latency)又稱為插入延遲(insertdelay),它包括時(shí)

鐘源延遲和時(shí)鐘網(wǎng)絡(luò)延遲。次兩種延遲分別用命令表示為:

set_clock_latency2.0-source[get_clocksCLK]

set_clock_latency2.0[get_clocksCLK]

時(shí)鐘信號(hào)的抖動(dòng)又稱為時(shí)鐘的不確定性。時(shí)鐘的偏差(skew)指的是同一時(shí)鐘到達(dá)該時(shí)鐘域內(nèi)的不同存

放器之間的時(shí)間偏差。它是衡量時(shí)鐘樹(shù)性能的重要參數(shù),時(shí)鐘樹(shù)綜合的目的就是為了減小偏差,它的值有

正負(fù)兩種。增加存放器的時(shí)鐘延遲而并不影響時(shí)鐘樹(shù)的功能叫做時(shí)鐘樹(shù)的有用偏差。

時(shí)鐘樹(shù)綜合對(duì)同步電路實(shí)現(xiàn)的優(yōu)點(diǎn)是電路構(gòu)造簡(jiǎn)單明朗,具有較好的魯棒性,驗(yàn)證簡(jiǎn)單。缺點(diǎn)是較大

的時(shí)鐘在物理實(shí)施時(shí)具有一定的難度,封裝電感和電源電阻會(huì)在時(shí)鐘跳變瞬間產(chǎn)生很大噪聲。異步電路不

規(guī)那么但速度快,功耗低。

門(mén)控時(shí)鐘技術(shù)是降低功耗最常用的方法。門(mén)控時(shí)鐘可以用create_clock和generated_clock來(lái)定義。

門(mén)控時(shí)鐘

create-clock-namelcd_gating_clk-period10-waveform{05}[get_pinsmain_gate/Y]o

上的setup并不是關(guān)注的焦點(diǎn),而hold的問(wèn)題那么是需要特別關(guān)注的。時(shí)鐘樹(shù)是芯片中頻率和翻轉(zhuǎn)率最

高的,降低時(shí)鐘樹(shù)的噪聲(主要是耦合電容)非常重要,其方法有:1局部電源地保護(hù);2增加驅(qū)動(dòng)能力;3

高層金屬多倍間隔走線。

4、布線

消除布線擁塞、優(yōu)化時(shí)序、減小耦合效用(coupling)、消除串?dāng)_(crosstalk)、降低功耗、保證信號(hào)完

整性(SI,signalintegrity),預(yù)防DFM問(wèn)題和提高良品率等是衡量布線質(zhì)量的重要指標(biāo)。全

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論