
_EDA工具课程之PrimeTime.ppt
65页EDA技术实验,Synopsys公司的静态时序分析(STA)工具PrimeTime,,.,主要内容,,,,PrimeTime实例分析,,.,,,,,一、静态时序分析(STA)介绍,简介 静态时序分析(Static Timing Analysis,简称STA)是一种验证方法它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分析分析的最终结果当然是要求系统时序满足设计者提出的要求 使用前提 静态时序分析的前提是对同步逻辑设计进行时序验证,设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,即有约束才会有分析若设计者不添加时序约束,那么时序分析就无从谈起 目的 进行静态时序分析的主要目的就是为了找出隐藏的时序问题,提高系统工作主频以及增加系统的稳定性对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率一、静态时序分析(STA)介绍,静态时序分析的主要优点 1、能够详尽地覆盖时序路径; 2、不需要测试向量; 3、执行速度快; 4、能够为时序冲突生成全面的报告; 5、能够完成使用仿真所不能实现的复杂分析,例如min/max 分析、组合环检测、自动地检测并消除无效路径。
静态时序分析的缺点 静态时序分析的优点并不意味着STA能够完全替代动态仿真,静态验证工具与动态验证工具必须协同存在一个主要的原因是STA只关注时序,不能验证一个设计的逻辑功能;另一个是STA针对同步逻辑设计,因而某些设计风格并不是很适合静态的方法例如,一个设计的异步部分可能要求使用动态仿真,当然,任何混合信号的部分更是如此二、PrimeTime简介,PrimeTime简介 PrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模,同步,数字ASIC.PrimeTime适用于门级的电路设计,可以和Synopsys公司的其它EDA软件非常好的结合在一起使用. PrimeTime的特点和功能 作为专门的静态时序分析工具,PrimeTime可以为一个设计提供以下的时序分析和设计检查: 建立和保持时间的检查; 时钟脉冲宽度的检查; 时钟门的检查; 未约束的时序端点; 组合反馈回路; 基于设计规则的检查,包括对最大电容,最大传输时间,最大扇出的检查等二、PrimeTime简介,PT和DC的STA的不同 1、目的不同 DC主要是为了综合,所以它的时序约束都是以苛刻的估算为主,可以不区分什么分析类型,但PT主要是为了验证它的约束,主要以来依赖于实际提取数据一提取的多数文件为主,必须区分什么操作条件以及相应的什么分析类型策略。
2、级别不同 DC的综合是针对block的,所以它的时序约束也是针对预估的block的时序要求来编写的,所以它是局部电路的时序约束但PT主要是针对系统的静态时序分析,所以它的时序约束主要是针对系统的性能规格来编写,具有强制性和参照性二、PrimeTime简介,PT和DC的STA的不同 3、输入的文件类型不同 DC主要读入的文件类型是电路的RTL描述,对它们的STA主要为了为综合提供一个依据,便于DC寻找能满足要求的门;PT读入的是设计的网表,属于门级描述,对它的STA主要是为验证实际电路是否满足系统要求 4、应用的阶段不同 DC用于设计的逻辑综合阶段,主要作用是将设计的RTL描述转换为电路门级描述;PT用于设计的验证阶段,主要作用是验证具体电路在苛刻条件下是否存在时序异常三、PrimeTime进行时序分析的流程,,1、 建立设计环境 - 建立搜索路径(search path)和链接路径(link path) 读入设计和库 (read_verilog和read_db) - 链接顶层设计 建立运作条件、连线负载模型、端口负载、驱动和传输时间,,.,,,,,三、PrimeTime进行时序分析的流程,,2、 说明时序声明(约束) 定义时钟周期、波形、不确定性(uncertainty)和滞后时间(latency) 说明输入、输出端口的延时。
PT约束的对象 设计 参照 单元 端口 引脚 时钟 连线,,.,,,,,三、PrimeTime进行时序分析的流程,,时钟的不确定性(uncertainty),,.,,,,,三、PrimeTime进行时序分析的流程,,时钟的滞后时间(latency),,.,,,,,三、PrimeTime进行时序分析的流程,,时钟的抖动(jitter),,.,,,,,三、PrimeTime进行时序分析的流程,,时钟的电平转换(transition),,.,,,,,三、PrimeTime进行时序分析的流程,,3、 说明时序例外情况(timing exceptions) 设置多周期路径(multicycle paths) 设置虚假路径(false paths) 定义最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs),,.,,,,,三、PrimeTime进行时序分析的流程,,4、 进行分析和生成报告 时序约束检查 生成约束报告( constraint reports ) 生成瓶颈分析报告( bottleneck reports ) -生成路径时序报告( path timing reports )。
四、PrimeTime的用户界面,,PrimeTime 提供两种用户界面,图形用户界面GUI(Graphical User Interface)和基于Tcl 的命令行界面pt_shell,其运行方式分别是: PrimeTime pt_shell,,.,,,,,五、PrimeTime命令简介,,设计输入 PT不能读取RTL源文件,它是静态分析引擎,只能读取映射后的设计,包括db、verilog、vhdl和edif等格式的文件 pt_shell read_db netlist_only .db 由于db格式的网表包含约束和环境属性等,故使用netlist_only 选项指示PT只加载结构化网表 pt_shell read_verilog .v Verilog网表文件 pt_shell read_verilog .edf Edif网表文件 pt_shell read_verilog .vhd VHDL网表文件五、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_ports clk,,.,,,,,五、PrimeTime命令简介,,时钟延时 从时钟树到具体寄存器的时钟输入端会产生一定的延迟,这个延迟用 set_clock_latency -rise-fall -min-max -source delay object_list pt_shell set_clock_latency 1.2 -rise get_clocks CLK1,,.,,,,,五、PrimeTime命令简介,,时钟转换 set_clock_transition -rise-fall -min -max transition clock_list pt_shell set_clock_transition 0.38 -rise get_clocks CLK1 传播时钟 set_propagated_clock object_list pt_shell set_propagated_clock all_clocks,,.,,,,,五、PrimeTime命令简介,,时钟歪斜 在同步设计中,数据在一个时钟边沿由FF发送,在下一个时钟沿由另一个FF接收,理想情况下两个边沿间应有准确的一个时钟周期的延时,然而由于连线延迟的差异,接收时钟沿可早、可晚。
为保证设计的robust,须指定时钟歪斜 set_clock_uncertainty -from from_clock | -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,,.,,,,,五、PrimeTime命令简介,,指定生成的时钟 create_generated_clock -name clock_name -source master_pin -divide_by divide_factor | -multiply_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,,.,,,,,五、PrimeTime命令简介,,虚假路径 set_false_path -from from_list -through through_list -to to_list pt_shell set_false_path -from ff12 -to ff34 pt_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,,.,,,,,五、PrimeTime命令简介,,设置虚假路径,,.,,,,,五、PrimeTime命令简介,,设置虚假路径,,.,,,,,五、PrimeTime命令简介,,设置虚假路径,,.,,,,,五、PrimeTime命令简介,,设置虚假路径,,.,,,,,五、PrimeTime命令简介,,多周期路径,,.,,,,,五、PrimeTime命令简介,,多周期路径,,.,,,,,五、PrimeTime命令简介,,多周期路径,,.,,,,,五、PrimeTime命令简介,,时序约束检查,,.,,,,,五、PrimeTime命令简介,,生成报告,,.,,,,,五、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 。
