PrimeTime简介 3 第二章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具有下面的特点: l)PrimeTime是可以独立运行的软件,它不需要逻辑综合过程中所必需的各 种数据结构,而且它对内存的要求相对比较低。 2)PrimeTime特别适用于规模较大的、S0C(system-on-chip)的设计
PrimeTime 简介 3 第二章 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简介 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进行静态时序分析的简单流程,在本文以下的部份中将 会有更详细的叙述
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 进行静态时序分析的简单流程,在本文以下的部份中将 会有更详细的叙述
PrimeTime简介 §2.3静态时序分析中所使用的例子 在本文中,进行静态时序分析时所用的例子是微处理器AMD2910,图2-2给 出了它的顶层的电路图。 ■INTERRUPTDRIVER EN D MAPPING ROMENABLE PIPELINE__ENABLE CARRY_N ○Y_OUTPUT[1:12 CONDITION_CODE CONDITION CODE ENABEE RELOAD INSTRUCTIOND CLOCK ○OVERFLOW D1:1D Figure?2-2AMD2910微处理器 §2.4 PrimeTime的用户界面 PrimeTime提供两种用户界面,图形用户界面GUI(Graphical User Interf -ace)和基于Tcl的命令行界面pt_shell,其运行方式分别是: PrimeTime pt shell 退出的命令是quit、exit或者ˉd。事实上,在GUI界面中通过菜单进行的每一个 操作,都对应着相应的pt_shell的命令。因此,本文以下的章节都只针对于pt shel1来完成
PrimeTime 简介 5 §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的使用 6 第三章Tcl与pt_shell的使用 Tcl是Tool Command Language的缩写,由于PrimeTime的命令语言是基于 Tcl标准的,所以在这一章里我想大致介绍一下Tcl在PrimeTime中的基本使用。 除了一些最常用的Tcl命令之外,主要介绍了pt shell中有关对象和属性的操 作。 事实上,大多数synopsys公司的EDA工具都是基于Tcl标准的。例如在第二 章的图2-l中可以看到的综合软件Design Compiler也是。由于都基于Tcl标准, PrimeTime中的大多数命令以及命令参数都和Design Compiler中是相同的。 §3.1Tc1中的变量 我们可以把T℃1看作是一种比较高级的语言,它很容易理解和使用,所以这里 对它的介绍也是很简单的。 与变量有关的有下列操作: 1)定义变量:set变量名变量值 例如: set clock period 10 2)引用变量:$变量名 例如: echo $clock period 3)删除变量:unset变量名 4)打印变量:printvar变量名(无变量名时打印所有变量) 或者: echo$变量名 举个例子,在使用PrimeTime之前,我们可以把它设置成分页显示,以便于浏 览在运行时生成的信息,此时可以使用如下的命令: set sh enable page mode true 如果希望每次运行时PrimeTime总是分页显示,可以到.synopsys_pt..setup文件 中去更改sh enable_page mode变量的设置
Tcl 与 pt_shell 的使用 6 第三章 Tcl 与 pt_shell 的使用 Tcl 是 Tool Command Language 的缩写,由于 PrimeTime 的命令语言是基于 Tcl 标准的,所以在这一章里我想大致介绍一下 Tcl 在 PrimeTime 中的基本使用。 除了一些最常用的 Tcl 命令之外,主要介绍了 pt_shell 中有关对象和属性的操 作。 事实上,大多数 synopsys 公司的 EDA 工具都是基于 Tcl 标准的。例如在第二 章的图 2-1 中可以看到的综合软件 Design Compiler 也是。由于都基于 Tcl 标准, PrimeTime 中的大多数命令以及命令参数都和 Design Compiler 中是相同的。 §3.1 Tcl 中的变量 我们可以把 Tcl 看作是一种比较高级的语言,它很容易理解和使用,所以这里 对它的介绍也是很简单的。 与变量有关的有下列操作: 1)定义变量:set 变量名 变量值 例如: set clock_period 10 2)引用变量:$变量名 例如: echo $clock_period 3)删除变量:unset 变量名 4)打印变量:printvar 变量名(无变量名时打印所有变量) 或者: echo $变量名 举个例子,在使用 PrimeTime 之前,我们可以把它设置成分页显示,以便于浏 览在运行时生成的信息,此时可以使用如下的命令: set sh_enable_page_mode true 如果希望每次运行时 PrimeTime 总是分页显示,可以到.synopsys_pt.setup 文件 中去更改 sh_enable_page_mode 变量的设置
Tcl与pt_shell的使用 §3.2命令的嵌套 在使用PrimtTime的过程中,命令的嵌套经常会被用到。嵌套命令时,用方括 号([门)分隔开每一层的命令,例如: 命令1[命令2[命令3]] 在这样一个例子中,命令3首先被执行,它的结果将被作为命令2的一个参数,然 后依次执行下去。 §3.3文本的引用 在T℃1中,可以使用两种方法来引用文本或者说字符串: 1)弱引用:使用双引号来引用文本。在双引号里出现的变量、命令和反斜杠 不会被转义,仍然保持特殊意义。 2)强引用:使用大括号来引用文本。大括号中的字符串将按照字面上被引 用。 例如:set mydelay10 echo "The value of mydelay is $mydelay" 得到的结果将是:The value of mydelay is l0,而 echo {The value of mydelay is $mydelay} 得到的结果将是:The value of mydelay is$mydelay。 除此之外,可以使用反斜杠来转义一个单一的特殊字符,以及使用expr命令 来得到算术表达式的值。 §3.4 PrimeTime中的对象 §3.4.1对象的概念 在IC设计中,“对象(object)”是一个常用的概念。一般来说,一个设计会 包含以下的对象:Design、Cell、Port、Pin、Net、Clock等。在分析和验证的过 程中,也经常要跟这些对象打交道。因此搞清楚这些概念,才不会在使用软件的过 程中遇到不必要的障碍
Tcl 与 pt_shell 的使用 7 §3.2 命令的嵌套 在使用 PrimtTime 的过程中,命令的嵌套经常会被用到。嵌套命令时,用方括 号([])分隔开每一层的命令,例如: 命令 1 [命令 2 [命令 3] ] 在这样一个例子中,命令 3 首先被执行,它的结果将被作为命令 2 的一个参数,然 后依次执行下去。 §3.3 文本的引用 在 Tcl 中,可以使用两种方法来引用文本或者说字符串: 1)弱引用:使用双引号来引用文本。在双引号里出现的变量、命令和反斜杠 不会被转义,仍然保持特殊意义。 2)强引用:使用大括号来引用文本。大括号中的字符串将按照字面上被引 用。 例如:set mydelay 10 echo "The value of mydelay is $mydelay" 得到的结果将是:The value of mydelay is 10,而 echo {The value of mydelay is $mydelay} 得到的结果将是:The value of mydelay is $mydelay。 除此之外,可以使用反斜杠来转义一个单一的特殊字符,以及使用 expr 命令 来得到算术表达式的值。 §3.4 PrimeTime 中的对象 §3.4.1 对象的概念 在 IC 设计中,“对象(object)”是一个常用的概念。一般来说,一个设计会 包含以下的对象:Design、Cell、Port、Pin、Net、Clock 等。在分析和验证的过 程中,也经常要跟这些对象打交道。因此搞清楚这些概念,才不会在使用软件的过 程中遇到不必要的障碍