我不确定这是否是发布此内容的正确堆栈交换网站,但如果不是,请将其移至适当的网站。
在为 spartan 3 starter kit 编写约束文件时,我遇到了一个小问题。
我已经阅读了赛灵思(制造商)提供的文档,并且我已经在网上搜索了几个星期,但没有任何运气。
我要做的是将我的网表接口链接到板上的 3 个 40 针头中的任何一个。(见下图)
通常它非常简单,如果说我想连接板上的按钮或 LED,我只需读取板上的连接名称,例如其中一个按钮是M13,然后在 UCF 文件中写入如下内容:
NET "BTN0" LOC = "M13";
正如您在图像上看到的,标题在板上被命名为 A1、A2 和 B1,但奇怪的是,以下都不起作用:
NET "TestOutputLine" LOC = "A1(0)"; -- The (0) is to reference a single line on an array
NET "TestOutputBus" LOC = "A1"; -- The bus is of equal dimension of A1 (which is 40)
我得到的错误意味着目标(由 LOC 指定)不存在或分配无效。
我希望你对我有一些想法。提前致谢
编辑: 这是 ISE 的输出:
ConstraintSystem:59 - Constraint <NET "TestOutputBus" LOC = "A1";>
[circuit.ucf(12)]: NET "TestOutputBus" not found. Please verify that:
1. The specified design element actually exists in the original design.
但我很确定 TestOutputBus 存在,事实上我的设计中没有其他内容,并且正在使用正确的顶级单元。
EDIT2: 我更新了我的 UCF 文件,现在是这样的:
NET "TestOutputBus(0)" LOC = "A1(0)";
NET "TestOutputBus(1)" LOC = "A1(1)";
但是我现在在映射中遇到了一个不同的错误:
MapLib:30 - LOC constraint A1:0 on TestOutputBus<0> is invalid: No such
site on the device. To bypass this error set the environment variable
'XIL_MAP_LOCWARN'.
MapLib:30 - LOC constraint A1:1 on TestOutputBus<1> is invalid: No such
site on the device. To bypass this error set the environment variable
'XIL_MAP_LOCWARN'.
解决方案 :
为了将引脚 5 和 6 分别映射到 TestOutputBus(0) 和 TestOutputBus(1) 我必须使用的是:
NET "TestOutputBus(0)" LOC = "N7"; -- A1 pin 5
NET "TestOutputBus(1)" LOC = "L5"; -- A1 pin 6
请注意,引脚 0 不可映射,这就是我使用引脚 5 和 6 的原因,以下表格显示了所有接头及其 LOC 的可映射引脚。