在 Xilinx Vivado 设计套件中,使用 set_property
命令配合 CLOCK_DEDICATED_ROUTE
属性和 BACKBONE
值是为了指定时钟信号的布线策略。
set_property CLOCK_DEDICATED_ROUTE BACKBONE
这条命令的含义如下:
-
set_property
: 这是 Vivado 中用于设置属性的命令,可以对特定的设计对象(如单元、引脚、端口等)设置特定的属性。 -
CLOCK_DEDICATED_ROUTE
: 这是一个属性,用于定义时钟信号的布线方式。当设置为BACKBONE
时,它指示 Vivado 在布局布线时,将该时钟信号视为主干时钟,并使用专用的时钟布线通道(通常在 FPGA 内部有专门的时钟布线网络)进行布线。 -
BACKBONE
: 这是CLOCK_DEDICATED_ROUTE
属性的一个值,意味着该时钟信号将通过 FPGA 芯片内的主干时钟网络进行布线。这通常用于确保时钟信号能够以最小的延迟和最大的可靠性传输到目标位置。
应用场景:
使用 BACKBONE
布线策略通常适用于以下情况:
- 主要时钟信号,需要高可靠性和最小的时序不确定性。
- 跨越 FPGA 芯片多个区域的时钟信号,需要保证时钟的一致性和同步性。
- 需要避免时钟信号受到其他信号布线拥塞影响的情况。
示例:
在约束文件中,这条命令通常与特定的时钟信号相关联,如下所示:
set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_pins -hier -filter {NAME =~ */u_ddr4_infrastructure/gen_mmcme*.u_mmcme_adv_inst/CLKIN1}]
在这个示例中,命令设置了名为 CLKIN1
的时钟输入引脚的布线策略,使其通过主干时钟网络进行布线。
注意事项:
- 使用
BACKBONE
布线策略可能会限制布局布线工具的灵活性,因此需要根据实际的时序要求和 FPGA 芯片的特性来决定是否使用。 - 在使用
BACKBONE
布线时,应仔细考虑 FPGA 芯片的时钟资源和布线能力,以确保设计能满足时序要求。 - 在设计中,并非所有的时钟信号都需要使用
BACKBONE
布线,通常只有关键的、对时序要求严格的时钟信号才需要这种策略。
通过这种方式,设计师可以对 FPGA 设计中的时钟布线进行精细控制,以满足特定的时序和性能要求。