




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA技术实验,Synopsys公司的静态时序分析(STA)工具PrimeTime,Company Logo,主要内容,PrimeTime实例分析,Company Logo,一、静态时序分析(STA)介绍,简介 静态时序分析(Static Timing Analysis,简称STA)是一种验证方法。它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分析。分析的最终结果当然是要求系统时序满足设计者提出的要求。 使用前提 静态时序分析的前提是对同步逻辑设计进行时序验证,设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分
2、析,即有约束才会有分析。若设计者不添加时序约束,那么时序分析就无从谈起。 目的 进行静态时序分析的主要目的就是为了找出隐藏的时序问题,提高系统工作主频以及增加系统的稳定性。对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。,Company Logo,一、静态时序分析(STA)介绍,静态时序分析的主要优点 1、能够详尽地覆盖时序路径; 2、不需要测试向量; 3、执行速度快; 4、能够为时序冲突生成全面的报告; 5、能够完成使用仿真所不能实现的复杂分析,例如min/max 分析、组
3、合环检测、自动地检测并消除无效路径。 静态时序分析的缺点 静态时序分析的优点并不意味着STA能够完全替代动态仿真,静态验证工具与动态验证工具必须协同存在。一个主要的原因是STA只关注时序,不能验证一个设计的逻辑功能;另一个是STA针对同步逻辑设计,因而某些设计风格并不是很适合静态的方法。例如,一个设计的异步部分可能要求使用动态仿真,当然,任何混合信号的部分更是如此。,Company Logo,二、PrimeTime简介,PrimeTime简介 PrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模,同步,数字ASIC.PrimeTime适用于门级的电路设计,可以和Synop
4、sys公司的其它EDA软件非常好的结合在一起使用. PrimeTime的特点和功能 作为专门的静态时序分析工具,PrimeTime可以为一个设计提供以下的时序分析和设计检查: 建立和保持时间的检查; 时钟脉冲宽度的检查; 时钟门的检查; 未约束的时序端点; 组合反馈回路; 基于设计规则的检查,包括对最大电容,最大传输时间,最大扇出的检查等。,Company Logo,二、PrimeTime简介,PT和DC的STA的不同 1、目的不同 DC主要是为了综合,所以它的时序约束都是以苛刻的估算为主,可以不区分什么分析类型,但PT主要是为了验证它的约束,主要以来依赖于实际提取数据一提取的多数文件为主,必
5、须区分什么操作条件以及相应的什么分析类型策略。 2、级别不同 DC的综合是针对block的,所以它的时序约束也是针对预估的block的时序要求来编写的,所以它是局部电路的时序约束。但PT主要是针对系统的静态时序分析,所以它的时序约束主要是针对系统的性能规格来编写,具有强制性和参照性。,Company Logo,二、PrimeTime简介,PT和DC的STA的不同 3、输入的文件类型不同 DC主要读入的文件类型是电路的RTL描述,对它们的STA主要为了为综合提供一个依据,便于DC寻找能满足要求的门;PT读入的是设计的网表,属于门级描述,对它的STA主要是为验证实际电路是否满足系统要求。 4、应用
6、的阶段不同 DC用于设计的逻辑综合阶段,主要作用是将设计的RTL描述转换为电路门级描述;PT用于设计的验证阶段,主要作用是验证具体电路在苛刻条件下是否存在时序异常。,Company Logo,三、PrimeTime进行时序分析的流程,1、 建立设计环境 - 建立搜索路径(search path)和链接路径(link path) 读入设计和库 (read_verilog和read_db) - 链接顶层设计 建立运作条件、连线负载模型、端口负载、驱动和传输时间,Company Logo,三、PrimeTime进行时序分析的流程,2、 说明时序声明(约束) 定义时钟周期、波形、不确定性(uncert
7、ainty)和滞后时间(latency) 说明输入、输出端口的延时。,PT约束的对象 设计 参照 单元 端口 引脚 时钟 连线,Company Logo,三、PrimeTime进行时序分析的流程,时钟的不确定性(uncertainty),Company Logo,三、PrimeTime进行时序分析的流程,时钟的滞后时间(latency),Company Logo,三、PrimeTime进行时序分析的流程,时钟的抖动(jitter),Company Logo,三、PrimeTime进行时序分析的流程,时钟的电平转换(transition),Company Logo,三、PrimeTime进行时序
8、分析的流程,3、 说明时序例外情况(timing exceptions) 设置多周期路径(multicycle paths) 设置虚假路径(false paths) 定义最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs),Company Logo,三、PrimeTime进行时序分析的流程,4、 进行分析和生成报告 时序约束检查 生成约束报告( constraint reports ) 生成瓶颈分析报告( bottleneck reports ) -生成路径时序报告( path timing reports )。,Company Logo,四、P
9、rimeTime的用户界面,PrimeTime 提供两种用户界面,图形用户界面GUI(Graphical User Interface)和基于Tcl 的命令行界面pt_shell,其运行方式分别是: PrimeTime pt_shell,Company Logo,五、PrimeTime命令简介,设计输入 PT不能读取RTL源文件,它是静态分析引擎,只能读取映射后的设计,包括db、verilog、vhdl和edif等格式的文件。 pt_shell read_db netlist_only .db 由于db格式的网表包含约束和环境属性等,故使用netlist_only 选项指示PT只加载结构化网表
10、。 pt_shell read_verilog .v Verilog网表文件。 pt_shell read_verilog .edf Edif网表文件。 pt_shell read_verilog .vhd VHDL网表文件。,Company Logo,五、PrimeTime命令简介,创建时钟 create_clock -period period_value -name clock_name -waveform edge_list source_objects pt_shellcreate_clock -period 4 -waveform list 0 2 name clk get_por
11、ts clk,Company Logo,五、PrimeTime命令简介,时钟延时 从时钟树到具体寄存器的时钟输入端会产生一定的延迟,这个延迟用 set_clock_latency -rise-fall -min-max -source delay object_list pt_shell set_clock_latency 1.2 -rise get_clocks CLK1,Company Logo,五、PrimeTime命令简介,时钟转换 set_clock_transition -rise-fall -min -max transition clock_list pt_shell set_
12、clock_transition 0.38 -rise get_clocks CLK1 传播时钟 set_propagated_clock object_list pt_shell set_propagated_clock all_clocks,Company Logo,五、PrimeTime命令简介,时钟歪斜 在同步设计中,数据在一个时钟边沿由FF发送,在下一个时钟沿由另一个FF接收,理想情况下两个边沿间应有准确的一个时钟周期的延时,然而由于连线延迟的差异,接收时钟沿可早、可晚。为保证设计的robust,须指定时钟歪斜。 set_clock_uncertainty -from from_cl
13、ock | -to to_clock -rise -fall -setup -hold uncertainty pt_shell set_clock_uncertainty -setup 0.65 get_clocks CLK pt_shell set_clock_uncertainty -hold 0.45 get_clocks CLK,Company Logo,五、PrimeTime命令简介,指定生成的时钟 create_generated_clock -name clock_name -source master_pin -divide_by divide_factor | -multi
14、ply_by multiply_factor -duty_cycle percent source_objects pt_shell create_generated_clock -multiply_by 2 -duty_cycle 60 -source get_pins CLK get_pins foo1,Company Logo,五、PrimeTime命令简介,虚假路径 set_false_path -from from_list -through through_list -to to_list pt_shell set_false_path -from ff12 -to ff34 pt
15、_shell set_false_path -from ff1/CP -through U1/Z U2/Z -through U3/Z U4/C -to ff2/D pt_shell foreach_in_collection clk1 all_clocks foreach_in_collection clk remove_from_collection all_clocks get_clocks $clk1 set_false_path -from get_clocks $clk1 -to get_clocks $clk2,Company Logo,五、PrimeTime命令简介,设置虚假路
16、径,Company Logo,五、PrimeTime命令简介,设置虚假路径,Company Logo,五、PrimeTime命令简介,设置虚假路径,Company Logo,五、PrimeTime命令简介,设置虚假路径,Company Logo,五、PrimeTime命令简介,多周期路径,Company Logo,五、PrimeTime命令简介,多周期路径,Company Logo,五、PrimeTime命令简介,多周期路径,Company Logo,五、PrimeTime命令简介,时序约束检查,Company Logo,五、PrimeTime命令简介,生成报告,Company Logo,五、
17、PrimeTime命令简介,生成报告 report_timing -from from_list -to to_list -through through_list -delay_type delay_type -nworst paths_per_endpoint -max_paths count -nets -group group_name -significant_digits digits -nosplit -transition_time -capacitance report_bottleneck -from from_list -to to_list -through throu
18、gh_list -max_cells cell_count -max_paths path_count -nworst_paths paths_per_endpoint -group group_name -significant_digits digits -nosplit,Company Logo,五、PrimeTime命令简介,生成报告,Company Logo,五、PrimeTime命令简介,详细报告,Company Logo,五、PrimeTime命令简介,详细报告,Company Logo,六、实例分析,理论分析 固定参数launch edge、latch edge、Tsu、Th、
19、Tco概念 launch edge 时序分析起点(launch edge):第一级寄存器数据变化的时钟边沿,也是静态时序分析的起点。 latch edge 时序分析终点(latch edge):数据锁存的时钟边沿,也是静态时序分析的终点。,Company Logo,六、实例分析,Clock Setup Time (Tsu) 建立时间(Tsu):是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器。如下图所示:,Company Logo,六、实例分析,Clock Hold Time (Th) 保持时间(Th):是指数据稳定后保
20、持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。保持时间示意图如下图所示:,Company Logo,六、实例分析,Clock-to-Output Delay(tco) 数据输出延时(Tco):这个时间指的是当时钟有效沿变化后,数据从输入端到输出端的最小时间间隔。,Company Logo,六、实例分析,Clock skew 时钟偏斜(clock skew):是指一个时钟源到达两个不同寄存器时钟端的时间偏移,如下图所示:,时钟偏斜计算公式如下: Tskew = Tclk2 - Tclk1,Company Logo,六、实例分析,Data Arrival Time 数据到达
21、时间(Data Arrival Time):输入数据在有效时钟沿后到达所需要的时间。主要分为三部分:时钟到达寄存器时间(Tclk1),寄存器输出延时(Tco)和数据传输延时(Tdata),如下图所示,数据到达时间计算公式如下: Data Arrival Time = Launch edge+ Tclk1 +Tco + Tdata,Company Logo,六、实例分析,Data Required Time(setup/hold) 数据需求时间(Data Required Time):在时钟锁存的建立时间和保持时间之间数据必须稳定,从源时钟起点达到这种稳定状态需要的时间即为数据需求时间。如图下图
22、所示:,(建立)数据需求时间计算公式如下: Data Required Time = Clock Arrival Time - Tsu (保持)数据需求时间计算公式如下: Data Required Time = Clock Arrival Time+ Th,Company Logo,六、实例分析,Setup slack 建立时间余量(setup slack):当数据需求时间大于数据到达时间时,就说时间有余量,Slack是表示设计是否满足时序的一个称谓。,Company Logo,六、实例分析,建立时间余量的计算公式如下: Setup slack = Data Required Time -
23、Data Arrival Time 由公式可知,正的slack表示数据需求时间大于数据到达时间,满足时序(时序的余量),负的slack表示数据需求时间小于数据到达时间,不满足时序(时序的欠缺量)。,Company Logo,六、实例分析,时钟最小周期 时钟最小周期:系统时钟能运行的最高频率。 1. 当数据需求时间大于数据到达时间时,时钟具有余量; 2. 当数据需求时间小于数据到达时间时,不满足时序要求,寄存器经历亚稳态或者不能正确获得数据; 3. 当数据需求时间等于数据到达时间时,这是最小时钟运行频率,刚好满足时序。 从以上三点可以得出最小时钟周期为数据到达时间等于数据需求时间,的运算公式如下
24、: Data Required Time= Data Arrival Time,Company Logo,六、实例分析,建立时间余量图示说明参考下图:,Company Logo,六、实例分析,建立时间余量图示说明: Setup slack=latch edge+Tclk2-Tsu-(launch edge+Tclk1+Tco+Tdata) =(latch edge-lanuch edge)+(Tclk2-Tclk1)-(Tsu+Tco+Tdata) 对于工具默认的单周期来说,latch edge-lanuch edge=T,如果不考虑时钟的skew,Tclk2-Tclk1=0,上式可以表达成:
25、 Setup slack=T-(Tsu+Tco+Tdata),这就是为什么说源寄存器与目的寄存器之间延迟不能太长的原因,延迟越长,slack越小。,Company Logo,六、实例分析,保持时间余量图示说明参考下图:,Company Logo,六、实例分析,保持时间余量图示说明: Hold slack=data arrival time data required time=(launch edge + Tclk1 + Tco + Tdata) (latch edge + Tclk2+ Th)=(launch edge latch edge) (Tclk2 Tclk1) + (Tco + T
26、data+ Th) 注意,上式中的launch edge为next launch edge,即为latch edge,所以launch edge latch edge=0,如果不考虑时钟的skew,Tclk2-Tclk1=0,上式可以表达成: Hold slack=Tco + Tdata Th,这就是为什么说源寄存器与目的寄存器之间延迟不能太短的原因,时间太短,slack越小。,Company Logo,六、实例分析,设计范例说明 设计范例为一个32bit x 32bit的Pipeline乘法器,其架构如图一所示。Pipeline共分3级,电路之输出输入端皆有暂存器储存运算数值,Company
27、 Logo,六、实例分析,时序约束(Timing Constraint) 要作静态时序分析,首先要有时序限制。此设计范例的时序限制如下所述。(后为设定时序限制之SDC指令) 1 时脉规格(Clock Specification) 1.1 周期:6ns create_clock -name MY_CLOCK -period 6 -waveform 0 3 get_ports clk 1.2 Source Latency:1ns set_clock_latency -source 1 get_clocks MY_CLOCK 1.3 Network Latency:1ns set_clock_lat
28、ency 1 get_clocks MY_CLOCK 1.4 Skew:0.5ns set_clock_uncertainty 0.5 get_clocks MY_CLOCK,Company Logo,六、实例分析,合成软体之时序报告 当Synopsys Design Compiler将电路合成完毕后,执行下面指令可以產生时序报告: report_timing -path full -delay max -max_paths 10 -input_pins -nets -transition_time -capacitance timing_syn.txt 时序报告会储存在timing_syn.
29、txt此档案中。在档案的开头不远处,会列出此电路最有可能不符合时序规格的路径(Critical Path)。例如: Startpoint: S2/B2_reg_0_ (rising edge-triggered flip-flop clocked by MY_CLOCK) Endpoint: S3/P3_reg_47_ (rising edge-triggered flip-flop clocked by MY_CLOCK) Path Group: MY_CLOCK Path Type: max,Company Logo,六、实例分析,合成软体之时序报告 当Synopsys Design Co
30、mpiler将电路合成完毕后,执行下面指令可以產生时序报告: report_timing -path full -delay max -max_paths 10 -input_pins -nets -transition_time -capacitance timing_syn.txt 时序报告会储存在timing_syn.txt此档案中。在档案的开头不远处,会列出此电路最有可能不符合时序规格的路径(Critical Path)。例如: Startpoint: S2/B2_reg_0_ (rising edge-triggered flip-flop clocked by MY_CLOCK)
31、Endpoint: S3/P3_reg_47_ (rising edge-triggered flip-flop clocked by MY_CLOCK) Path Group: MY_CLOCK Path Type: max,Company Logo,六、实例分析,继续往下检视档案,你会看到Critical Path的详细时序资讯。例如: Point Fanout Cap Trans Incr Path - clock MY_CLOCK (rise edge) 0.00 0.00 clock network delay (ideal) 2.00 2.00 S2/B2_reg_0_/CK (D
32、FFHQX4) 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/SUM47 (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 data arriv
33、al time 7.96,Company Logo,六、实例分析,继续往下检视档案,你会看到Critical Path的详细时序资讯。例如: Point Fanout Cap Trans Incr Path - clock MY_CLOCK (rise edge) 6.00 6.00 clock network delay (ideal) 2.00 8.00 clock uncertainty -0.50 7.50 S3/P3_reg_47_/CK (DFFTRXL) 0.00 7.50r library setup time -0.28 7.22 data required time 7.2
34、2 - data required time 7.22 data arrival time -7.96 - slack (VIOLATED) -0.74,Company Logo,六、实例分析,先由左往右看,第一个直行Point标示出路径中的节点,节点可以是元件的输出入端点,也可以是元件间的连线(Net)。第二个直行Fanout标示节点推动的元件个数。第三个直行Cap标示出节点推动的负载。第四个直行Trans标示出节点上信号的转换时间(Transition Time)。第五个直行Incr标示出节点造成的延迟时间。最后一个直行Path则是自路径起点到到此节点为止的总延迟时间。 再来我们由上往下检
35、视Critical Path的时序资讯。 clock network delay (ideal) 2.00 2.00 此处的2ns的clock network delay是由我们给定的时序限制计算而来的,因为我们给定了各1ns的source latency及network latency,加起来共有2ns。 S2/B2_reg_0_/CK (DFFHQX4) 0.00 0.00 2.00 r 此行表示Critical Path的起点为S2 Instance下的B2_reg_0_这个instance的CK端点。由於有2ns的network delay,所以时脉信号到达此节点的时间为2ns(图三)
36、。至於0ns的Transition Time则是因为我们没有在时脉规格中定义其数值,合成软体的会假设是一个0ns Transition Time的理想波形。最右边的r是因为这个Flip-Flop是正缘触发,所以以r表示。如果是f就是负缘触发。,Company Logo,六、实例分析,Company Logo,六、实例分析,S2/B2_reg_0_/Q (DFFHQX4) 0.16 0.30 2.30 r 接著信号自起点开始向终点传递,这一行表示路径起点的Flip-Flop从CK端点到Q端点的时间延迟为0.3ns,且在此节点的Transition Time为0.16ns。所以信号到达此节点的时间
37、为2+0.3=2.3ns(图四)。最右边显示r是因为Q端点从0变化到1时的延迟时间比1变化到0时的延迟时间还长,如果状况相反的话,最右边会标示f。以上数值是由元件库(Cell Library)里的时序表(Timing Table)查出来的,其计算的方式请参照静态时序分析(Static Timing Analysis)基础及应用(上)。 S2/n36 (net) 1 0.03 0.00 2.30 r S2/U10/A (BUFX20) 0.16 0.00 2.30 r 这两行和上一行最右边的Path栏位都一样,这是因为其实它们是同一个节点,所以信号到达时间一样。仔细的读者这时候可能会有个疑问,F
38、lip-Flop的Q输出端和后面Buffer的输入端A信号到达时间应该有一个连线延迟(Interconnect Delay)的差距吧?想法上是没错,但因为Design Compiler这个合成器将连线延迟的时间合併到元件延迟(Cell Dealy)的时间内计算,所以从时序报告中看不到延迟时间的资讯。也就是说,如果Point栏是net的话,各位只需去检视Fanout和Cap栏位即可。S2/n36这个net只有推动一个Buffer,其Fanout为1。负载则是Buffer的输入负载和预估连线负载的总和,其值为0.03pF。,Company Logo,六、实例分析,Company Logo,六、实例分析,S2/U10/Y (BUFX20) 0.23 0.21 2.51 r 这一行是描述Buffer从输入端到输出端的时间延迟,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 做路基合同标准文本
- 共享库房装修合同标准文本
- 专升本合同标准文本
- 企业合作社股制合同样本
- 产品订货返利合同标准文本
- 两个乙方合同标准文本
- 关于合同样本通知
- 书店搬运合同样本
- ktv股权转让合同标准文本
- 低层房产转让合同样本
- 人工智能与医学影像技术
- 品管圈PDCA改善案例-降低术中低体温发生率
- 2024版儿科教学查房教案模板()
- 2024-2024年上海市高考英语试题及答案
- 2024扩张性心肌病研究报告
- 卫生监督协管员培训课件
- 2024年社区卫生服务中心工作计划(五篇)
- GB/T 14233.3-2024医用输液、输血、注射器具检验方法第3部分:微生物学试验方法
- IEC 62368-1标准解读-中文
- QC课题提高金刚砂地面施工一次合格率
- 《数学课程标准》义务教育2022年修订版(原版)
评论
0/150
提交评论