时钟约束
物理 XDC 约束驱动时钟树的实现并控制使用高扇出时钟资源。由于 UltraScale 器件时钟比采用以前架构的时钟更灵
活,并且包括额外的体系结构约束,因此了解如何正确约束时钟以实现是非常重要的。
使用 LOC 约束 IO/MMCM/PLL/GT
要约束时钟,您可以按如下所示分配布局约束:
•
在 I/O 端口的时钟输入
为 GCIO 上的时钟分配 PACKAGE_PIN 约束或为 IOB 分配 LOC 会影响时钟网络。直接连接到输入端口的 MMCM/PLL
和时钟缓存必须布局在相同的时钟区域中。
•
在 MMCM 或 PLL 上
直接连接到 MMCM 或 PLL 输出的时钟缓存,连接到 MMCM 或 PLL 输入的输入时钟端口自动布局在相同的时钟区
域中。如果输入时钟端口和 MMCM 或 PLL 直接连接并限制在不同的时钟区域,则必须手动插入时钟缓存并在连接
到 MMCM 或 PLL 的网络上设置 CLOCK_DEDICATED_ROUTE 约束。
•
在 GT*_CHANNEL 或 IBUFDS_GTE3 单元上
由单元驱动的 BUFG_GT 布局在相同的时钟区域中。
注意! 赛灵思不推荐在时钟缓存单元上使用 LOC 约束。此方法将时钟强制到特定轨道 ID ,这可能导致无法合法布线的
布局。当您明确设计的整个时钟树并且设计中的布局一致时,只能使用 LOC 约束在 UltraScale 器件中布局高扇出时钟
缓存。即使在采取这些预防措施后,由于设计或约束变化,在实现期间可能会发生冲突。
在时钟缓存上使用 CLOCK_REGION 属性
您可以使用 CLOCK_REGION 约束为时钟区域分配时钟缓存,而不指定 site 位置。这在优化所有时钟树以及确定适当的
缓存 site 位置以成功布线所有时钟时,将赋予布局器更大的灵活性。
您还可以使用 CLOCK_REGION 约束来提供关于级联时钟缓存或由非时钟原语 (例如,构造逻辑)驱动的时钟缓存的布
局的指导。
在以下示例中, XDC 约束将 clkgen/clkout2_buf 时钟缓存分配给 CLOCK_REGION X2Y2 。
set_property CLOCK_REGION X2Y2 get_cells clkgen/clkout2_buf
注释: 在大多数情况下,时钟缓存由已经约束到时钟区域的输入时钟端口, MMCM , PLL 或 GT*_CHANNEL 直接驱动。
在这种情况下,则时钟缓存将自动布局在同一时钟区域中,并且您不需要使用 CLOCK_REGION 约束。
使用 Pblock 限制时钟缓存布局
当不需要将时钟缓存布局在特时序钟区域中时,可以使用 Pblock 指时序钟区域的范围。例如,当需要 BUFGCTRL 来复
用位于不同区域的两个时钟时,使用 Pblock 。您可以将 BUFGTRL 分配给包含两个时钟驱动程序之间的时钟区域的
Pblock ,并让布局器识别有效的布局。
注释: 赛灵思不推荐在单个时钟区域使用 Pblock 。
在时钟网络上使用 USER_CLOCK_ROOT 属性
您可以使用 USER_CLOCK_ROOT 属性,来强制限时序钟缓存驱动的时钟根位置。指定 USER_CLOCK_ROOT 属性会影响
设计布局,因为它通过修改时钟布线来影响插入延迟和偏移。 USER_CLOCK_ROOT 值对应时钟区域,并且必须在由高
扇出时钟缓存直接驱动的网段上设置属性。下面给出一个实例:
set_property USER_CLOCK_ROOT X2Y3 get_nets clkgen/wbClk_o

如下例所示,布局后,您可以使用 LOCK_ROOT 性查询实际的时钟根。 CLOCK_ROOT 将报告分配根,无论是由用户分
配还是由 Vivado 工具自动分配。
get_property CLOCK_ROOT get_nets clkgen/wbClk_o
=> X2Y3
另一种查看已实现设计的时钟根分配的方法是使用 report_clock_utilization Tcl 命令。例如:
report_clock_utilization -clock_roots_only
下图显示了此报告。

在多个时钟网络上使用 CLOCK_DELAY_GROUP 约束
您可以使用 CLOCK_DELAY_GROUP 约束来匹配由不同时钟缓存驱动的多个相关时钟网络的插入延迟。此约束通常用于
最小化源自同一 MMCM ,或 PLL 的时钟之间的同步 CDC 时序路径上的偏移。您必须在与时钟缓存直接联通网段上设
置 CLOCK_DELAY_GROUP 约束。下面的示例显示了 clk1_net 和 clk2_net 时钟网络,这些网络由时钟缓存直接驱
动:
set_property CLOCK_DELAY_GROUP grp12 get_nets {clk1_net clk2_net}
FPGA 时钟约束
cckkppll2025-01-20 20:42
相关推荐
坏孩子的诺亚方舟16 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系FPGA小徐16 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)FPGA小徐17 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现Saniffer_SH17 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境zlinear数据采集卡18 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?9527华安18 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持FPGA小徐18 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现国科安芯19 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究ALINX技术博客19 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术Hello-FPGA19 天前
Xilinx KU040 FPGA Camera Link 图像采集