静态时序分析(PrimeTime)&形式验证(Formality)详解
静态时序分析原理解读及实例应用

静态时序分析原理解读及实例应用摘要:静态时序分析(Static Timing Analysis)是FPGA(现场可编程逻辑器件)分析电路时序的最坏情况,验证此时的电路性能是否满足用户的时序要求。
静态时序分析的目的是提高系统工作主频及增加系统的稳定性。
关键词:静态时序分析;FPGA;关键路径引言静态时序分析是基于电路的拓扑结构,计算逻辑单元延时和互联延时,提取出整个电路的所有时序路径,找出延时最大的关键路径,确定电路工作时所能达到的最大频率,并检查建立时间和保持时间余量,其目的是检查FPGA 芯片中设计电路的延时和速度等性能指标,分析电路时序的最坏情况,验证此时的电路性能是否满足用户的时序要求。
相比较于动态时序仿真具备更加高效和完备的特点。
目前比较流行的静态时序分析工具有Prime Time,TimeQuest Timing Analyzer、Vivado系列等工具。
1时序中的基本概念1.1时钟周期和最高频率时序路径分为输入端口到内部寄存器路径,内部寄存器到寄存器路径,内部寄存器到输出端口路径,FPGA内部时序分析的对象为“寄存器—寄存器”路径,时序逻辑设计都是基于时钟沿的。
在Quar tusⅡ下的时序分析器TimeQuest的时序报告中有启动沿和锁存沿的概念,它们是针对时钟而言的。
启动沿(launch edge):前级寄存器发送数据时对应的时钟沿,是时序分析的起点。
锁存沿(latch edge):后级寄存器捕获数据时对应的时钟沿,是时序分析的终点。
锁存沿一般默认与启动沿相差一个时钟周期。
时钟周期的概念是FPGA 中时序定义的基础,根据图1计算时钟最小周期。
图1时钟周期的计算时钟最小时钟周期计算式为:T clk= τco+ τdata_dalay+ τsu−τclk_skew(式1)其中τclkskew= τclk1−τclk2(式2)式1中,T clk是时钟的最小周期。
τco是寄存器固有的时钟到输出延迟,是寄存器的固有属性,指的是寄存器相应时钟沿有效,将数据送到输出端口的内部延时参数,典型值一般小于1ns。
EDA工具课程之PrimeTime

Company Logo
五、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进行时序分析的流程
3、 说明时序例外情况(timing exceptions) -设置多周期路径(multicycle paths) -设置虚假路径(false paths) -定义最大和最小延时、路径分割(path segmentation)和失效弧 (disabled arcs)
Company Logo
三、PrimeTime进行时序分析的流程
1、 建立设计环境 - 建立搜索路径(search path)和链接路径(link path) - 读入设计和库 (read_verilog和read_db) - 链接顶层设计 -建立运作条件、连线负载模型、端口负载、驱动和传输时间
Company Logo
五、PrimeTime命令简介
创建时钟
create_clock -period period_value [-waveform edge_list] [-name clock_name] [source_objects]
静态时序分析(Static Timing Analysis)

STA Vs Event Simulation
Event Driven Timing simulation STA
Vector Generation Design Coverage Runtime Capacity
Required Vector dependent(limited) coverage Takes several days/weeks of CPU time Can run out of memory for multimillion designs No special features for timing sis
静态时序分析
潘伟涛
主要内容
• • • • • What is STA? Why STA? What STA do? When STA? How to do STA?
STA的概念
静态时序分析简称STA(Static Timing Analysis),是一种针对大 规模门级电路进行时序验证的有效方法。它只需要根据电路网表 的拓扑,就可以检查电路设计中所有路径的时序特性,测试路径 的覆盖率理论上可以达到100%,从而保证时序验证的完备性; 同时由于不需要测试向量,所以STA验证所需时间远小于门级仿 真时间。
Analysis/Debug features
Design style support
No Restrictions
STA in the ASIC Design Flow
Tech Library HDL Source
Pre-layout STA
Module netlists Constraints STA models Logic synthesis
• The STA tool: Builds netlist in memory Exhaustively traces every possible timing path Computes and propagates delays and skews Determines critical paths Reports timing paths, violations, etc
Primetime时序分析流程与方法

PrimeTime是Synopsys的一个单点的全芯片、门级静态时序分析器。
它能分析大规模、同步、数字ASICS的时序。
PrimeTime工作在设计的门级层次,并且和Synopsys其它工具整合得很紧密。
基本特点和功能:时序检查方面:建立和保持时序的检查(Setup and hold checks)重新覆盖和去除检查(Recovery and removal checks)时钟脉冲宽度检查(Clock pulse width checks)时钟门锁检查(Clock-gating checks)设计检查方面:没有时钟端的寄存器没有时序约束的结束点(endpoint)主从时钟分离(Master-slave clock separation)有多哥时钟的寄存器对层次敏感的时钟(Level-sensitive clocking)组合电路的反馈环(Combinational feedback loops)设计规则检查,包括最大电容(maximum capacitance)、最大传输时间(maximum transition)和最大扇出(maximum fanout)PrimeTime 时序分析流程和方法:在时序分析之前需要做的步骤:1、建立设计环境- 建立搜索路径(search path)和链接路径(link path)- 读入设计和库- 链接顶层设计- 建立运作条件、连线负载模型、端口负载、驱动和传输时间2、说明时序声明(约束)- 定义时钟周期、波形、不确定性(uncertainty)和滞后时间(latency)- 说明输入、输出端口的延时3、说明时序例外情况(timing exceptions)- 多周期路径(multicycle paths)- 不合法路径(false paths)- 说明最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs)4、进行分析和生成报告- 检查时序- 生成约束报告- 生成路径时序报告开始先建立目录并将PrimeTime本身所带的一个例子拷到新建的目录下,在下面的内容中将要用到这个例子。
模板-使用PrimeTime,PX进行功耗分析

