静态时序分析(PrimeTime)&形式验证(Formality)详解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

摘要:本文介绍了数字集成电路设计中静态时序分析(StaticTimingAnalysis)和形式验证(FormalVerification)的一般方法和流程。这两项技术提高了时序分析和验证的速度,在一定程度上缩短了数字电路设计的周期。本文使用Synopsys公司的PrimeTime进行静态时序分析,用Formality进行形式验证。由于它们都是基于Tcl(ToolCommandLanguage)的工具,本文对Tcl也作了简单的介绍。关键词:静态时序分析形式验证PrimeTimeFormalityTcl目录第一章绪论………………………………(1)1.1静态时序分析1.2时序验证技术第二章PrimeTime简介………………………………(3)2.1PrimeTime的特点和功能2.2PrimeTime进行时序分析的流程2.3静态时序分析中所使用的例子2.4PrimeTime的用户界面第三章Tcl与pt_shell的使用………………………………(6)3.1Tcl中的变量3.2命令的嵌套3.3文本的引用3.4PrimeTime中的对象3.4.1对象的概念3.4.2在PrimeTime中使用对象3.4.3针对collection的操作3.5属性3.6查看命令第四章静态时序分析前的准备工作………………………………(12)4.1编译时序模型4.1.1编译StampModel4.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生成pathtimingreport5.5设置时序中的例外5.6再次进行分析第六章Formality简介………………………………(22)6.1Formality的基本特点6.2Formality在数字设计过程中的应用6.3Formality的功能6.4验证流程第七章形式验证………………………………(27)7.1fm_shell命令7.2一些基本概念7.2.1ReferenceDesign和ImplementationDesign7.2.2container7.3读入共享技术库7.4设置ReferenceDesign7.5设置ImplementationDesign7.6保存及恢复所作的设置7.7验证第八章对验证失败的设计进行Debug………………………………(32)8.1查看不匹配点的详细信息8.2诊断程序8.3逻辑锥8.3.1逻辑锥的概念8.3.2查看不匹配点的逻辑锥8.3.3使用逻辑锥来Debug8.3.4通过逻辑值来分析诸论1第一章绪论我们知道,集成电路已经进入到了VLSI和ULSI的时代,电路的规模迅速上升到了几十万门以至几百万门。而IC设计人员的设计能力则只是一个线性增长的曲线,远远跟不上按照摩尔定律上升的电路规模和复杂度的要求。这促使了新的设计方法和高性能的EDA软件的不断发展。Synopsys公司的董事长兼首席执行官AartdeGeus曾经提到,对于现在的IC设计公司来说,面临着三个最大的问题:一是设计中的时序问题;二是验证时间太长;三是如何吸引并留住出色的设计工程师。他的话从一个侧面表明了,随着IC设计的规模和复杂度的不断增加,随着数百万系统门的设计变得越来越普遍,时序分析和设计验证方面的问题正日益成为限制IC设计人员的瓶颈。对于这些问题,设计者们提出的策略有:创建物理综合技术、开发更快更方便的仿真器,使用静态时序分析和形式验证技术、推动IP的设计和应用等等。本文将着重于探讨其中的静态时序分析和形式验证两项技术,在集成电路设计日益繁复的背景下,它们为IC产品更快更成功地面对市场提供了可能。§1.1静态时序分析一般来说,要分析或检验一个电路设计的时序方面的特征有两种主要手段:动态时序仿真(DynamicTimingSimulation)和静态时序分析(StaticTimingAna-lysis)。动态时序仿真的优点是比较精确,而且同后者相比较,它适用于更多的设计类型。但是它也存在着比较明显的缺点:首先是分析的速度比较慢;其次是它需要使用输入矢量,这使得它在分析的过程中有可能会遗漏一些关键路径(criticalpat-hs),因为输入矢量未必是对所有相关的路径都敏感的。静态时序分析的分析速度比较快,而且它会对所有可能的路径都进行检查,不存在遗漏关键路径的问题。我们知道,IC设计的最终目的是为了面对竞争日益激诸论2烈的市场,Time-to-market是设计者们不得不考虑的问题,因此对他们来说,分析速度的提高,或者说分析时间的缩短,是一个非常重要的优点。§1.2形式验证技术我们知道,验证问题往往是IC产品开发中最耗费时间的过程之一,而且它需要相当多的计算资源。开发一个带有相应的测试向量的测试平台是很费时的工作,而且它要求开发者必须对设计行为有很好的很深入的理解。而形式验证技术,简单地说就是将两个设计--或者说一个设计的两个不同阶段的版本--进行等效性比较的技术,由于能够很有效地缩短为了解决关键的验证问题所花费的时间,正在逐渐地被更多的人接受和使用。这方面的工具有Synopsys公司的Formality和Verp-lex公司的ConformalLEC等。本文将讨论使用Synopsys的工具PrimeTime和Formality进行静态时序分析和形式验证的一般方法和流程。本文的第二章简要介绍了PrimeTime的基本功能和特点。第三章介绍了Tcl在PrimeTime中的基本使用,重点是关于对象和属性的操作。第四章介绍了在进行静态时序分析之前要作的准备工作。第五章介绍了对一个具体例子进行静态时序分析的过程。第六章介绍了Formality的基本特点和验证流程。第七章介绍了对一个具体例子进行形式验证的过程。第八章介绍了对验证失败的设计进行Debug的各种技巧。PrimeTime简介3第二章PrimeTime简介正如本文前面所提到的,静态时序分析方法由于有着更快的分析速度等优点,正在被更多的设计者们所重视。PrimeTime是Synopsys的静态时序分析软件,常被用来分析大规模、同步、数字ASIC。PrimeTime适用于门级的电路设计,可以和Synopsys公司的其它EDA软件非常好的结合在一起使用。这一章将简要介绍PrimeTime的基本功能和特点,以及使用PrimeTime进行静态时序分析的一般过程。§2.1PrimeTime的特点和功能作为专门的静态时序分析工具,PrimeTime可以为一个设计提供以下的时序分析和设计检查:??²建立和保持时间的检查(setupandholdchecks)²时钟脉冲宽度的检查²时钟门的检查(clock-gatingchecks)²recoveryandremovalchecks²unclockedregisters²未约束的时序端点(unconstrainedtimingendpoints)²master-slaveclockseparation²multipleclockedregisters²组合反馈回路(combinationalfeedbackloops)²基于设计规则的检查,包括对最大电容、最大传输时间、最大扇出的检查等。PrimeTime具有下面的特点:1)PrimeTime是可以独立运行的软件,它不需要逻辑综合过程中所必需的各种数据结构,而且它对内存的要求相对比较低。2)PrimeTime特别适用于规模较大的、SOC(system-on-chip)的设计。PrimeTime简介4在数字集成电路设计的流程中,版图前、全局布线之后已经版图后,都可以使用PrimeTime进行静态时序分析。§2.2PrimeTime进行时序分析的流程使用PrimeTime对一个电路设计进行静态时序分析,一般要经过下面的步骤:1)设置设计环境在可以进行时序分析之前,首先要进行一些必要的设置和准备工作。具体来说包括了:²设置查找路径和链接路径²读入设计和库文件²链接顶层设计²对必要的操作条件进行设置,这里包括了线上负载的模型、端口负载、驱动、以及转换时间等²设置基本的时序约束并进行检查2)指定时序约束(??timingassertions/constraints)包括定义时钟周期、波形、不确定度(uncertainty)、潜伏性(latency),以及指明输入输出端口的延时等。3)设置时序例外(??timingexceptions):这里包括了:²设置多循环路径(multicyclepaths)²设置虚假路径(falsepaths)²定义最大最小延时、路径的分段(pathsegmentation)以及无效的arcs4)进行时序分析:在作好以上准备工作的基础上,可以对电路进行静态时序分析,生成constra-intreports和pathtimingreports。以上仅仅是PrimeTime进行静态时序分析的简单流程,在本文以下的部份中将会有更详细的叙述。PrimeTime简介5§2.3静态时序分析中所使用的例子在本文中,进行静态时序分析时所用的例子是微处理器AMD2910,图2-2给出了它的顶层的电路图。Figure2-2AMD2910微处理器§2.4PrimeTime的用户界面PrimeTime提供两种用户界面,图形用户界面GUI(GraphicalUserInterf-ace)和基于Tcl的命令行界面pt_shell,其运行方式分别是:%PrimeTime%pt_shell退出的命令是quit、exit或者^d。事实上,在GUI界面中通过菜单进行的每一个操作,都对应着相应的pt_shell的命令。因此,本文以下的章节都只针对于pt_shell来完成。Tcl与pt_shell的使用6第三章Tcl与pt_shell的使用Tcl是ToolCommandLanguage的缩写,由于PrimeTime的命令语言是基于Tcl标准的,所以在这一章里我想大致介绍一下Tcl在PrimeTime中的基本使用。除了一些最常用的Tcl命令之外,主要介绍了pt_shell中有关对象和属性的操作。事实上,大多数synopsys公司的EDA工具都是基于Tcl标准的。例如在第二章的图2-1中可以看到的综合软件DesignCompiler也是。由于都基于Tcl标准,PrimeTime中的大多数命令以及命令参数都和DesignCompiler中是相同的。§3.1Tcl中的变量我们可以把Tcl看作是一种比较高级的语言,它很容易理解和使用,所以这里对它的介绍也是很简单的。与变量有关的有下列操作:1)定义变量:set变量名变量值例如:setclock_period102)引用变量:$变量名例如:echo$clock_period3)删除变量:unset变量名4)打印变量:printvar变量名(无变量名时打印所有变量)或者:echo$变量名举个例子,在使用PrimeTime之前,我们可以把它设置成分页显示,以便于浏览在运行时生成的信息,此时可以使用如下的命令:setsh_enable_page_modetrue如果希望每次运行时PrimeTime总是分页显示,可以到.synopsys_pt.setup文件中去更改sh_enable_page_mode变量的设置。Tcl与pt_shell的使用7§3.2命令的嵌套在使用PrimtTime的过程中,命令的嵌套经常会被用到。嵌套命令时,用方括号([])分隔开每一层的命令,例如:命令1[命令2[命令3]]在这样一个例子中,命令3首先被执行,它的结果将被作为命令2的一个参数,然后依次执行下去。§3.3文本的引用在Tcl中,可以使用两种方法来引用文本或者说字符串:1)弱引用:使用双引号来引用文本。在双引号里出现的变量、命令和反斜杠不会被转义,仍然保持特

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功