常用时序分析SDC 联系客服

发布时间 : 星期一 文章常用时序分析SDC更新完毕开始阅读0355a7b15cf7ba0d4a7302768e9951e79a896975

.

果生成时钟使用divide_factor 是2的幂,主时钟上升沿被用来决定生成时钟的沿。如果divider_factor不是2的幂,则是从对主时钟沿尺寸改变得来。

对已有的generated_clock使用create_generated_clock,会覆盖已有的generated_clock属性。

generated_clock在时序分析时被扩展为真实的时钟。 以下命令能够引用generated_clock: set_clock_latency set_clock_uncertainty set_propagated_clock set_clock_transition

显示有关生成时钟的信息使用report_clock命令。

多条件多模式支持:

该命令仅使用当前方案中的信息。

例:

创建频率-divide_by 2的生成时钟

create_generated_clock –divide_by 2 –source CLK [get_pins foo]

创建频率-divide_by 3的生成时钟。主时钟周期为30, 主波形为{24 36},则生成时钟周期为90,波形为{72 108}

create_gneraged_clock –divide_by 3 –source CLK [get_pins div3/Q]

创建频率-multiply_by 2的生成时钟,占空比为60%。

create_generated_clock –multiply_by 2 –duty_cycle 60 –source CLK [get_pins foo1]

创建频率-multiply_by 3的生成时钟,占空比不变。如果主时钟周期为30,主波形为{24 36} ,生成周期为10,波形为{8 12}

create_gnerated_clock –multiply_by 3 –source CLK [get_pins div3/Q]

.

.

创建生成时钟沿为主时钟的1,3,5沿。如果主时钟周期为30,波形{24 36},生成时钟周期为60,波形为{24 54}

create_generated_clock –edges {1 3 5} –source CLK [get_pints foo2]

与上个例子相似,但沿偏移1个单位。如果主周期为30,主波形为{24 36},生成时钟周期为60,波形为{25 55}

create_generated_clock –edges {1 3 5} –edge_shift {1 1 1} –source CLK [get_pins foo2]

创建一个反转时钟

create_generated_clock –divider_by 2 –invert

更多

check_timing, create_clock, get_generated_clocks, remove_generated_clock, report_clock, set_clock_latency, set_clock_unertainty, set_propagated_clock, timing_enable_multiple_clocks_per_reg

set_clock_groups

指定设计中,时钟组互相排斥或彼此异步。因此,这些时钟之间的路径不会在时序分析时被考虑。

语法:

Boolean set_clock_groups -physically_exclusive |-logically_exclusive |-asynchronous [-allow_paths] [-name name] -group clock_list

参数:

-physicall_exclusive

.

.

指定时钟组在物理上彼此排斥。物理排斥时钟不能同时存在在实际物理设计中。比如多个时钟定义在同一个源接脚。-physical_exclusive, -logically_exclusive和-asynchronous选项是相互排斥的,你只能选择其中一个。

-logicall_exclusive

两个时钟排斥类型,一个是物理排斥,另一个是逻辑排斥。逻辑排斥的例子比如MUX多路选择。但如果存在物理路径,就不推荐对多路选择时钟进行排斥设定。

-physically_exclusive, -logically_exclusive和-asynchronous 选项是互相排斥的,你只能选择其中一个。

-asynchronous

指定时钟组是彼此异步的。两个时钟是异步的如果它们彼此之间没有相位关系。信号完整性分析使用一个无限到达窗口给干扰源,除非所有到达窗口的受噪声干扰的连线和干扰源的连线由同步时钟控制。-physically_exclusive, -logically_exclusive和-asynchronous 选项是互相排斥的,你只能选择其中一个。

-allow_paths

允许在指定的时钟组之间进行时序分析。如果这一选项没有被使用,在时钟之间的时序分析会被禁止。该选项仅可以用于异步时钟组。

-name name

指定被创建时钟组的名称。每个命令只能指定一个唯一的名称,这些名称指明指定时钟组的排斥或异步关系,并且这个名称之后也便于对时钟组定义的删除。默认情况下,命令创建一个唯一的名称。

-group clock_list

指定一个时钟列表。

你可以多次使用-group选项在一条执行命令中。每个-group循环设定一组时钟,与其他所有时钟组是排斥或异步关系。如果仅有一个组被指定,这意味着该组与其他所有时钟是排斥或异步的。包含其他时钟的另一个组也同时会产生。无论何时一个新的时钟被创建,它会自动地加入到这个组。 给clock_list替换上你希望的列表。

描述:

指定设计中的时钟组彼此排斥或异步。这些时钟之间的时序路径在时序分析时不会被考虑,除非使用-allow_paths选项。一条set_clock_groups执行命令不能对同一时钟定义多次,但可以多次使用该命令把它加入到多个分组中。

两个不同类型的互斥时钟在简单时序分析时不会视为不同。然而,信号完整性分析会在时序窗口视逻辑排斥时钟为异步 。物理排斥时钟不会被时序窗口分析所考虑。

.

.

这些排斥或异步时钟之间的路径不会在时序分析时被搜索,除非使用-allow_path设定。这类似于在时间之间设定禁止路径(false path)。因此你无需人为的再次设定禁止路径。如果一个在两个排斥或异步时钟之间禁止路径已经设定,那么set_clock_groups产生的禁止路径会将其覆盖。其他不会受影响。

当时钟彼此异步,在时序窗口重叠分析时,串扰分析忽略之间的时序关系。这一情形也可称为无限窗口重叠。对于同步时钟没有无限窗口重叠,结果会变得乐观。所以当时钟不彼此同步时,使用set_clock_groups –asynchronous是十分重要的。

当一些排斥或异步时钟组被定义时,一个生成时钟和它的主时钟默认不在同一分组中。如果有必要,你必须明确地将他们让在一起。

如果多个时钟组关系为相同成对时钟而定义,物理排斥有最高优先级,其次是异步和逻辑排斥。 取消set_clock_groups设定,使用remove_clock_groups命令。报告设计中的时钟分组,使用report_clock命令加-groups选项。

多条件多模式支持:

该命令从当前方案中读取信息

例:

定义两个异步时钟域

set_clock_groups –asynchronous –name g1 –group CLK1 –group CLK2

定义一个名为CLK1的时钟作为与其他时钟异步的时钟 set_clock_groups –asynchronous –group CLK1

显示同时分析多个时钟每个寄存器而无需手工设定禁止路径。假设有两对相互排斥的时钟被复用:

CLK1和CLK2, CLK3和CLK4

每对时钟被不同的信号选择,你必须执行两次来同时分析四个时钟: set_clock_groups –logically_exclusive –group CLK1 –group CLK2 set_clock_groups –logically _excluseive –group CLK3 –group CLK4

如果每对由相同信号选择,则只要一条命令:

set_clock_groups –logically_exclusive –group {CLK1 CLK3} –group {CLK2 CLK4}

.