使用PrimeTime,PX进行功耗分析使用PrimeTime PX进行功耗分析一、工具介绍PrimeTime是synopsys开发的一款专门的静态时序分析软件,PrimeTime PX是集成在软件中的一个工具,可以用来对Design Compilier(DC)综合后的V文件进行功耗分析。
PrimeTime的一个特点就是它对功耗的分析比DC给出的功耗信息要精确得多,所以一般采用PTPX进行功耗分析。
PTPX可以进行两种模式的功耗分析:l 平均功耗分析(Averaged Power Analysis) 在这种模式下,动态翻转速率可以是默认值或者是用户自定义的,也可以由HDL的仿真文件提供。
进行平均功耗分析时可以使用两种格式的激励文件,分别是SAIF和VCD。
l 基于时序的功耗分析(Time-Based Power Analysis) 在这种模式下,为了获得精确的与时序有关的功耗信息,必须要有仿真文件提供激励。
Time-Based支持VCD、VPD以及fsdb格式的激励。
特别是对于VCD文件来说,可以支持RTL级别的仿真文件或者是Gate级别的仿真文件。
对于RTL Level的VCD文件要使用read_vcd –rtl或者是read_vcd –zero_delay命令,否者会被识别成Gate Level的仿真文件。
二、PTPX工具进行功耗分析流程使用PTPX进行功耗分析之前,要准备如下文件:l 逻辑综合后的.V文件 l 静态时序分析的.sdc文件 l有功耗信息的.db文件 l RTL的仿真文件.VCD 2.1.V文件、.sdc文件以及.db文件的获得在使用DC完成对工程的综合后,会得到一个如下图所示的V文件(以本实验室综合所用工程rfid2016_v2为例,V文件存放在/rfid2016_v2/flow/syn/result目录下):图2-1 .V文件存放目录 V文件里面的内容如下:图2-2 综合后.V文件内容接下来获取.sdc文件,PTPX用到的.sdc文件和DC用到的.sdc文件一致。
synopsys prime time范例

synopsys prime time范例Prime Time(PT)是Synopsys的签收品质(sign-off quality)的静态时序分析工具。
静态时序分析(STA)无疑是设计流程中最重要的一步,它决定了设计是否在所要求的速度下工作,PT分析设计中的时序延迟并标注出必须改正的违例。
PT是一个不在DC工具套件中集成的单独的工具,它是一个和DC 并行工作的单独的工具。
PT与DC有一致的命令,它们生成类似的报告,并支持共同的文件格式。
此外PT也能生成DC用于综合和优化的时序断言,PT的命令行界面是基于称为Tcl为工业标准语言。
与DC 的内部STA引擎相比,PT更快,占用的内存更少,并且还有其他的一些特色。
Prime Time环境一经调用,PT就寻找名为“.synopsys_pt.setup”的文件并默认包括它。
这个文件包含了定义PT使用的设计环境的必要设置变量,示例如下:变量serach_path定义了一个列表,它包含了当查找库和设计时需要查看的目录;变量link_path定义了一个库列表,它包含用于连接设计的单元。
Tcl提供了大部分的基本程序结构——变量、运算符、表达式、控制流、循环和过程等。
另外,Tcl也支持大多数的UNIX命令,是PT中的脚本语言。
本节简要介绍Tcl的一些基础语法。
使用set命令定义变量并给它们赋值,例如:set clock_name clkset_clock_preiod 20值可以是数字或字符串——Tcl不区分数值型变量和字符串型变量。
在算数场合,它自动使用数字值。
上例中,社变量clock_name 为字符串clk,设变量clock_period为数值20。
通过在变量名前加$来引用变量。
如果在变量名前没有加$,那么Tcl将其视为字符串。
create_clock$clock_name-period 20-waveform[0 10]通过expr命令进行算数运算。
这个有用的技术提供了贯穿于整个脚本的全局参数化的方法。
pt静态时序分析流程

pt静态时序分析流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!PT(PrimeTime)是一种常用的静态时序分析工具,用于验证集成电路设计的时序性能。
PrimeTime

--Setting False Paths • False paths是指在时序分析时可以被忽略的 路径。 • 使用set_false_path命令指定设计中的false paths。 • 当(约束)目标是一个时序节点,false path仅仅应用于两个节点之间。而当(约束) 目标是一个时钟,false path将应用于所有 该时钟控制的源节点(-from)到目标节点(-to) 的路径。
Divide-by-2 Clock Definition
-Generated Clock
生成时钟是指由 电路生成的时钟, 而不是直接用外 部的资源。一个 简单的例子—适 中的二分频(如 下图),每个生 成的时钟都必须 用命令 create_generated _clock定义,此 命令指出生成时 钟的源的引脚或 端口
Multicycle Hold Timing Exceptions
在输入数据 后的第三个 时钟上升沿 建立检查
保持检 查时间 比默认 的早2个 时钟周 期
建立
默认 的保 持
总结
• set_multicycle_path -setup 2 -from ..-to .. 命令 中-setup后的数指定了在哪个时钟沿执行建立 检查,默认为1。 • set_multicycle_path -hold 2 -from .. -to ..命令中hold后的数指定了保持检查从默认位置向后移 动的周期数,默认为0. • (hold cycles) = (setup option value) – 1 – (hold option value) • By default, hold cycles = 1 – 1 – 0 = 0. • 上图中, hold cycles = xception Paths
EDA技术Synopsys公司STA工具PrimeTime介绍ppt课件

