在 Xilinx Vivado 环境中,使用 create_generated_clock
约束来定义由锁相环(PLL)或时钟管理模块(如 MMCM 或 DCM)生成的时钟。这个约束用于指定生成时钟的属性,例如时钟的源、相位和频率。
基本语法
以下是 create_generated_clock
约束的基本语法
create_generated_clock -name <clock_name>
-source <source_pin_or_port>
-sink <sink_pin_or_port>
[-edge {POS|NEG}]
[-period <clock_period_in_nano_seconds>]
[-divide_by <division_factor>]
[-mult_by <multiplication_factor>]
[-source_is_pll]
[-neg_edge_clock <clock_name>]
[-generate_timing_information]
[-from <clock_region>]
[-also_from <clock_region>]
[-append]
[-combinational]
[-physical]
[-use_fabric]
[-quiet]
参数说明
-name <clock_name>
: 指定生成时钟的名称。-source <source_pin_or_port>
: 指定生成时钟的源,可以是管脚或内部端口。-sink <sink_pin_or_port>
: 指定生成时钟的接收端,可以是管脚或内部端口。-edge {POS|NEG}
: 指定时钟边沿(上升沿 POS 或下降沿 NEG)。-period <clock_period_in_nano_seconds>
: 指定时钟周期(以纳秒为单位)。-divide_by <division_factor>
: 指定分频因子。-mult_by <multiplication_factor>
: 指定倍频因子。-source_is_pll
: 指示源时钟是由 PLL 生成的。-neg_edge_clock <clock_name>
: 指定负边沿时钟的名称。-generate_timing_information
: 生成时序信息。-from <clock_region>
: 指定时钟区域的源。-also_from <clock_region>
: 指定附加的时钟区域源。-append
: 将新约束添加到现有约束。-combinational
: 指定组合逻辑时钟域。-physical
: 指定物理时钟域。-use_fabric
: 指定使用 FPGA 内部的布线资源生成时钟。-quiet
: 执行操作时不显示消息。
示例
假设你有一个 PLL,并且想要创建一个从 PLL 输出的时钟,可以这样写
create_generated_clock -name generated_clk
-source clk_in_pin
-sink clk_out_pin
-period 10000
-source_is_pll
在这个示例中,generated_clk
是新生成的时钟名称,clk_in_pin
是 PLL 的输入时钟管脚,clk_out_pin
是 PLL 输出的时钟管脚,-period 10000
指定了时钟周期为 10 ns,对应于 100 MHz 的频率。