Timing Analyzer“创建生成时钟”命令

author-image

作者

Timing Analyzer 将修改或更改输入时钟或主机时钟特性的时钟分频器、行波时钟或电路视为生成时钟。应将这些电路的输出定义为生成时钟。此定义使 Timing Analyzer 可以分析这些时钟并解释与其相关的任何网络延迟。

可以使用 create_generated_clock 命令创建生成时钟。以下列表显示了 create_generated_clock 命令以及可用选项:

create_generated_clock
   [-name <clock name>]
   -source <host pin>
   [-edges <edge list>]
   [-edge_shift <shift list>]
   [-divide_by <factor>]
   [-multiply_by <factor>]
   [-duty_cycle <percent>]
   [-add]
   [-invert]
   [-host_clock <clock>]
   [-phase <phase>]
   [-offset <offset>]
   <source objects>

表 1 介绍了 create_generated_clock 命令的选项。

源延迟基于主机时钟(不一定是主机引脚)的时钟网络延迟。可以使用 set_clock_latency -source 命令覆盖源延迟。

图 1 显示了以下 SDC 命令的波形,基于一个 10 ns 时钟创建了反相生成时钟。

create_clock -period 10 [get_ports clk]
create_generated_clock -divide_by 1 -invert -source [get_registers clk] \
    [get_registers gen|clkreg]

图 1.生成反相时钟。

图 2 显示了以下 SDC 命令的波形,使用 -edges-edge_shift 选项修改了生成时钟。

create_clock -period 10 -waveform { 0 5 } [get_ports clk]
# 创建一个二分频时钟
create_generated_clock -source [get_ports clk] -edges { 1 3 5 } \
    [get_registers clkdivA|clkreg]
# 创建一个独立于 50% 主机时钟占空比的二分频时钟
create_generated_clock -source [get_ports clk] -edges { 1 1 5 } -edge_shift  0 5 0 } \
    [get_registers clkdivB|clkreg]

图 2.生成时钟的时钟沿和时钟沿偏移。

图 3 显示了以下 SDC 命令的波形,展示了 -multiply 选项对生成时钟的影响。

create_clock -period 10 -waveform { 0 5 } [get_ports clk]
# 创建一个二分频时钟
create_generated_clock -source [get_ports clk] -multiply_by 2 \
    [get_registers clkmult|clkreg]

图 3.对生成时钟进行倍频。