版權(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編寫-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編寫
在使用if語(yǔ)句的時(shí)候,一定得把條件寫全,不然會(huì)綜合出鎖存器。一個(gè)if語(yǔ)句只能跟一個(gè)
表達(dá)式。如果一個(gè)電路中出現(xiàn)兩種時(shí)序電路構(gòu)造(鎖存器和觸發(fā)器),會(huì)增加電路的測(cè)試難度。
If語(yǔ)句對(duì)應(yīng)的是選擇器。開語(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ǔ)句
不寫全可以加這個(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ì)算輸入端口到門電路的延遲,一般來(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開頭的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í)鐘樹的綜合除了使用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開關(guān)設(shè)為false.
report_transitive_fanout-dock_tree(-fromreset)檢查無(wú)意識(shí)的時(shí)鐘門控(復(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í)鐘樹代替(使用
set_propagated_clock[get_clocksCLK])
report_timing-from[alljnput]-to[all_registers-data_pins]
如果綜合完發(fā)現(xiàn)不能使用write命令來(lái)寫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í)鐘門控的時(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|!門ndu!/,邛!sejecTpeaj
jps,o口LD/可!門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ū)Х秶狻2粚儆谠撃?/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í)鐘樹還沒(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í)鐘樹綜合的目的就是為了減小偏差,它的值有
正負(fù)兩種。增加存放器的時(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ī)那么但速度快,功耗低。
門控時(shí)鐘技術(shù)是降低功耗最常用的方法。門控時(shí)鐘可以用create_clock和generated_clock來(lái)定義。
門控時(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í)鐘樹是芯片中頻率和翻轉(zhuǎn)率最
高的,降低時(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二手房買賣合同線上線下融合營(yíng)銷服務(wù)合同4篇
- 二零二五年度石子購(gòu)銷合同的驗(yàn)收標(biāo)準(zhǔn)3篇
- 二零二五年科研課題合作研究合同5篇
- 2025版特色旅游線路導(dǎo)游人員勞動(dòng)合同范本4篇
- 2025年度綠色建筑個(gè)人工程承包施工合同范本2篇
- 2025年食品代加工食品安全與品質(zhì)提升協(xié)議3篇
- 2025年高精度設(shè)備維護(hù)與技術(shù)支持合同3篇
- 2025版事業(yè)單位教師崗位聘用合同續(xù)簽協(xié)議3篇
- 二零二五版文化創(chuàng)意產(chǎn)業(yè)園區(qū)勞務(wù)分包合同3篇
- 個(gè)性化離婚合同書范本(2024)版B版
- 2025-2030年中國(guó)陶瓷電容器行業(yè)運(yùn)營(yíng)狀況與發(fā)展前景分析報(bào)告
- 二零二五年倉(cāng)儲(chǔ)配送中心物業(yè)管理與優(yōu)化升級(jí)合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂(lè)作品錄制許可
- 江蘇省無(wú)錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測(cè)試語(yǔ)文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語(yǔ)試卷(含答案解析)
- 開題報(bào)告:AIGC背景下大學(xué)英語(yǔ)教學(xué)設(shè)計(jì)重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個(gè)人主要事跡
- 連鎖商務(wù)酒店述職報(bào)告
- 《實(shí)踐論》(原文)毛澤東
- 第三單元名著導(dǎo)讀《紅星照耀中國(guó)》(公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)+說(shuō)課稿)
評(píng)論
0/150
提交評(píng)論