静态时序分析
文章平均质量分 93
日晨难再
杂学旁收
展开
-
静态时序分析:Leaf Cell(叶单元)
在DC中,leaf cell(叶单元)有时会出现在描述中,例如set_input_delay的-reference_pin选项的参数,就必须是一个端口或leaf cell的引脚。对于set_input_delay的-reference_pin选项的参数,如果是非leaf cell的引脚,则会报下面的错误。leaf cell其实就是映射后的的库单元,就是一个不可分割的单元,而用户自定义的模块例化的单元就不是leaf cell了。原创 2024-07-11 23:07:46 · 343 阅读 · 1 评论 -
静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(二)
上一节中,我们讨论了理想时钟和传播时钟的创建和使用,本节将讨论生成时钟及其与理想时钟和传播时钟的关系。原创 2024-06-30 15:45:36 · 1391 阅读 · 20 评论 -
静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(一)
理想时钟(ideal_clock)、传播时钟(propagated_clock)是两种相对的时钟,理想时钟用于时钟树综合(CTS)前,而传播时钟用于时钟树综合后。生成时钟(generated_clock)用于定义一个由另一个时钟派生出的时钟,例如一个分频时钟,这么做的目的是因为DC无法自动由触发器时钟端的时钟推断出其输出端的分频时钟,本文旨在理清这三者之间关系。原创 2024-06-26 23:44:48 · 1541 阅读 · 17 评论 -
静态时序分析:SDC约束命令set_output_delay详解
静态时序分析本章将讨论使用set_output_delay命令对输出端口(或时序路径终点引脚)的约束。首先需要说明的是,在进行静态时序分析时,任何一条时序路径都需要有约束,约束指的是时序路径的起点(发射触发器)和终点(捕获触发器)都有时钟信号的控制(对于典型时序路径而言)。但是对于起点是输入端口(或时序路径起点引脚)、终点是输出端口(或时序路径终点引脚)的时序路径而言,没有显然的发射触发器、捕获触发器,因此需要使用set_output_delay命令进行约束。原创 2024-03-12 15:45:23 · 2343 阅读 · 15 评论 -
静态时序分析:SDC约束命令set_multicycle_path详解
静态时序分析本章将继续上章的步伐,讨论第二个点到点时序时序例外命令set_multicycle_path,它能改变默认的单周期时序路径分析模式,这会影响时序路径的建立/保持时间的检查方式。原创 2024-03-10 01:09:36 · 1972 阅读 · 15 评论 -
静态时序分析:典型与非典型时序路径的约束详解(一)
时序路径是静态时序分析中的一个重要概念,了解时序路径能帮助设计者更好地编写SDC脚本,本文旨在详细介绍时序路径相关内容。 首先给出时序路径的定义:时序路径是由时序弧构成的数据路径,静态时序分析会分别对每条有约束的时序路径进行时序检查(例如建立时间检查、保持时间检查、移除时间检查、恢复时间检查等)。 时序路径可以是典型的,也可以是非典型的;时序路径可以是有约束的,也可以是未约束的。原创 2024-03-07 19:26:01 · 2027 阅读 · 11 评论 -
静态时序分析:SDC约束命令set_fasle_path详解
在之前的文章中,我们讨论了如何使用set_case_analysis命令和set_disable_timing命令,它们都能使时序弧失效,本章我们将学习一个虽然不使时序弧失效,但会影响时序路径的时序检查的命令——set_fasle_path,就像前文中直接指定触发器data_out_reg的时钟引脚CK到数据引脚D的时序弧失效一样。原创 2024-03-06 00:31:45 · 2432 阅读 · 11 评论 -
静态时序分析:SDC约束命令set_disable_timing详解
上一章中,我们学习了如何使用set_case_analysis模式分析命令,它通过指定某个端口或引脚为固定值,从而使设计中的一些时序弧失效。本章将学习set_disable_timing命令,它可以用于直接指定失效时序弧,这会导致时序路径的中断,常常用于减少DC分析的复杂度。原创 2024-03-05 20:25:40 · 2204 阅读 · 15 评论 -
静态时序分析:SDC约束命令set_case_analysis详解
set_case_analysis命令用于对电路进行特定模式的设定,例如对于一个工作在正常模式下的芯片,其扫描触发器的测试引脚应该设定为0;对于一个时钟选择器的选择引脚,在特定模式工作时应该为确定值。这个命令很有用,因为它可以帮助减少很多不必要的时序路径分析。原创 2024-03-02 15:43:39 · 3172 阅读 · 14 评论 -
静态时序分析:SDC约束命令set_load详解
set_load命令用于指定端口(port)或线网(net)的负载电容,该指令的BNF范式(有关BNF范式,可以参考以往文章)为:原创 2024-02-25 16:11:34 · 2502 阅读 · 18 评论 -
静态时序分析:SDC约束命令set_input_transition详解
DC工具在使用set_drive和set_driving_cell建模输入端口驱动能力时,会自动计算输入端口的转换时间,以及由于电阻或驱动单元带来的额外输入端口延迟。原创 2024-02-24 15:55:58 · 1748 阅读 · 19 评论 -
静态时序分析:SDC约束命令set_driving_cell详解
在上一章中,我们不建议使用set_drive命令而是使用set_driving_cell命令,这是一个描述输入端口驱动能力更精确的方法。因为大多数情况下,只有库单元的设计者熟悉单元门内部的输出电阻情况,因此直接指定驱动单元而不是指定驱动电阻更容易。原创 2024-02-23 23:00:14 · 2142 阅读 · 15 评论 -
静态时序分析:SDC约束命令set_drive详解
本章将讨论使用set_drive命令,它用于对输入端口的驱动能力建模。首先需要说明的是,默认情况下,DC在STA时默认输入端口的转换时间是0,这对于大多数情况来说过于理想。set_drive命令设置了驱动端口的上拉/下拉电阻,因此电阻值越大,意味着驱动能力越弱;电阻值越小,意味着驱动能力越强。原创 2024-02-22 00:09:43 · 1728 阅读 · 17 评论 -
静态时序分析:保持时间分析
在静态时序分析中,保持时间检查约束了触发器时钟引脚(时钟路径)和输入数据引脚(数据路径)之间的时序关系,以满足触发器的保持时间要求。简单来说就是,保持时间要求数据在时钟的有效沿到达之后依然稳定一段时间,这是为了数据被有效(锁存)捕获。原创 2024-02-21 20:40:38 · 863 阅读 · 5 评论 -
静态时序分析:SDC约束命令set_input_delay详解
静态时序分析本章将讨论使用set_input_delay命令对输入端口的约束。首先需要说明的是,在进行静态时序分析时,任何一条时序路径都需要有约束,约束指的是时序路径的起点(发射触发器)和终点(捕获触发器)都有时钟信号的控制。但是对于起点是输入端口、终点是输出端口的时序路径而言,没有显然的发射触发器、捕获触发器,因此需要使用set_input_delay命令进行约束。原创 2024-02-20 22:02:40 · 3098 阅读 · 17 评论 -
静态时序分析:SDC约束命令set_clock_latency详解
静态时序分析时钟的延迟可以使用set_clock_latency命令设置,这里的时钟延迟包括源延迟(source latency),即时钟对象到时钟源对象(时钟定义点)的延迟,又叫插入延迟(insertion delay);以及网络延迟(network latency),即时钟源到各触发器时钟引脚的延迟。正如上一篇文章中说的一样。原创 2024-02-18 22:46:26 · 2316 阅读 · 14 评论 -
静态时序分析:SDC约束命令set_clock_transition详解
在静态时序分析:SDC约束命令create_clock详解一文的最后,我们谈到了针对理想(ideal)时钟,可以使用set_clock_transition命令直接指定理想时钟到达各触发器时钟引脚的转换时间(这是一种估计),而不是在时钟端口使用set_input_transition命令(即使使用了,对理想时钟也是无效的),因为时钟树尚未创建,时钟端口的高扇出会导致,任何在时钟路径上的转换时间和延迟的计算都是毫无意义的。原创 2024-02-16 15:23:45 · 2429 阅读 · 20 评论 -
静态时序分析:SDC约束命令set_clock_uncertainty详解
set_clock_uncertainty是用来指定设计中时钟周期的不确定性,不确定性指的是对那些会对时钟周期造成的负面影响。这些不确定性可能来源于时钟抖动(clock jitter)或时钟偏差(clock skew)等一切想要在时序分析中考虑的悲观因素。原创 2024-02-14 16:14:53 · 2901 阅读 · 23 评论 -
静态时序分析:建立时间分析
在静态时序分析中,建立时间检查约束了触发器时钟引脚(时钟路径)和输入数据引脚(数据路径)之间的时序关系,以满足触发器的建立时间要求。简单来说就是,建立时间要求数据在时钟的有效沿到达之前提前到达且稳定一段时间,这是为了数据被有效(锁存)捕获。原创 2024-02-11 21:56:09 · 1752 阅读 · 19 评论 -
静态时序分析:工艺库的特征化条件和工作条件
一个工艺库(technology library) 会指定该库的特征化条件(characterization condition)和工作条件(operating condition)。一般在工艺库的开头会看见以下信息。原创 2024-02-09 23:37:18 · 1007 阅读 · 16 评论 -
静态时序分析:静态时序分析的原理及其两种模式PBA、GBA
静态时序分析有两种模式:PBA(Path Based Analysis)和GBA(Graph Based Analysis),PBA是基于路径的分析模式而GBA则是基于图的分析模式。在Design Compiler中,时序分析是使用GBA模式;而在PrimeTime中,既可以使用默认的GBA模式也可以使用PBA模式进行时序分析。下面将详细讨论这两种模式的区别与联系。原创 2024-02-08 18:13:26 · 1880 阅读 · 13 评论 -
静态时序分析:时序弧以及其时序敏感(单调性)
在静态时序分析中,不管是组合逻辑单元(如与门、或门、与非门等)还是时序逻辑(D触发器等)在时序建模时都拥有多条时序弧(Timing Arc)。时序弧是用来描述信号(翻转)传播路径一种抽象。举例来说,对于组合逻辑单元,每个输入引脚(Pin)到输出引脚都有相应的时序弧;对于时序逻辑单元,有从时钟引脚到输出引脚的时序弧,也有从时钟引脚到数据引脚的建立、保持时间约束时序弧。每个时序弧都有时序敏感(Timing Sense),它描述了信号(翻转)在沿着时序弧传播过程中的翻转特性,即对应不同的输入翻转,输出是如何翻转的原创 2024-02-01 14:43:58 · 1354 阅读 · 10 评论 -
静态时序分析:常用的SDC约束命令
Tcl(Tool Command Language)是一种用于编写脚本的编程语言,广泛用于电子设计自动化(EDA)工具中,如Cadence的Virtuoso、Synopsys的Design Compiler等。在EDA工具中,SDC(Synopsys Design Constraints)是一种用于定义电子设计约束的文件格式,它用于确保电子设计在时序、时钟分频、时序杂散等方面满足规定的要求。下面分类别给出一些常用的SDC约束命令。原创 2023-11-03 13:35:46 · 594 阅读 · 13 评论 -
静态时序分析:SDC约束命令create_generated_clock详解(下)
前文的末尾提到,当使用-divide by或-multiply_by选项创建生成时钟时,会根据master clock的时钟周期派生出生成时钟的周期,但对于时钟边沿的处理,两者则不一致。但是,仍然有方法在一定程度上对占空比进行设定。现在拿图1中的时钟倍频器举例说明,图2是它的波形图,假设clk的周期是20ns。原创 2023-11-08 22:05:06 · 1830 阅读 · 3 评论 -
静态时序分析:SDC约束命令create_clock详解
period选项用于定义时钟对象的周期,周期的单位由工艺库给出。下面的所有实例,默认是以纳秒(ns)为单位,且时钟周期的值必须有意义即大于0。虽然有set_units命令可以用来指定单位,但它不应该被主动使用,因为指定的单位不能与工艺库冲突。原创 2023-11-04 20:45:42 · 4512 阅读 · 15 评论 -
静态时序分析:SDC约束命令create_generated_clock详解(上)
Tcl语言有时候,复杂的设计需要多个时钟来完成相应的操作,当设计中有多个时钟存在时,它们需要相互协作或各司其职。有几种时钟可能由其他时钟而派生或者说生成,在定义这些时钟时需要使用创建生成时钟命令create_generated_clock。这类时钟可能是时钟分频器,时钟倍频器和时钟门控。原创 2023-11-07 22:35:11 · 4797 阅读 · 19 评论 -
静态时序分析:传播延迟与转换时间
在数字集成电路中,一个门的传播延迟(Propagation Time)定义为从输入的转变发生到输出转变发生的时间,所以需要定义输入和输出发生转变的时间点,单元库的开头会给出相关阈值的定义。原创 2024-01-27 17:47:44 · 1433 阅读 · 18 评论