静态时序分析(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

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)

静态时序分析(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时序分析流程与方法

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 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范例

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静态时序分析流程

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

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
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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中有关对象和属性的操作。

相关文档
最新文档