FPGA中UCF中的位置约束问题
INST "m0" LOC=SLICE_R1C1;
INST "m1" LOC=SLICE_R2C2;
INST "m2" LOC=SLICE_R3C3;
......
但是在translate的时候就出现了如下错误:
ERROR:ConstraintSystem:59 - Constraint <INST "m0" LOC=SLICE_R1C1;> [sys.ucf(1)]:
ERROR:ConstraintSystem:59 - Constraint <INST "m1" LOC=SLICE_R2C2;> [sys.ucf(2)]:
ERROR:ConstraintSystem:59 - Constraint <INST "m2" LOC=SLICE_R3C3;> [sys.ucf(3)]:
.......
查看report显示:
ERROR:ConstraintSystem:59 - Constraint <INST "m0" LOC=CLB_R1C1;> [sys.ucf(1)]:
INST "m0" not found. Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.
其中m0,m1...是反相器的例化名。望前辈指点
INST "m0" LOC=SLICE_R1C1..
从语法上讲,这个"m0",双引号里面应该是综合后的 Hierachy path,从你设计的顶层下面的一层开始(必须要注意,不包括顶层),一直到m0这个模块那一层。就是告诉ngdbuilder,你的这个m0模块在哪,比如:"top/module1/module2/mo",忘记是斜杠还是反斜杠了,你试一下。
要注意,每次一层的名字,不是模块名,是模块被引用的实例名,比如:
ABC u_abc( port map list); 就应该是u_abc不是ABC.
另外砍下warning,是不是反相器都被优化掉了
没有被优化
translate时出现的一个warning:
WARNING:NgdBuild:1012 - The constraint <INST "/" KEEP_HIERARCHY = TRUE> is
overridden on the design object sys by the constraint <INST "/"
KEEP_HIERARCHY = TRUE>.
这个warning是怎么产生的,有影响吗
这个没关系,是你两次都设置了保持层次结构。前一次被后一次覆盖了。
我这个"m0"就是顶层下面的一层,是例化名,这些应该都没错,还是没找出问题在哪
可以换个方法试试。不手动加位置约束,综合过了后直接调整器件位置让它自动在UCF添加,看能不能成功
你确定没有被优化掉吗?生成一个综合后的仿真网表看一看是否还在
有可能被优化掉了,可以去xilinx网站查一下“ERROR:ConstraintSystem:59”,说不定有帮助
首先,我肯定没有被优化掉,也参考了“ERROR:ConstraintSystem:59”,用clean up project也没用。整个电路和约束规模都很简单,反复的看了还是找不到问题出在哪。
你在UCF里去掉那些约束,然后综合过了以后,开FPGA Editor看看能不能找到,名字有没有变化,然后手动修改位置并保存。
也可以去xilinx论坛问问
