在 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 的频率。