ASIC设计中心
PrimeTime命令
EDA技术实验
1 设计输入
PT不能读取RTL源文件,它是静态分析引擎, 只能读取映射后的设计,包括db、verilog、 vhdl等格式的文件。 pt_shell> read_db –netlist_only <filename>.db
2018/11/15 2 ASIC设计中心
PT
EDA技术实验
PT是Synopsys的sign-off quality的STA 工具,是一个单点的全芯片、门级静态时 序分析器。 PrimeTime工作在设计的门级层次,并 且和Synopsys其它工具整合得很紧密。
2018/11/15
3
ASIC设计中心
2018/11/15
7
ASIC设计中心
PT进行时序分析的流程
EDA技术实验
进行时序分析:
在作好以上准备工作的基础上,可以对电路 进行静态时序分析,生成constraint reports 和path timing reports。
2018/11/15
8
ASIC设计中心
PrimeTime的用户界面
读入设计(和库文件) 链接顶层设计 对必要的操作条件进行设置,这里包括了线上负载 的模型、端口负载、驱动、以及转换时间等
2018/11/15
5
ASIC设计中心
PT进行时序分析的流程
EDA技术实验
指定时序约束(timing constraints)
定义时钟周期、波形、不确定度(uncertainty)、延 时(latency) 指明输入输出端口的延时等
PT
EDA技术实验
基本特点和功能:
建立和保持时间的检查(setup and hold checks) 时钟脉冲宽度的检查 门控时钟检查(clock-gating checks) recovery and removal checks unclocked registers 未约束的时序端点(unconstrained timing endpoints) multiple clocked registers 组合反馈回路(combinational feedback loops) 基于设计规则的检查,包括对最大电容、最大传输时间、 最大扇出的检查等。
时序分析之基本概念

时序分析之基本概念Quartus II中的时序分析为静态时序分析,即STA(static timing analysis)。
STA分析的对象是同步逻辑电路,通过路径计算延迟的总和,分析时序间的相对关系。
业界最流⾏的分析⼯具是Primetime,此系列以Altera 的Quartus 为基础的。
STA主要就是分析f max、t su、t h、t co这⼏个参数。
这些参数的定义如下:f MAX : 在不违反内部建⽴(t SU) 和保持(t H) 时间要求时,可以达到的最⼤时钟频率。
它是时序分析中最重要的指标,综合表现所设计时序的性能。
t SU : 触发器的时钟沿到来之前,输⼊数据或使能信号稳定不变的最⼩时间间隔,如果不满⾜,数据就⽆法打⼊触发器。
t H:触发器的时钟沿到来之后,输⼊数据或使能信号稳定不变的最⼩时间间隔,如果不满⾜,数据也⽆法打⼊触发器。
t CO :时钟信号在触发(寄存)器的输⼊引脚上发⽣跳变之后,输⼊信号从寄存器D端到Q端的最短时间。
各参数的图形描述:fig1. t su 与 t h的关系:如果不满⾜建⽴/保持时间,触发器可能会经历亚稳态。
这两个时间是站在同步时序电路的整个路径上看的。
t su 与 t h是和slack有关的两个量。
fig2. f MAX的计算公式:f max —电路能跑的最⾼频率; t clk—电路能跑的最⼩周期T co — 时钟跳变后,从D经过触发器到Q的延迟T data — 组合逻辑本⾝造成的延迟T su — 触发器本⾝的建⽴时间T cik_skew — 时钟偏斜T co与T su为触发器内部固有延迟,典型值为1~2ns,即Quartus Handbook中的 mT co 和 mT su 。
可知,只可能通过缩短触发器间的组合逻辑电路延迟来提⾼同步时序电路的⼯作频率。
因⽽,就有必要把⽐较⼤的组合逻辑分解为较⼩的⼏块,并在中间插⼊触发器来提⾼电路的⼯作频率,这也就是“流⽔线”技术的基本原理。
primetime dmsa 变量-概述说明以及解释

