复制高扇出信号线驱动 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

寄存器复制可通过复制寄存器来减少给定信号的扇出,从而提升关键路径的速度。这便于实现工具更加灵活地对各类不同负载和相关逻辑进行布局布线。综合工具广泛采用了这种方法。

大多数综合工具使用扇出阈值限值来自动判定是否需要复制寄存器。降低此全局阈值即可自动复制高扇出信号线。但这样就无法控制需复制的寄存器范围以及这些寄存器的负载分组方式。此外,全局复制机制无法准确评估时序裕量,导致不必要的复制单元、逻辑占用率增加以及潜在功耗增加。

对于高频率设计,要减少扇出,最好对高扇出信号使用平衡树。可考虑根据设计层级手动复制寄存器,因为层级中包含的单元通常布局在一起。例如,在下图所示的平衡复位树中,在 RTL 中复制高扇出复位 FF RST2 以平衡不同模块之间的扇出。如果需要,物理综合可以基于布局信息执行进一步的复制以改进 WNS。

提示: 要在综合中保留重复寄存器,请使用 KEEP 属性,而不是 DONT_TOUCH。在实现流程后期进行物理最优化期间,DONT_TOUCH 属性会阻止进行进一步最优化。
注释: 如果复制的是 LUT1 而不是寄存器,表明应用的属性或约束错误。
图 1. 高扇出复位变换为平衡复位树

切勿复制用于同步跨时钟域的信号的寄存器。如果这些寄存器上存在 ASYNC_REG 属性,将导致工具无法复制这些寄存器。如果同步链扇出极高且复制必须满足时序要求,那么请在不含 ASYNC_REG 约束的同步链之后添加额外的寄存器。