FPGA时序约束之衍生时钟约束和时钟分组约束

时间:2025-06-17  作者:Diven  阅读:0

在FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟约束。

FPGA时序约束之衍生时钟约束和时钟分组约束

本文将重点讲解衍生时钟约束和时钟分组约束设置,给出详细的约束命令和示例介绍。

一、衍生时钟约束

衍生时钟(Generated Clocks),也叫生成时钟,是从FPGA的主时钟信号派生出来的子时钟信号。

这些子时钟信号可以在FPGA内部的不同区域使用,以满足不同模块的需求。通常是由MMCM或PLL或由组合逻辑生成的倍、分频时钟信号。

衍生时钟与源时钟的关系如下:

  • 简单的频率分频
  • 简单的频率倍频
  • 频率倍频与分频的组合,获得一个非整数的比例
  • 相移或波形反相
  • 占空比改变
  • 上述所有关系的组合

衍生时钟的约束,需要可以在时钟树中加入生成的时钟,可以使用create_generated_clock命令来定义衍生时钟的时钟约束。其语法如下:

create_generated_clock -name < generated_clock_name > \\ -source < master_clock_source_pin_or_port > \\ -multiply_by < mult_factor > \\ -divide_by
参数含义
-name时钟名称
-source源时钟
-multiply_by相对于源时钟的倍频系数
-divide_by相对于源时钟的分频系数
pin_or_port物理节点

通过create_generated_clock命令,我们就可以非常灵活地定义衍生时钟的时序约束,并将其与主时钟相结合,保证电路的稳定性和正确性。

创建时钟示例:

create_clock -name clk_24m -period 10 [get_ports sys_clk]create_generated_clock -name clkdiv2 -source [get_ports clk_24m] -divide_by 2 \\ [get_pins REGA/Q]

衍生时钟通常有两种情况:“FPGA开发软件自动推导的衍生时钟”和“用户自定义的衍生时钟”

对于FPGA开发软件自动推导出来的衍生时钟 ,比如MMCM和PLL分频输出来的时钟,可以不用写入时序约束,只需要对输入MMCM和PLL的主时钟做时序约束即可。

用户自定义的衍生时钟 ,通常指的是用户通过组合逻辑构建的分频时钟,这就需要我们自己来写衍生时钟约束。

二、时钟分组约束

FPGA电路中除了主时钟以外,还有很多其衍生时钟,如DFF的时钟、时钟分频器的时钟等。

这些时钟对于电路性能和可靠性非常重要。

所以需要将这些衍生时钟和主时钟分组,并定义之间的层次关系,以确保电路的稳定运行。

在Vivado中可以使用set_clock_groups命令来定义时钟分组。其语法如下:

set_clock_groups -name < group_name > -group < group_type > < async_port_list > < sync_port_list\\ > [-logICally\\_exclusive]
参数含义
-name时钟分组命名
-group时钟分组的类型
aysnc_port_list异步端口列表
sync_port_list同步端口列表
-logICally_exclusive用于指定是否为逻辑独立分组

1、两个主时钟是异步关系

create_clock -period 12 -name clk1 [get_ports clk1]create_clock -period 6 -name clk2 [get_ports clk2]set_clock_groups -asynchronous -group clk1 -group clk2

2、验证同一个时钟端口下,不同时钟频率的时序是否收敛

create_clock -name clk1A -period 20.0 [get_ports clk1]create_clock -name clk1B -period 10.0 [get_ports clk1] -addcreate_clock -name clk1C -period 5.0 [get_ports clk1] -add create_clock -name clk2 -period 10.0 [get_ports clk2]set_clock_groups -physically_exclusive -group clk1A -group clk1B -group clk1Cset_clock_groups -asynchronous -group "clk1A clk1B clk1C" -group clk2

3、BUFGMUX

通过MMCM生成有两个时钟输入BUFGMUX时,只有一个时钟会被使用,这时设置的时序约束为:

set_clock_groups -logically_exclusive \-group [get_clocks -of [get_pins inst_mmcm/inst/mmcm_adv_inst/CLKOUT0]] \-group [get_clocks -of [get_pins inst_mmcm/inst/mmcm_adv_inst/CLKOUT1]]

三、

本文详细介绍了衍生时钟约束和时钟分组约束,这两个是在时序约束中常见的写法,大家在学习时序约束时,可以对照着学习理解。

猜您喜欢

在选择钻头时,了解其参数非常重要。不同类型的钻头适用于不同的材料和工作环境,以下是一些关键参数。钻头的直径是最基本的参数,通常以毫米或英寸表示。直径越大,钻孔的...
2014-02-09 00:00:00

随着现代科技的飞速发展,传感器技术在各个领域中得到了广泛的应用。在移动设备、航空航天、汽车、工业自动化等领域,陀螺仪传感器和加速度传感器作为两种常见的惯性传感器...
2023-10-05 10:49:00


电源监控主机是保障电力系统安全稳定运行的重要设备,正确安装是确保其发挥功效的关键。本指南将为您详细介绍电源监控主机的安装步骤,即使您不是专业电工,也能轻松掌握。...
2024-10-26 00:00:00

插件电阻作为基础且重要的元件,被应用于各种电路设计中。丽景电子作为知名的电子元器件供应商,其插件电阻产品因质量稳定、性能可靠而受到广大电子工程师的青睐。本文将详...
2024-10-10 07:03:46

测量贴片电阻阻值最常用的工具是万用表。操作步骤如下:选择电阻档位: 根据预估的电阻值大小,选择合适的电阻档位。如果不知道电阻值范围,可以从最高的档位开始逐步降低...
2024-11-29 10:26:17

现代电子电路中,齐纳二极管和瞬态抑制二极管(TVS)是两种重要的保护元件。虽然两者在某些方面有相似之处,但工作原理、应用场景和特性却有显著的区别。本文将对齐纳二...
2025-04-05 17:00:02

射频功率放大器在现代通信和电子设备中是非常重要的配件,其主要优势不可忽视。射频功率放大器能够有效提高信号强度,确保远距离传输时信号质量不受损失。这对于无线通信、...
2023-02-04 00:00:00

电子元件中,二极管和三极管是最常见的基础元件。二极管主要用于单向导电,而三极管则用于放大和开关作用。随着时间的推移,这些元件可能会出现故障,因此学习如何检测好坏...
2025-04-07 09:00:35

现代生活中,配件的选择和使用越来越受到重视。无论是在时尚、家居还是科技产品中,配件都是不可少的配件。其中,"Accessories_15X7MM_TM...
2025-04-23 08:00:36