primetime dmsa 变量-概述说明以及解释1.引言1.1 概述在进行Primetime DMSA (Delay Mode Setup Assist) 变量分析之前,我们首先需要了解Primetime DMSA 是什么以及它在电路设计中扮演的角色。
Primetime DMSA 是半导体行业中一种常用的时序分析工具,它用于评估和优化集成电路的时序约束。
时序约束是指对电路中各个时序参数的限制,例如时钟频率、数据延迟等。
随着集成电路设计的复杂性和规模的不断增大,时序的分析和优化变得越来越重要。
Primetime DMSA 提供了强大的功能,能够帮助设计师在各种约束条件下进行时序分析,并辅助设计师进行设计优化。
它可以通过对电路中各个时序变量进行敏感性分析,帮助设计师找到对性能影响最大的变量,从而进行有针对性的优化。
本文将重点介绍Primetime DMSA 中的三个关键变量:变量A、变量B和变量C。
这些变量在电路设计中具有重要的影响,对电路的性能和可靠性都有一定的影响。
通过深入分析这些变量的特性和作用,我们可以更好地理解其对电路时序的影响,进而为工程师提供更准确的设计指导和优化建议。
接下来的章节将详细介绍这些变量的定义、测量方法以及对电路性能的影响。
2.1 将着重讨论变量A,2.2 将深入探讨变量B,而2.3 则将把光芒投射到变量C上。
最后一节结论将总结对这些变量的影响,并为读者提供一些值得注意的结论和启示。
通过本文的阅读,读者将能够更全面地了解Primetime DMSA 变量的重要性以及如何进行时序的优化。
希望本文能为读者提供有用的信息,并对电路设计师在Primetime DMSA 分析中的决策过程提供一定的指导。
1.2 文章结构文章结构:本文主要分为引言、正文和结论三个部分。
其中,引言部分包括概述、文章结构和目的。
正文部分主要介绍primetime dmsa 变量的相关内容,其中包括变量A、变量B和变量C的介绍和影响。
PrimeTime使用说明(中文)

本文介绍了数字集成电路设计中静态时序分析(Static Timing Analysis)和 形式验证(Formal Verification)的一般方法和流程。这两项技术提高了时序分 析和验证的速度,在一定程度上缩短了数字电路设计的周期。本文使用 Synopsys 公司的 PrimeTime 进行静态时序分析,用 Formality 进行形式验证。由于它们都是 基于 Tcl(Tool Command Language)的工具,本文对 Tcl 也作了简单的介绍。
Tcl 与 pt_shell 的使用
6
第三章 Tcl 与 pt_shell 的使用
Tcl 是 Tool Command Language 的缩写,由于 PrimeTime 的命令语言是基于 Tcl 标准的,所以在这一章里我想大致介绍一下 Tcl 在 PrimeTime 中的基本使用。 除了一些最常用的 Tcl 命令之外,主要介绍了 pt_shell 中有关对象和属性的操 作。
7.2 一些基本概念
7.2.1 Reference Design 和 Implementation Design
7.2.2 container
7.3 读入共享技术库
7.4 设置 Reference Design
7.5 设置 Implementation Design
7.6 保存及恢复所作的设置
7.7 验证
PrimeTime 简介
4
在数字集成电路设计的流程中,版图前、全局布线之后已经版图后,都可以使 用 PrimeTime 进行静态时序分析。
§2.2 PrimeTime 进行时序分析的流程 使用 PrimeTime 对一个电路设计进行静态时序分析,一般要经过下面的步骤: 1)设置设计环境 在可以进行时序分析之前,首先要进行一些必要的设置和准备工作。具体来说 包括了: ² 设置查找路径和链接路径 ² 读入设计和库文件 ² 链接顶层设计 ² 对必要的操作条件进行设置,这里包括了线上负载的模型、端口负载、驱 动、以及转换时间等 ² 设置基本的时序约束并进行检查 2)指定时序约束 (??timing assertions/constraints) 包括定义时钟周期、波形、不确定度(uncertainty)、潜伏性(latency),以及 指明输入输出端口的延时等。 3)设置时序例外(??timing exceptions): 这里包括了: ² 设置多循环路径(multicycle paths) ² 设置虚假路径(false paths) ² 定义最大最小延时、路径的分段(path segmentation)以及无效的 arcs 4)进行时序分析: 在作好以上准备工作的基础上,可以对电路进行静态时序分析,生成 constra -int reports 和 path timing reports。 以上仅仅是 PrimeTime 进行静态时序分析的简单流程,在本文以下的部份中将 会有更详细的叙述。
静态时序分析

静态时序分析电子科技大学詹璨铭什么是静态时序分析⏹静态时序分析STA(static timing analysis)⏹定义⏹与动态时序分析的差异怎样做静态时序分析⏹使用工具primetime (简称pt)与DC ⏹两者的兼容性⏹为什么使用primetime?Primetime与DC的兼容性⏹使用同样的工艺库和设计文件⏹许多指令一样⏹相同的算法,很多结果也一样⏹从一个synthesizable subcircuit 中,pt能捕获一个时序环境,并写成一系列的dc指令,在dc中用其为这个subcircuit定义时间约束和时序优化--值得关注⏹为dc写的dcsh格式的脚本可以翻译成在pt上用的格式。
在pt中定义为抄本(transcript)格式⏹这两个都支持用SDC(synopsys design constraints)格式指定设计规则,包括时间面积约束。
为什么用pt⏹更快效率更高⏹占用更少的内存⏹具有高级的芯片级的分析能力和高级的建模能力。
STA中的对象⏹Design -完整的设计⏹Cell(instance)-设计中使用的一个元件⏹Net -金属连线⏹Port -design 的I/O口⏹Pin -cell 的I/O口⏹Reference -是元件的参考的源定义⏹Clock -创建的时钟信号时序弧(timing arc)⏹定义:如果把电路看作是一张很大的拓扑图,那么图中的结点就是电路中的引脚(pin)。
结点与结点之间的部分,我们称作是时序弧(timing arc)。
他定义了任意两个结点之间的时序关系。
⏹最直观基本的理解:cell delay与net delay。
这两个也是计算下面时序弧的基础。
每段时序弧的延时就是把这两个值不断相加时序弧分类一:时序的延时⏹组合时序弧(combinational timing arc)⏹边沿时序弧(edge timing arc)⏹重置和清除时序弧(preset and clear timing arc)⏹三态使能/无效时序弧(three state enable/disable timing arc)时序弧分类二:时序约束⏹建立时序弧(setup timing arc)⏹保持时序弧(hold timing arc)⏹恢复时序弧(recovery timing arc)⏹清除时序弧(removal timing arc)⏹宽度时序弧(width timing arc)组合时序弧(combinationaltiming arc)⏹负函数(negative unate)⏹正函数(positive unate)⏹非函数(non-unate)calculation)--cell delay⏹是从一个逻辑门的输入到输出的延迟量⏹通过工艺库(technology library)来查找的⏹这是个2维表,查找项是输入的过渡时间(input transition),输出的电容负载(output load capacitance)没有对应的值,做一个线性的推导,计算出相应的值。
门级静态时序分析与PrimeTime使用

