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

时间:2025-04-28  作者: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]]

三、

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

猜您喜欢

日益增长的数据加速需求对硬件平台提出了越来越高的要求,FPGA作为一种可编程可定制化的高性能硬件发挥着越来越重要的作用。近年来,高端FPGA芯片采用了越来越多的...
2020-09-03 12:39:00


油石是应用于刀具、工具和机械零件磨削的磨料材料,主要用于提高表面光洁度和切削性能。根据不同的性质和用途,油石可以分为以下几类。按材料分,油石可分为天然油石和人造...
2020-11-19 00:00:00

之前用serdes一直都是跑的比较低速的应用,3.125Gbps,按照官方文档一步一步来都没出过什么问题,这次想验证一下K7系列GTX最高线速8Gbps,看看x...
2018-03-26 14:40:00

选择合适的贴片电阻功率对于电路的稳定性和可靠性很重要。功率过小,电阻容易过热甚至烧毁,导致电路故障;功率过大,则会增加成本和电路板空间。那么如何选择合适的功率呢...
2024-11-29 10:26:20

球磨机是选矿厂和冶炼厂的核心设备,其工作的可靠性、稳定性直接决定了矿山企业的效益。一、球磨机异常振动原因分析(一)传动系统故障一般包括轴线同心度超差、轴承损坏、...
2023-07-25 09:59:00

1R5贴片电阻的瓦数并不是固定的,取决于电阻的封装尺寸。常见的贴片电阻封装尺寸有0201、0402、0603、0805、1206、1210、2010、2512等...
2024-11-29 10:26:08

磁性座喷水管是高效的喷洒设备,应用于农业灌溉、园艺和工业清洗等领域。其规格尺寸通常包括管径、长度和连接方式等多个方面。磁性座喷水管的标准管径有1/2英寸、3/4...
2021-11-21 00:00:00

现代生活中,汽车已经成为了我们生活中重要的一部分,而越来越多的电子设备也走进了我们的车厢。从手机导航、行车记录仪到车载冰箱、车载吸尘器,都需要稳定的电源才能正常...
2024-02-13 00:00:00

音频线是应用于音频传输的连接线,其应用领域涵盖了多个行业和场景。在家庭娱乐领域,音频线常用于连接电视、音响、蓝牙音箱等设备,确保高质量的音频输出,让用户享受更好...
2019-06-19 00:00:00