PRIMETIME基础

PrimeTime(PT)是Synopsys的签收品质(sign-off quality)的静态时序分析工具。静态时序分析(STA)无疑是设计流程中最重要的一步,它决定了设计是否在所要求的速度下工作,PT分析设计中的时序延迟并标注出必须改正的违例。

1 前言

PT是一个不在DC工具套件中集成的单独的工具,它是一个和DC并行工作的单独的工具。PT与DC有一致的命令,它们生成类似的报告,并支持共同的文件格式。此外PT也能生成DC用于综合和优化的时序断言,PT的命令行界面是基于称为Tcl为工业标准语言。与DC的内部STA引擎相比,PT更快,占用的内存更少,并且还有其他的一些特色。

PrimeTime环境

一经调用,PT就寻找名为“.synopsys_pt.setup”的文件并默认包括它。这个文件包含了定义PT使用的设计环境的必要设置变量,示例如下:

变量serach_path定义了一个列表,它包含了当查找库和设计时需要查看的目录;变量link_path定义了一个库列表,它包含用于连接设计的单元。

2 Tcl简介

Tcl提供了大部分的基本程序结构——变量、运算符、表达式、控制流、循环和过程等。另外,Tcl也支持大多数的UNIX命令,是PT中的脚本语言。本节简要介绍Tcl的一些基础语法。

使用set命令定义变量并给它们赋值,例如:

set clock_name clk

set_clock_preiod 20

值可以是数字或字符串——Tcl不区分数值型变量和字符串型变量。在算数场合,它自动使用数字值。上例中,社变量clock_name为字符串clk,设变量clock_period为数值20。通过在变量名前加$来引用变量。如果在变量名前没有加$,那么Tcl将其视为字符串。

create_clock $clock_name -period 20 -waveform [0 10]

通过expr命令进行算数运算。这个有用的技术提供了贯穿于整个脚本的全局参数化的方法。

expr $clock_period / 5

上述命令返回值为4。

2.1 命令置换

命令返回的值可用于其他命令。命令的嵌套可用方括号“[”和"]"完成。当一个命令装入方括号内,它首先求值,然后它的值取代命令的位置。例如:

set clock_period 20

set inp_del [expr $clock_period / 5]

2.2 列表

列表表示一个对象的集合——这些对象可以是字符串或是列表。用大括号包括一组项目的最基本形式形成一个列表。

set clk_list {clk1 clk2 clk3}

创建列表的另一个方法是用list命令,它的典型应用是在命令置换中。例如,下面的list命令创建同前面set命令同样的列表:

list clk1 clk2 clk3

list命令适于在命令置换中使用,因为它的返回值是一个列表。

2.3 流控制和循环

如同其他的脚本和程序语言,Tcl为流控制提供了if和switch命令,也为循环提供了for和while循环。

3 PrimeTime命令

3.1 设计输入

PT不像DC能用HDL Compiler读取RTL源文件,它是静态分析引擎,只能读取映射后的设计。其中,PT的输入可以使db、Verilog、VHDL或EDIF格式的文件。

3.2 时钟规范

时钟规范背后的概念与DC所描述的是一样的,由于两者格式的差异,因此存在细微的语法差异。

3.2.1 创建时钟

pt_shell > create_clock -period 20 -waveform {0 10} [list CLK]

3.2.2 时钟延迟和时钟转换

pt_shell > set_clock_latency 2.5 [get_clocks CLK]

pt_shell > set_clock_transition 0.2 [get_clocks CLK]

3.2.3 传播时钟

在设计中插入时钟树之后布图工具通常接着要进行传播时钟,网表被带回PT进行STA。时钟通过网表中的整个时钟树网络传播以确定时钟延迟。换言之,对通过时钟树中每个单元的延迟和单元间的互连线延迟都要加以考虑。

pt_shell > set_propagated_clock [get_clocks CLK]

3.2.4 指定时钟扭曲

时钟扭曲(skew)是在触发器时钟引脚处时钟到达时间的差异。在同步设计中,数据在一个时钟边沿由触发器开始发送,在另一个时钟边沿(通常为下一时钟沿)由另一触发器接收。如果两个时钟沿(发送或接收)源自同一个时钟,那么理想的两个边沿间应有准确的一个时钟的延迟。时钟扭曲妨碍了这种理想情况。由于布线延迟的差异(或门控时钟情形),接收时钟沿可早到或迟到。早到可能导致建立时间违例,而迟到则可能导致保持时间违例。因此,在布图前阶段必须制定时钟扭曲以生成鲁棒的设计。

通过下面的命令指定时钟扭曲:

使用-from和-to选项也能指定始终扭曲,这对包括多个时钟域的设计有用,例如:

pt_shell > set_clock_uncertainty 0.5 -from [get_clocks CLK1] -to [get_clocks CLK2]

3.2.5 指定生成的时钟

这是一个DC所不具备的重要特色。设计经常包括内部时钟产生的时钟。PT允许用户通过create_generated_clock命令定义生成时钟与源时钟间的关系。

在布图后时序分析中,插入了时钟树并通过时钟树缓冲器传播时钟信号来计算时钟延迟。用户选择定义独立于时钟源的分频时钟(通过在分频逻辑子模块的输出引脚上定义时钟)。然而,这个方法迫使设计人员从时钟源到分频逻辑模块的时钟延迟手动添加从分频模块到设计的其余部分的时钟树延迟。

通过下述命令建立分频时钟,则这两个时钟在布图前和布图后阶段都保持同步。

上例在属于blockA的DFF1X单元的引脚Q处创建一个生成时钟。生成时钟名为DIV2CLK,其频率为时钟源CLK频率的一半。

3.2.6 门控时钟检查

对低功耗应用,设计人员经常在设计中采用门控时钟。这个技术允许设计人员仅当需要时才使能时钟。如果(对门控逻辑)不满足建立和保持时间的要求,门控逻辑可产生毛刺。PT允许设计人员对门控逻辑指定建立/保持要求,如下所示:

上例表明PT CLK时钟网络中所有门的建立时间和保持时间要求分别是0.5ns和0.01ns。

单个单元的门控检查可通过在对象列表中指定单元名来取得,例如:

pt_shell > set_clock_gating_check -setup 0.05 -hold 0.1 [get_lib_cell stdcell_lib/BUFF4X]

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 1. 时钟问题 在任何设计中,综合的最关键部分是时钟的描述,总是有关于布图前后定义的问题。 过去传统上在时钟源旁放...
    我喜欢唱跳rap打篮球阅读 1,152评论 0 1
  • 1. 设计约束 上一节描述了设计环境的约束: https://mp.weixin.qq.com/s?__biz=M...
    我喜欢唱跳rap打篮球阅读 1,500评论 0 1
  • 戳这里下载整个项目包(已上传到CSDN资源库)[https://download.csdn.net/downloa...
    凌川江雪阅读 2,943评论 0 3
  • 以下三个是最经常被问到的,基本上属于介绍性的题目,无所谓正确答案,在我看来,这些不算真正的问题。 Discuss ...
    蜀湘情缘阅读 6,069评论 0 8
  • 来源:FPGA 时钟设计 1 —— 时钟资源总结 关于一款芯片,最权威、最新的资料当然是厂家的官方文件。很多大牛都...
    暗夜望月阅读 3,380评论 0 2