第六章门级静态时序分析 PrimeTime一、PrimeTime简介PrimeTime是Synopsys的一个单点的全芯片、门级静态时序分析器。
它能分析大规模、同步、数字ASICS的时序。
PrimeTime工作在设计的门级层次,并且和Synopsys 其它工具整合得很紧密。
基本特点和功能:时序检查方面:建立和保持时序的检查(Setup and hold checks)重新覆盖和去除检查(Recovery and removal checks)时钟脉冲宽度检查(Clock pulse width checks)时钟门锁检查(Clock-gating checks)设计检查方面:没有时钟端的寄存器没有时序约束的结束点(endpoint)主从时钟分离(Master-slave clock separation)有多哥时钟的寄存器对层次敏感的时钟(Level-sensitive clocking)组合电路的反馈环(Combinational feedback loops)设计规则检查,包括最大电容(maximum capacitance)、最大传输时间(maximum transition)和最大扇出(maximum fanout)PrimeTime 时序分析流程和方法:在时序分析之前需要做的步骤:1、建立设计环境-建立搜索路径(search path)和链接路径(link path)-读入设计和库-链接顶层设计-建立运作条件、连线负载模型、端口负载、驱动和传输时间2、说明时序声明(约束)-定义时钟周期、波形、不确定性(uncertainty)和滞后时间(latency)-说明输入、输出端口的延时3、说明时序例外情况(timing exceptions)-多周期路径(multicycle paths)-不合法路径(false paths)-说明最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs)4、进行分析和生成报告-检查时序-生成约束报告-生成路径时序报告二、静态时序分析中路径延时的计算静态时序分析工具一般将电路网表看成一个拓扑图,图中的节点(node)代表电路中的引脚(pin)。
手机数字基带处理芯片中的静态时序分析

手机数字基带处理芯片中的静态时序分析1.引言随着深亚微米技术的进展,数字的规模已经进展到上百万门甚至上千万门。
工艺也从几十um提高到65nm甚至45nm。
这样的电路规模做验证的时光在囫囵芯片的开发周期所占的比例会越来越重。
通常,在做验证的时候,我们都会采纳动态验证的办法。
现在,用静态验证办法(STA Static Timing Analysis),不仅能够完成验证的工作,而且还能大大节约验证所需要的时光。
静态时序分析简称它提供了一种针对大规模门级电路举行时序验证的有效办法。
静态时序分析是相对于动态时序分析而言的。
动态时序分析时不行能产生完备的测试向量,笼罩门级网表中的每一条路径。
因此在动态时序分析中,无法裸露一些路径上可能存在的时序问题;而静态时序分析,可以便利地显示出所有路径的时序关系,因此逐步成为设计签字认可的标准。
2.静态时序分析工作原理本文以Synopsys公司的Prime Time SI作为时序分析的工具,介绍静态时序分析的工作原理。
Prime Time把囫囵设计电路打散成从主要的输入端口到电路触发器、从触发器到触发器、从触发器到主要输出端口、从主要的输出端口到主要的输出端口、四种类型的时序路径,分析不同路径的时序信息,得到建立时光(setup time)和保持时光(hold time)的计算结果。
而Prime time SI又在Prime time的基础上加入串扰分析(Crosstalk analysis)。
串扰是由两个或者多个物理相邻连线之间的容性交错耦合(capacitive cross-coupling)产生的互相作用。
随着工艺越来越长进,在130nm或者90nm的工艺下,串扰的影响已经变得与单元延迟和线延迟一样重要。
2.1 时序路径的分析囫囵电路的静态时序分析都是由时序路径分析组成。
时序路径分析就是检查从放射沿(lunching edge)到捕捉沿(capturing edge)的时光是否满足设计的需要。
静态时序分析综述报告以及primetime简介

