问题描述
当使用LOC约束由PlanAhead约束时,我的设计失败并出现以下包错误。所有这些逻辑在没有约束的情况下成功打包成切片。当逻辑受限时,为什么包会失败?
“错误:包装:679 – 无法遵守设计约束(LOC = SLICE_X51Y40)
需要将以下符号组综合一个SLICE
零件:
LUT符号“receiver / synchroTOPInst / CFOCorri / cordInIM [0]”(输出信号=
接收机/ synchroTOPInst / CFOCorri / cordInIM [0])
MUXCY符号“receiver / synchroTOPInst / CFOCorri / CordicGPInst / I_3_cry_0”
(输出信号=接收器/ synchroTOPInst / CFOCorri / CordicGPInst / I_3_cry_0 / O)
MUXCY符号“receiver / synchroTOPInst / CFOCorri / CordicGPInst / I_3_cry_1”
(输出信号=接收器/ synchroTOPInst / CFOCorri / CordicGPInst / I_3_cry_1 / O)
XORCY符号“receiver / synchroTOPInst / CFOCorri / CordicGPInst / I_3_s_1”(输出
Signal = receiver / synchroTOPInst / CFOCorri / CordicGPInst / I_3 [1])
函数发生器接收器/ synchroTOPInst / CFOCorri / cordInIM [0]无法使用
因为输出信号与其他信号不匹配而被置于F位置
符号使用F信号。信号
接收器/ synchroTOPInst / CFOCorri / CordicGPInst / I_3_axb_0已经使用F.
函数发生器接收器/ synchroTOPInst / CFOCorri / cordInIM [0]无法
因为输出信号与其他信号不匹配,所以放在G位置
符号使用G信号。信号
receiver / synchroTOPInst / CFOCorri / CordicGPInst / I_3_axb_1已经使用G.
请相应地纠正设计约束。“
解决/修复方法
涉及的关键逻辑如下所示:
LUT3 – > LUT1 – > MUXCY.S
PlanAhead在LUT3和MUXCY上应用了相同的LOC约束。封隔器的规则是逆变器和缓冲器不会向后推到LOC’d LUT。此规则用于控制某些应用程序中的延迟。由于LUT3和LUT1没有组综合单个LUT,因此定向包失败。
通过设置以下环境变量,可以在8.1i中放宽此打包规则:
视窗
SET XIL_MAP_ALLOW_LOC_BACKWARD_PUSH = 1
Linux和Solaris
setenv XIL_MAP_ALLOW_LOC_BACKWARD_PUSH 1
有关设置ISE环境变量的一般信息,请参阅(Xilinx答复11630) 。
没有回复内容