Locdtion
fast
Resistance
甘忌5
tfflnce
0.00015
Area
0.7
Slope
:
266.668
BanoutLengthPointsAverageCapStdDeviation
1亦
.67
Mane
tsmcl3_wl50
Location
:
fast
Resistance
:
6.5e-D8
Capacitance
O.ODO15
Area
0.7
Slope
333.335
d
J
LogHistory
design_vision>
r
或者下面的:
Name
:
smicl3
_wllO
Location
a
slow_lv08cl25
Resistance
:
8.5e-0S
—单位长度电阻
Capacitance
*
0.00015
——单位长度电容
Area
:
0.7
——单位长度面积
Slope
:
66.667
斜率(长度/扇出)
FanoutLength
PointsAverageCapStdDeviation
图屮町以看-出单位长度的电阻以及电客值,DU在估算连线延时时.会先算出建线的扇出.然后根据扇出査表,得出长度.再在氏度的棊础上计算岀它的电阻和电容的大小.若扇出值超出表中的值(假设为7),那么DC就嘤根据扇出和长度的斜率(Slop)推算出此时的连线长度来。
(3)setload:
设置输出负载
比较精确地计算输出电路的延迟,DC需要知道输出电路驱动的所有负载。
该命令有两种用法:
一种是直接给端口赋一个具体的值,另一种是结合命令load_of指出它的负载相当于工艺库中哪个单元的负载值。
命令方式:
#1:
set_load5[get_ports0UT1]
setload5(g«t_portsOUT1]
S51设置输出负载(I)
例如上图,给OUT!
端口设了一个负鞍为§的值”这电的单位也杲由Fuundry提供,具体的单位,可以通过njporjib甜令査看.一般而言是pf°
#2:
set_load[load_ofmy_lib/and2aO/A][get_portsOUT1]
说明OUT1端口接的负载值地my」ib中and2a0单元的A管脚的负载值
#3:
把上面命令set_load[load_ofmy_lib/and2a0/A][get_portsOUT1]中的get_ports
OUT1换为all_outputs就可以给全部输出端口赋值。
其中load_of命令可以算出某个引脚的负载电容值。
DC在缺省
电路负载的大小会影响到它的延迟,而且负载越大,延迟越大,情况下认为端口的负载电容都是0,因此具有无穷大的驱动能力图形界面:
必须先选中全部的输出负载然后再设置负载值!
!
!
!
!
***********
具体如何找这个负载不清楚!
111111111!
****************
4.SelectalloutputportsbydragtheleftkeyAttributes^OperatingEnvironmentsLoadEntertloacLof''slow/DFFXl/Dff
Load
(4)set_drive或者set_driving_cell:
设置输入驱动。
为了更加准确估计模块的输入时序,为了更加准确的估计输入电路的延迟,DC需要知道信号到达输入端口的过渡时间(transitiontime)。
默认下,DC认为输入驱动的驱动能力无限大,即transitiontime=0;
Set_drive使用确定的值来估计输入端的输入电阻,从而得到输入端口的延迟;
set_driving_cell是假定一个实际的外部驱动单元来估计输入的transitiontime;
该命令用于设置输入端口或者双向端口上的电阻值,该电阻值是用于驱动输
入端口的单元的输入电阻,因此,该值越大,就说明输入端口的驱动能力越弱,连线的延迟也就越大。
更常用的是set_driving_cell命令,以库中某个单元电路的引脚驱动能力为基准来模拟输入端口的驱动能力。
例1:
首先通过drive_of指定具体的驱动单元电阻值,得到驱动单元电阻后,通过:
set_drive+fi+[get_portsclk]命令给输入端口clk赋值。
Setting泊putdrivirkgstrEngtiifondkportdrive_ofnslow/BUFX4/Ywset_drive1.615308[get_portsdk]
gn_vTi&ia仃~t>|mot.dTi*。
1.61SJD修[g白匕』口1:
七苦七比]
4:
设计规则约束约束(DRC:
design_rule_constrain)
DRC规则的优先级:
transition>fanout>capacitanee
(1)set_max_transtion设置最大传输时间
连线的转换时间是其驱动引脚的逻辑电平变化的时间,包括risingtime和
falling,从10%的VDD变化到90%的VDD所需的时间。
设定最大的转换时间set_max_transtion,这个值一般设为周期的10%。
例如:
set_max_transtion1.8[current_design]—般情况下current_design指的是top。
⑵set_max_capacitanee输出管脚可以驱动的最大电容值
定义输出管脚可以驱动的最大电容值。
例:
set_max_capacitanee1.5[get_portsout1]或者
set_max_capacitanee1.5[get_designstop]
⑶set_max_fanout设置最大扇出负载
连线的最大扇出负载指的是它所驱动的所有输入引脚的扇出负载的总和。
扇
出负载不同于负载,它是个无量纲的数值。
-賜仁妁①心烦P財对衣滋叽觴九0成以4port®疔操作,设定的不是具体的电容植。
例如对一个血Migri我们设定鞭匕加〜加加血1Z表示在这个design^的一条帕t或一个por十只能驱功吃个伽以tJqgd为1亍单位的pR或右个f癒威/Ljp"Qd为込个单愷的pim在i:
mic0.13um.^中默认的預肿良tJ叔为1,我们可以用讓尢』勉仁血d自行设色讓XJ煤ufgnpuT和令心型^吹丄如d仅仅是用做DRC的检查,也们的值与时序无关.图示如下:
max_fanout经验值一般设为20,即一个门的输出最多驱动20个输入引脚(如果每个引脚的输出负载是1的话)。
******计算fanout值,如下*******
dc_shell>set_max」刊2讥3[get_designsADDER]
if算Fanout仙:
Figure7*4C^lcu^tionofMaxi/numFanout
fanoutload:
2.D
fanoutload:
鼻电生]c」anoin8
三—U3:
NR6O
TotalFanoutLoad
fl1.0+VO3,0+20
7
MaximumFancut>=TotalFanouiLoad
或者:
set_max_fanout3.0[all_outputs]
图形界面:
在attributes-optimizationconstraints-designconstraints
5:
优化约束OptimizationConstraints
⑴create_clock:
用于定义时钟的周期和波形(duty及起始沿)
duty:
占空比,指高电平在一个周期所占的时间比率。
命令:
create_clock-period40-vaveform{020}[get_portsclk]:
表示CLK周期40ns,上升沿0ns,下降沿20ns;如果不定义waveform,则默认占空比为50%。
或者:
dc_ohell-t>cruta^clock-period10(gat_^portaClk)dc_shell^t>3etdont_touchnetwerk[getclocksClk]
第一句建义了一个周期为10ns的时钟U它的时钟源是一个称为Clk的端LL
第二句对所有定义的时钟网络设直为donVouch.即综合的时候不对Clk信号优化.如果不加这句,DC会根据Clk的侪载貝动对畅牛.BE比孑在窘际的申一路说计时神树(ClockTree)的综合冇自已特別的方法.它需耍碍虑到宝际布线后的物理信息.所以D匚不需要在这里对它进行处理*就算处理了也不会符吞議
或者:
clk_62_5M-'
createclock-period14-waveform[lis七0.07.0]
或*
creatEclock-period14-wa.veform[list0*07^01clk_€2,5M]^
注意;[getportsclk6/L5M]中时匸lk疏.5强设计文件中的时钟名,
厠本中的时钟名"
重要:
在时宇逻娟电路中.创建时坤约束是喜实的时钟.要与设计中的时钟信号相连接,即用或,
在纯组合逻緝电路中,粹要创建噩拟时钟约束virtualclock,此时不吊连接到设计“即不用写
[qetportsclk62..5M1
#1:
set_dont_touch_network在net或port上设置don'ttouc属性,主要用于clock和reset信号,使DC不对这些nets插buffer,留到布局布线时综合。
#2:
set_dont_touch用于对current_design,cells,references,net设置don'ttoucfll
性,阻止DC对它们进行映射或优化,一般在分模块综合和综合后优化时使用。
例:
set_dont_touch[get_cellsX_DATA_N_1_33B_reg[0]]
⑵set_clock_uncertainty:
定义好时钟后,就要设置时钟不确定性,即反映时钟偏差(clockskew),一般设为0.2-0.3。
命令:
set_clock_uncertainty0.3[get_clockscore_clk]
⑶set_clock_latency:
模拟时钟树插入后从时钟输入端口到寄存器clock端口的
延时,用于布局布线前的综合和时序分析,一般设0.3-0.8。
命令:
set_clock_latency0.3[get_clockscore_clk]
set_clock_latency默认情况下代表:
NetworkLatency
⑷set_input_delay(看另一个总结的时序分析文档)
吠“如叩定文信号相对于时粉的到达时间.指一个信号,在时钟沿之后多少时间到达inputport集
Tinput„defay-TcIk-q十Tm
dc;iheLl-t>丄白la*-nuix4-clockClk(g«itportijA]
如P面的语句指岀了披综合模块的端口A的最大输入延时为4口匾-max选项是指明目前设呂的是输入的最大延迟.为了满足时序单