静态时序分析综述报告——孙声震1.静态时序分析静态时序分析(STA)就是套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。
1.1 背景仿真技术是ASIC设计过程中应用最多的验证手段,然而,现在的单片集成系统设计正在将仿真时间推向无法容忍的极限。
在最后的门级仿真阶段,针对的是几十乃至几百万门的电路,对仿真器第一位的要求是速度和容量,因此,性能(仿真速度)和容量(能够仿真的设计规模)是验证中的关键因素。
传统上采用逻辑仿真器验证功能时序,即在验证功能的同时验证时序,它以逻辑模拟方式运行,需要输入向量作为激励。
随着规模增大,所需要的向量数量以指数增长,验证所需时间占到整个设计周期的50%,而最大的问题是难以保证足够的覆盖率。
鉴于此,这种方法已经越来越少地用于时序验证,取而代之的是静态时序分析技术。
1.2 分类静态时序分析以分析的方式区分,可分为Path-Based及Block-Based两种。
图1如图1所示,为Path-Based这种分析方式。
信号从A点及B点输入,经过中间的逻辑单元,从Y端输出。
套用的Timing Model标示在各逻辑器件上,对于所有输入端到输出端都可以找到相对应的延迟时间。
而使用者给定的TimingConstraint为:1. 信号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。
2. 信号B到达电路输入端的时间点为5(AT=5)。
3. 信号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。
针对P1及P2 两条路径(Path)来做分析。
P1的起始点为A,信号到达时间点为2。
经过第1个逻辑器件之后,由于有2单位的延迟时间,所以信号到达这个器件输出的时间点为4(2+2)。
依此类推,信号经由P1到达输出Y的时间点为7(2+2+3)。
在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。
静态时序分析综述报告以及primetime简介

静态时序分析综述报告——孙声震1.静态时序分析静态时序分析(STA)就是套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。
1.1 背景仿真技术是ASIC设计过程中应用最多的验证手段,然而,现在的单片集成系统设计正在将仿真时间推向无法容忍的极限。
在最后的门级仿真阶段,针对的是几十乃至几百万门的电路,对仿真器第一位的要求是速度和容量,因此,性能(仿真速度)和容量(能够仿真的设计规模)是验证中的关键因素。
传统上采用逻辑仿真器验证功能时序,即在验证功能的同时验证时序,它以逻辑模拟方式运行,需要输入向量作为激励。
随着规模增大,所需要的向量数量以指数增长,验证所需时间占到整个设计周期的50%,而最大的问题是难以保证足够的覆盖率。
鉴于此,这种方法已经越来越少地用于时序验证,取而代之的是静态时序分析技术。
1.2 分类静态时序分析以分析的方式区分,可分为Path-Based及Block-Based两种。
图1如图1所示,为Path-Based这种分析方式。
信号从A点及B点输入,经过中间的逻辑单元,从Y端输出。
套用的Timing Model标示在各逻辑器件上,对于所有输入端到输出端都可以找到相对应的延迟时间。
而使用者给定的TimingConstraint为:1. 信号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。
2. 信号B到达电路输入端的时间点为5(AT=5)。
3. 信号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。
针对P1及P2 两条路径(Path)来做分析。
P1的起始点为A,信号到达时间点为2。
经过第1个逻辑器件之后,由于有2单位的延迟时间,所以信号到达这个器件输出的时间点为4(2+2)。
依此类推,信号经由P1到达输出Y的时间点为7(2+2+3)。
在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。
PrimeTime 时序分析流程和方法

PrimeTime是Synopsys的一个单点的全芯片、门级静态时序分析器。
它能分析大规模、同步、数字ASICS的时序。
PrimeTime工作在设计的门级层次,并且和Synopsys其它工具整合得很紧密。
基本特点和功能:时序检查方面:建立和保持时序的检查(Setup and hold checks)重新覆盖和去除检查(Recovery and removal checks)时钟脉冲宽度检查(Clock pulse width checks)时钟门锁检查(Clock-gating checks)设计检查方面:没有时钟端的寄存器没有时序约束的结束点(endpoint)主从时钟分离(Master-slave clock separation)有xx时钟的寄存器对层次敏感的时钟(Level-sensitive clocking)组合电路的反馈环(Combinational feedback loops)设计规则检查,包括最大电容(maximum capacitance)、最大传输时间(maximum transition)和最大扇出(maximum fanout)PrimeTime 时序分析流程和方法:在时序分析之前需要做的步骤:1、建立设计环境-建立搜索路径(search path)和链接路径(link path)-读入设计和库-链接顶层设计-建立运作条件、连线负载模型、端口负载、驱动和传输时间2、说明时序声明(约束)-定义时钟周期、波形、不确定性(uncertainty)和滞后时间(latency)-说明输入、输出端口的xx3、说明时序例外情况(timing exceptions)-多周期路径(multicycle paths)-不合法路径(false paths)-说明最大和最小延时、路径分割(path segmentation)和失效弧(disabled arcs)4、进行分析和生成报告-检查时序-生成约束报告-生成路径时序报告开始先建立目录并将PrimeTime本身所带的一个例子拷到新建的目录下,在下面的内容中将要用到这个例子。
EDA技术_Synopsys公司STA工具PrimeTime介绍

Perform a full analysis and examine the results
check_timing report_cell report_clock report_design report_hierarchy report_wire_load report_port report_reference report_path_group report_net report_lib report_timing report_constraint report_bottleneck report_analysis_coverage
create_clock set_clock_uncertainty set_clock_latency set_clock_transition set_input_delay set_output_delay
Specify the environment and analysis conditions
EDA技术实验 技术实验
Synopsys公司 公司STA工具 工具PrimeTime 公司 工具
2010-12-29
1
静态时序分析STA
EDA技术实验 技术实验
静态时序分析( 静态时序分析(Static Timing Analysis)技术 ) 是一种穷尽分析方法,用以衡量电路性能。 是一种穷尽分析方法,用以衡量电路性能。
静态时序分析

