静态时序分析Static Timing Analysis基础5.docx
- 文档编号:2847863
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:8
- 大小:158.58KB
静态时序分析Static Timing Analysis基础5.docx
《静态时序分析Static Timing Analysis基础5.docx》由会员分享,可在线阅读,更多相关《静态时序分析Static Timing Analysis基础5.docx(8页珍藏版)》请在冰豆网上搜索。
静态时序分析StaticTimingAnalysis基础5
前言
在制程进入深次微米世代之后,晶片(IC)设计的高复杂度及系统单晶片(SOC)设计方式兴起。
此一趋势使得如何确保IC品质成为今日所有设计从业人员不得不面临之重大课题。
静态时序分析(StaticTimingAnalysis简称STA)经由完整的分析方式判断IC是否能够在使用者指定的时序下正常工作,对确保IC品质之课题,提供一个不错的解决方案。
在「静态时序分析(StaticTimingAnalysis)基础及应用(上)」一文中笔者以简单叙述及图例说明的方式,对STA的基础概念做了详尽的说明。
接下来,就让我们藉由实际设计范例来了解STA在设计流程的应用。
设计范例说明
设计范例为一个32bitx32bit的Pipeline乘法器,其架构如图一所示。
Pipeline共分3级,电路之输出输入端皆有暂存器储存运算数值。
图一
依据Cell-based设计的方式,首先以硬体描述语言设计图一之电路。
接下来实作此电路,进行合成(Synthesis)及布局与绕线(P&R)。
并在实作的各步骤后进行静态时序分析,确认时序规格是否满足。
实作及验证所用到的软体及设计资料库如下所示:
l 合成:
Synopsys?
DesignCompiler
l 布局与绕线:
Synopsys?
Astro
l 设计资料库:
Artisan?
0.18umCellLibrary
在接下来的文章中,各位将会看到静态时序分析在实作过程中的应用。
藉由实际产生的数据了解在不同实做步骤上时序分析的差异。
时序限制(TimingConstraint)
要作静态时序分析,首先要有时序限制。
此设计范例的时序限制如下所述。
(后为设定时序限制之SDC指令)
1 时脉规格(ClockSpecification)
1.1 周期:
6ns
create_clock-name"MY_CLOCK"-period6-waveform{03}[get_ports{clk}]
1.2 SourceLatency:
1ns
set_clock_latency-source1[get_clocks{MY_CLOCK}]
1.3 NetworkLatency:
1ns
set_clock_latency1[get_clocks{MY_CLOCK}]
1.4 Skew:
0.5ns
set_clock_uncertainty0.5[get_clocks{MY_CLOCK}]
2 周边状况(BoundaryCondition)
2.1 输入延迟(InputDelay):
1.2ns
setallin_except_CLK[remove_from_collection[all_inputs][get_portsclk]]
set_input_delay$I_DELAY-clockMY_CLOCK$allin_except_CLK
2.2 输出延迟(OutputDelay):
1.2ns
set_output_delay$O_DELAY-clockMY_CLOCK[all_outputs]
2.3 输出负载(OutputLoading):
0.5pF
set_load$O_LOAD0.5[all_outputs]
3 时序例外(TimingException):
无
合成软体之时序报告
当Synopsys?
DesignCompiler将电路合成完毕后,执行下面指令可以产生时序报告:
report_timing-pathfull-delaymax-max_paths10-input_pins
-nets-transition_time-capacitance>timing_syn.txt
时序报告会储存在timing_syn.txt此档案中。
在档案的开头不远处,会列出此电路最有可能不符合时序规格的路径(CriticalPath)。
例如:
Startpoint:
S2/B2_reg_0_
(risingedge-triggeredflip-flopclockedbyMY_CLOCK)
Endpoint:
S3/P3_reg_47_
(risingedge-triggeredflip-flopclockedbyMY_CLOCK)
PathGroup:
MY_CLOCK
PathType:
max
在这个例子中,CriticalPath的起点Flip-Flop是第2个PipelineStage内的B2暂存器的第0个位元,终点Flip-Flop则是第3个PipelineStage内的P3暂存器的第47个位元(图二)。
在CriticalPath报告的下方会有WireLoadModel的资讯,此范例使用的是UMC18_ConservativeModel。
这个Model会以较悲观的方式预估连线的延迟时间(InterconnectDelay)。
图二
继续往下检视档案,你会看到CriticalPath的详细时序资讯。
例如:
Point Fanout Cap Trans Incr Path
-------------------------------------------------------------------------------
clockMY_CLOCK(riseedge) 0.00 0.00
clocknetworkdelay(ideal) 2.00 2.00
S2/B2_reg_0_/CK(DFFHQX4) 0.00 0.00 2.00r
S2/B2_reg_0_/Q(DFFHQX4) 0.16 0.30 2.30r
S2/n36(net) 1 0.03 0.00 2.30r
S2/U10/A(BUFX20) 0.16 0.00 2.30r
S2/U10/Y(BUFX20) 0.23 0.21 2.51r
...
...
S3/add_106/U0_5_47/A(XNOR2X2) 0.18 0.00 7.74f
S3/add_106/U0_5_47/Y(XNOR2X2) 0.12 0.22 7.96f
S3/add_106/SUM[47](net) 1 0.01 0.00 7.96f
S3/add_106/SUM[47](stage3_DW01_add_54_0) 0.00 7.96f
S3/N94(net) 0.01 0.00 7.96f
S3/P3_reg_47_/D(DFFTRXL) 0.12 0.00 7.96f
dataarrivaltime 7.96
clockMY_CLOCK(riseedge) 6.00 6.00
clocknetworkdelay(ideal) 2.00 8.00
clockuncertainty -0.50 7.50
S3/P3_reg_47_/CK(DFFTRXL) 0.00 7.50r
librarysetuptime -0.28 7.22
datarequiredtime 7.22
--------------------------------------------------------------------------------
datarequiredtime 7.22
dataarrivaltime -7.96
--------------------------------------------------------------------------------
slack(VIOLATED) -0.74
先由左往右看,第一个直行Point标示出路径中的节点,节点可以是元件的输出入端点,也可以是元件间的连线(Net)。
第二个直行Fanout标示节点推动的元件个数。
第三个直行Cap标示出节点推动的负载。
第四个直行Trans标示出节点上信号的转换时间(TransitionTime)。
第五个直行Incr标示出节点造成的延迟时间。
最后一个直行Path则是自路径起点到到此节点为止的总延迟时间。
再来我们由上往下检视CriticalPath的时序资讯。
clock
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 静态时序分析Static Timing Analysis基础5 静态 时序 分析 Static Analysis 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)