TIMING-41
:
内部管脚上定义的前向时钟无效
前向时钟
<clock_group>
是在管脚
<netlist_element>
上定义的
,
而不是在端口
<netlist_element>
上定义的。
描述
前向时钟是在连接到输出端口的叶节点管脚上定义的
,
而不是在输出端口本身上定义的。为了正确执行
I/O
时序计算,
前向时钟应在输出端口上定义。
解决方案
复查生成时钟约束
,
将前向时钟定义移至输出端口而不是内部叶节点管脚。
TIMING-42
:
在时钟树中检测到路径分段
<message_string>
延迟约束位置
<message_string>
当前正在管脚
<netlist_element>
上阻塞
<clock_group>
的传输。
描述
由于最小
/
最大延迟时序约束中的起点或端点无效
,
导致时钟树上检测到路径分段。发生此类情况时
,
本工具会对此无效管脚强制禁用时序弧 (timing arc)
以阻止时钟传输。这将导致时序验收不准确
,
并且设计可能在硬件中失败。
解决方案
复查应用于时钟树的最小
/
最大延迟约束
,
仅指定有效的起点和端点。
TIMING-43
:
千兆位收发器
(GT)
上存在最小周期或最小
脉冲宽度违例
GT
管脚
<instance/pin>
存在
MIN_PERIOD
或
MIN_PULSE_WIDTH
违例。对于
GT
实例
,
“
Power Analysis Report”
(
功耗分析报告
)
并不准确。
描述
GT
时钟管脚上的最短周期检查可确保驱动
GT
实例的时钟的运行频率不高于原语内部硬件所能承受的频率。如果发生违例,
设计在硬件中可能发生时序收敛失败
,
功耗分析报告将变得不准确。
解决方案
要解决此违例
,
请检查相关器件系列的
AC
和
DC
特性数据手册
,
查找此原语管脚允许的最大频率。
TIMING-44
:
不合理的用户时钟内部不确定性
在
<clock_name>
时钟上定义了
<delay>
ns
用户时钟不确定性
(
请参阅
Vivado IDE
的“
Timing Constraint
”窗口中的约束位置 <position>
)
。用户时钟不确定性过高可能对时序收敛造成负面影响。请复查所需的用户时钟不确定性的量。
描述
不建议在
2
个时钟之间定义过高的用户时钟不确定性
,
因为它会影响时序收敛、编译时间和
QoR
。它还可能影响功耗,
导致无法收敛时序。
解决方案
复查用户时钟间不确定性
,
将其降低至所需的最小值。
TIMING-45
:
不合理的用户时钟间不确定性
在
<clock_name>
时钟与
<clock_name>
时钟之间定义了
<delay>
ns
用户时钟不确定性
(
请参阅
Vivado IDE
的 “Timing Constraint
”窗口中的约束位置
<position>
)
。用户时钟不确定性过高可能对时序收敛造成负面影响。请复查所需的用户时钟不确定性的量。
描述
不建议定义过高的用户时钟内部不确定性
,
因为它会影响时序收敛、编译时间和
QoR
。它还可能影响功耗
,
导致无法收敛时序。
解决方案
复查用户时钟内部不确定性
,
将其降低至所需的最小值。
TIMING-46
:
多周期路径含绑定
CE
管脚
在具有直接连接的寄存器
<cell_name1>
与
<cell_name2>
之间定义了一条或多条多周期路径
,
并且
CE
管脚连接到
VCC 。这可能导致路径要求不准确。
描述
源寄存器和目标寄存器的
CE
管脚不受动态信号控制
(
CE
管脚绑定到
VCC
)
。由于在源寄存器与目标寄存器之间存在直接数据路径连接,
因此基于单周期路径要求来捕获此路径上的数据。路径上定义的多周期路径并不表示硬件中的行为,
并且可能导致硬件中设计失败。
解决方案
应复查路径和时序约束。如果预计将绑定
CE
管脚
,
则需移除多周期路径。如果预计路径将成为多周期路径
,
那么源寄存器和/
或目标寄存器的
CE
管脚应由动态信号驱动
,
此信号根据提供的多周期约束来进行切换。
示例
以下约束是由用户编写的
,
此约束应用于
2
个寄存器之间的数据路径
,
如以下板级原理图所示
,
其中目标寄存器的
CE管脚连接到 VCC
:
set_multicycle_path -setup -end -from [get_clocks -of [get_ports -
scoped_to_current_instance s_axi_ctrl_aclk]] -to [get_clocks -of [get_ports
-scoped_to_current_instance s_axi_hwa_aclk]] 2
在超出多周期路径作用域的每个时钟沿上检查是否发生数据更改。如有更改
,
请确保添加所需的逻辑
(
绑定到
CE
管脚)
。
下图显示了触发器到触发器路径
,
其中正确的时钟使能逻辑绑定到
CE
管脚
,
这样即可按交替时钟周期使能触发器
:
set_multicycle_path 2 -setup -from [get_pins data0_reg/C] -to [get_pins
data1_reg/D]