§1.1 What is STA ?一般来说,要分析或检验一个电路设计的时序方面的特征有两种主要手段:动态时序仿真(Dynamic Timing Simulation)和静态时序分析(Static Timing Analysis)。
§1.2When to do STA ?§1.3PrimeTime Inputs and Outputs ?§1.4 Three main steps for STA⏹将设计打散成路径的集合(design > path group > path)⏹对于集合中的每条路径分别计算路径延时长度⏹检查所有路径是否满足约束1.Step 1 – Timing Path(Path Group:路径根据末端触发器的时钟不同分为不同的Clock Path Group;不为时钟所约束的路径为default Path Group对于Clock Gating Setup/Hold check的路径为clock_gating_default Path Group) 2.Step 2– Cell Delay Calculation3.Step 3– Constraints1)时钟约束DC中对路径的时序slack进行计算,完全基于对clock的约束来模拟真实布线之后的clock network.所以需要对clock 的source_latency、network_latency、clock_uncertainty、transition_time都进行设置并set_ideal_network来禁止DC由于fanout的问题修改时钟网络。
然而PT在进行时序分析的时候采用的是布局布线之后的设计,可以从SDF文件中读入时钟树信息,可以直接set_propagated_clock来计算时钟路径上的latency.2)Interface Paths的约束Set_input_delay 0.60 –clock Clk [get_ports A]Set_output_delay 0.40 –clock Clk [get_ports M]3)工作条件的约束诸如design的输入信号transition、输出负载、线载模型、PVT情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:本文介绍了数字集成电路设计中静态时序分析(Static Timing Analysis)和形式验证(Formal Verification)的一般方法和流程。
这两项技术提高了时序分析和验证的速度,在一定程度上缩短了数字电路设计的周期。
本文使用Synopsys 公司的PrimeTime进行静态时序分析,用Formality进行形式验证。
由于它们都是基于Tcl(Tool Command Language)的工具,本文对Tcl也作了简单的介绍。
关键词:静态时序分析形式验证 PrimeTime Formality Tcl目录第一章绪论 (1)1.1 静态时序分析1.2 时序验证技术第二章PrimeTime简介 (3)2.1 PrimeTime的特点和功能2.2 PrimeTime进行时序分析的流程2.3 静态时序分析中所使用的例子2.4 PrimeTime的用户界面第三章Tcl与pt_shell的使用 (6)3.1 Tcl中的变量3.2 命令的嵌套3.3 文本的引用3.4 PrimeTime中的对象3.4.1 对象的概念3.4.2 在PrimeTime中使用对象3.4.3 针对collection的操作3.5 属性3.6 查看命令第四章静态时序分析前的准备工作 (12)4.1 编译时序模型4.1.1 编译Stamp Model4.1.2 编译快速时序模型4.2 设置查找路径和链接路径4.3 读入设计文件4.4 链接4.5 设置操作条件和线上负载4.6 设置基本的时序约束4.6.1 对有关时钟的参数进行设置4.6.2 设置时钟-门校验4.6.3 查看对该设计所作的设置4.7 检查所设置的约束以及该设计的结构第五章静态时序分析 (18)5.1 设置端口延迟并检验时序5.2 保存以上的设置5.3 基本分析5.4 生成path timing report5.5 设置时序中的例外5.6 再次进行分析第六章 Formality简介 (22)6.1 Formality的基本特点6.2 Formality在数字设计过程中的应用6.3 Formality的功能6.4 验证流程第七章形式验证 (27)7.1 fm_shell命令7.2 一些基本概念7.2.1 Reference Design和Implementation Design7.2.2 container7.3 读入共享技术库7.4 设置Reference Design7.5 设置Implementation Design7.6 保存及恢复所作的设置7.7 验证第八章对验证失败的设计进行Debug (32)8.1 查看不匹配点的详细信息8.2 诊断程序8.3 逻辑锥8.3.1 逻辑锥的概念8.3.2 查看不匹配点的逻辑锥8.3.3 使用逻辑锥来Debug8.3.4 通过逻辑值来分析第一章 绪论我们知道,集成电路已经进入到了VLSI和ULSI的时代,电路的规模迅速上升到了几十万门以至几百万门。
而IC设计人员的设计能力则只是一个线性增长的曲线,远远跟不上按照摩尔定律上升的电路规模和复杂度的要求。
这促使了新的设计方法和高性能的EDA软件的不断发展。
Synopsys公司的董事长兼首席执行官Aart de Geus曾经提到,对于现在的IC 设计公司来说,面临着三个最大的问题:一是设计中的时序问题;二是验证时间太长;三是如何吸引并留住出色的设计工程师。
他的话从一个侧面表明了,随着IC 设计的规模和复杂度的不断增加,随着数百万系统门的设计变得越来越普遍,时序分析和设计验证方面的问题正日益成为限制IC设计人员的瓶颈。
对于这些问题,设计者们提出的策略有:创建物理综合技术、开发更快更方便的仿真器,使用静态时序分析和形式验证技术、推动IP的设计和应用等等。
本文将着重于探讨其中的静态时序分析和形式验证两项技术,在集成电路设计日益繁复的背景下,它们为IC产品更快更成功地面对市场提供了可能。
§1.1 静态时序分析一般来说,要分析或检验一个电路设计的时序方面的特征有两种主要手段:动态时序仿真(Dynamic Timing Simulation)和静态时序分析(Static Timing Ana -lysis)。
动态时序仿真的优点是比较精确,而且同后者相比较,它适用于更多的设计类型。
但是它也存在着比较明显的缺点:首先是分析的速度比较慢;其次是它需要使用输入矢量,这使得它在分析的过程中有可能会遗漏一些关键路径(critical pat -hs),因为输入矢量未必是对所有相关的路径都敏感的。
静态时序分析的分析速度比较快,而且它会对所有可能的路径都进行检查,不存在遗漏关键路径的问题。
我们知道,IC设计的最终目的是为了面对竞争日益激烈的市场,Time-to-market是设计者们不得不考虑的问题,因此对他们来说,分析速度的提高,或者说分析时间的缩短,是一个非常重要的优点。
§1.2 形式验证技术我们知道,验证问题往往是IC产品开发中最耗费时间的过程之一,而且它需要相当多的计算资源。
开发一个带有相应的测试向量的测试平台是很费时的工作,而且它要求开发者必须对设计行为有很好的很深入的理解。
而形式验证技术,简单地说就是将两个设计--或者说一个设计的两个不同阶段的版本--进行等效性比较的技术,由于能够很有效地缩短为了解决关键的验证问题所花费的时间,正在逐渐地被更多的人接受和使用。
这方面的工具有Synopsys公司的Formality和Verp -lex公司的Conformal LEC等。
本文将讨论使用Synopsys的工具PrimeTime和Formality进行静态时序分析和形式验证的一般方法和流程。
本文的第二章简要介绍了PrimeTime的基本功能和特点。
第三章介绍了Tcl在PrimeTime中的基本使用,重点是关于对象和属性的操作。
第四章介绍了在进行静态时序分析之前要作的准备工作。
第五章介绍了对一个具体例子进行静态时序分析的过程。
第六章介绍了Formality的基本特点和验证流程。
第七章介绍了对一个具体例子进行形式验证的过程。
第八章介绍了对验证失败的设计进行Debug的各种技巧。
第二章 PrimeTime简介正如本文前面所提到的,静态时序分析方法由于有着更快的分析速度等优点,正在被更多的设计者们所重视。
PrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模、同步、数字ASIC。
PrimeTime适用于门级的电路设计,可以和Synopsys公司的其它EDA软件非常好的结合在一起使用。
这一章将简要介绍PrimeTime的基本功能和特点,以及使用PrimeTime进行静态时序分析的一般过程。
§2.1 PrimeTime的特点和功能作为专门的静态时序分析工具,PrimeTime可以为一个设计提供以下的时序分析和设计检查:??² 建立和保持时间的检查(setup and hold checks)² 时钟脉冲宽度的检查² 时钟门的检查(clock-gating checks)² recovery and removal checks² unclocked registers² 未约束的时序端点(unconstrained timing endpoints)² master-slave clock separation² multiple clocked registers² 组合反馈回路(combinational feedback loops)² 基于设计规则的检查,包括对最大电容、最大传输时间、最大扇出的检查等。
PrimeTime具有下面的特点:1)PrimeTime是可以独立运行的软件,它不需要逻辑综合过程中所必需的各种数据结构,而且它对内存的要求相对比较低。
2)PrimeTime特别适用于规模较大的、SOC(system-on-chip)的设计。
在数字集成电路设计的流程中,版图前、全局布线之后已经版图后,都可以使用PrimeTime进行静态时序分析。
§2.2 PrimeTime进行时序分析的流程使用PrimeTime对一个电路设计进行静态时序分析,一般要经过下面的步骤: 1)设置设计环境在可以进行时序分析之前,首先要进行一些必要的设置和准备工作。
具体来说包括了:² 设置查找路径和链接路径² 读入设计和库文件² 链接顶层设计² 对必要的操作条件进行设置,这里包括了线上负载的模型、端口负载、驱动、以及转换时间等² 设置基本的时序约束并进行检查2)指定时序约束 (??timing assertions/constraints)包括定义时钟周期、波形、不确定度(uncertainty)、潜伏性(latency),以及指明输入输出端口的延时等。
3)设置时序例外(??timing exceptions):这里包括了:² 设置多循环路径(multicycle paths)² 设置虚假路径(false paths)² 定义最大最小延时、路径的分段(path segmentation)以及无效的arcs4)进行时序分析:在作好以上准备工作的基础上,可以对电路进行静态时序分析,生成constra -int reports和path timing reports。
以上仅仅是PrimeTime进行静态时序分析的简单流程,在本文以下的部份中将会有更详细的叙述。
§2.3 静态时序分析中所使用的例子在本文中,进行静态时序分析时所用的例子是微处理器AMD 2910,图2-2给出了它的顶层的电路图。
Figure2-2 AMD 2910 微处理器§2.4 PrimeTime的用户界面PrimeTime提供两种用户界面,图形用户界面GUI(Graphical User Interf -ace)和基于Tcl的命令行界面pt_shell,其运行方式分别是:% PrimeTime% pt_shell退出的命令是quit、exit或者^d。
事实上,在GUI界面中通过菜单进行的每一个操作,都对应着相应的pt_shell的命令。
因此,本文以下的章节都只针对于pt_ shell来完成。
第三章 Tcl与pt_shell的使用Tcl是Tool Command Language的缩写,由于PrimeTime的命令语言是基于Tcl标准的,所以在这一章里我想大致介绍一下Tcl在PrimeTime中的基本使用。
除了一些最常用的Tcl命令之外,主要介绍了pt_shell中有关对象和属性的操作。