我正在使用带有Spartan-6 150T FG484的ISE 14.2嵌入式版本。
我的设计包含一个MicroBlaze处理器。
我从SP605板开始使用原型设计,并使用更大的设备转换为我的真实设计。
我小心更新所有设备引用以使用更大的150T设备。
SP605使用LVCMOS25,而我的
电路板使用LVCMOS33。
我用我的所有信号填写了我的UCF文件,但只有一些导致了错误。
这是我从Map获得的错误:
信息:位置:834 - 仅锁定IO的子集。
在92个IO中,89个被锁定,3个未被锁定。
以下是未锁定的组件列表。
OA_o_SYS_OK未锁定OA_o_HP_INHIBIT未锁定OA_o_ATTENUA
tiON_EN未锁定其余IO已锁定错误:放置:866 - 没有足够的有效站点放置以下IOB:IO标准:名称= LVCMOS25,VREF = NR,VCCO = 2.50,TERM = NONE,
DIR = OUTPUT,DRIVE_STR = 12 OA_o_SYS_OK OA_o_HP_INHIBIT OA_o_ATTENUATION_EN这可能是由于设备上可用站点数量不足,禁止站点过多,或者I / O标准不兼容,或者范围受限于具有有效站点的I / O Bank。
这种情况可以通过以下一个(或全部)动作来解决:a)通过使用LOC或范围约束将类似标准的IOB分组到最小量的I / O Bank中。
b)如果可能,通过选择较低容量的I / O Bank,为特殊IOB最大化可用的I / O Bank资源。
c)如果适用,减少用户禁止站点的数量或使用更大的设备。
以下是我的UCF文件中的相应条目:
NET OA_o_SYS_OK LOC =“B20”|
IOSTANDARD =“LVCMOS33”;
NET OA_o_HP_INHIBIT LOC =“F22”|
IOSTANDARD =“LVCMOS33”; NET OA_o_ATTENUATION_EN LOC =“J20”|
IOSTANDARD =“LVCMOS33”;
你可以看到我确实有这些LOCKED。
在我的MHS文件中:
端点OA_o_ATTENUATION_EN = OA_o_ATTENUATION_EN,DIR = OPORT OA_o_HP_INHIBIT = OA_o_HP_INHIBIT,DIR = OPORT OA_o_SYS_OK = OA_o_SYS_OK,DIR = O,SIGIS = NONE
我已经尝试将SYS_OK的IO引脚从B20交换到A20,其中A20位于不会出错的引脚上,但它仍然说SYS_OK没有锁定并给出完全相同的错误。
我甚至尝试删除SYS_OK,它名为OK,并用新名称SYS_OK添加回来,但我仍然得到同样的错误。
我还清理了设计文件并重新设计了干净的设计。
没有运气。
我从阅读中知道LVCMOS25是默认的,因此如果引脚被锁定,为什么它们会转到LVCMOS25。
我不明白的是为什么他们没有锁定。
知道这里发生了什么吗?
谢谢。
以上来自于谷歌翻译
以下为原文
I am using ISE 14.2 Embedded Edition with a Spartan-6 150T FG484.
My design contains a single MicroBlaze processor.
I started with a prototype design from an SP605 board and converted to my real design using the larger device. I was careful to update all device references to use the larger 150T device.
The SP605 uses LVCMOS25 whereas my board with use LVCMOS33.
I filled in my UCF file with all my signals, but only some caused errors.
Here is the error I get from Map:
INFO:Place:834 - Only a subset of IOs are locked. Out of 92 IOs, 89 are locked
and 3 are not locked. The following is the list of components that are not
locked.
OA_o_SYS_OK NOT LOCKED
OA_o_HP_INHIBIT NOT LOCKED
OA_o_ATTENUATION_EN NOT LOCKED
Rest of the IOs are LOCKED
ERROR:Place:866 - Not enough valid sites to place the following IOBs:
IO Standard: Name = LVCMOS25, VREF = NR, VCCO = 2.50, TERM = NONE, DIR =
OUTPUT, DRIVE_STR = 12
OA_o_SYS_OK
OA_o_HP_INHIBIT
OA_o_ATTENUATION_EN
This may be due to either an insufficient number of sites available on the
device, too many prohibited sites,
or incompatible I/O Standards locked or range constrained to I/O Banks with
valid sites.
This situation could possibly be resolved by one (or all) of the
following actions:
a) Grouping IOBs of similar standards into a minimum amount of I/O Banks by
using LOC or range constraints.
b) Maximizing available I/O Banks resources for special IOBs by choosing
lower capacity I/O Banks if possible.
c) If applicable, decreasing the number of user prohibited sites or using a
larger device.
And here are the corresponding entries in my UCF file:
NET OA_o_SYS_OK LOC = "B20" | IOSTANDARD = "LVCMOS33";
NET OA_o_HP_INHIBIT LOC = "F22" | IOSTANDARD = "LVCMOS33";
NET OA_o_ATTENUATION_EN LOC = "J20" | IOSTANDARD = "LVCMOS33";
You can see that I do in fact have these LOCKED.
And in my MHS file:
PORT OA_o_ATTENUATION_EN = OA_o_ATTENUATION_EN, DIR = O
PORT OA_o_HP_INHIBIT = OA_o_HP_INHIBIT, DIR = O
PORT OA_o_SYS_OK = OA_o_SYS_OK, DIR = O, SIGIS = NONE
I have tried swapping IO pins for SYS_OK from B20 to A20 where A20 is on a pin that does not give errors, but it still says SYS_OK is not LOCKED and gives the exact same error.
I even tried removing SYS_OK which was orginally name OK and adding it back in with a new name SYS_OK and still I have get the same error.
I have also cleaned design files and rebuilt the design clean. No luck.
I know from reading around that
LVCMOS25 is the default so that makes sense as to why if the pins are LOCKED they go to
LVCMOS25. What I don't understand is why are they not LOCKED.
Any idea what is going on here?
Thanks.