FPGA设计中衍生时钟的定义及约束

衍生时钟的定义:

衍生时钟主要是指由已有的主时钟进行分频、倍频或相移而产生出来的时钟信号,如由时钟管理单元(MMCM等)或一些设计逻辑所驱动产生的时钟信号。

衍生时钟的定义取决于主时钟的特性,衍生时钟约束必须指定时钟源,这个时钟源可以是一个已经约束好的主时钟或者另一个衍生时钟,衍生时钟并不直接定义频率、占空比等参数,而是定义其与时钟源的相对关系,如分频系数、倍频系数、相移差值、占空比差值等。因此,在做衍生时钟约束前,需要先做好其时钟源的约束定义。

衍生时钟的约束:

衍生时钟有两种约束方式,一种是自动衍生时钟约束,一种是手动衍生时钟约束。

自动衍生时钟约束:

Xilinx的Vivado时序工具能够识别设计中的时钟调整模块(Clock Modifying Blocks,CMB)及其基于输入主时钟的变更特性,自动为CMB输出的时钟信号创建约束,指定其相对源时钟的波形关系。在Xilinx的7系列FPGA器件中,CMB主要包括MMCM、PLL、BUFR、PHASER等。

手动衍生时钟约束:

手动衍生时钟约束可以使用create_generated_clock命令,其基本语法格式如下:

create_generated_clock -name -source -multiply_by -divide_by

-name后的generated_clock_name用于指定衍生时钟名称,

-source后的master_clock_source_pin_or_port指定衍生时钟的源时钟引脚或端口,

-multiply_by后的mult_factor用于指定衍生时钟相对源时钟的倍频系数,

-divide_by后的div_factor用于指定衍生时钟相对于源时钟的分频系数,

用于指定衍生时钟的物理节点、引脚或端口名称,

衍生时钟手动约束实例:

create_generated_clock -name VGA_CLK -source [get_pins uut_clk_wiz_0/clk_out4] -multiply_by 1 [get_ports o_vga_clk]

你可能感兴趣的:(FPGA设计,fpga开发,fpga,时钟约束)