我正在使用一些简单的VGA驱动程序代码,以与Xilinx Spartan 6 FPGA一起使用(通过Papilio Pro板)。该代码期望每种颜色具有4位输出,因此为每种颜色定义了逻辑向量。但是,我的设置不会碰巧提供每种颜色的完整4位,因此我想找到一种创新的方法来通过UCF进行控制。

原始UCF为每种颜色定义了4个引脚。在蓝色的情况下,我只有两个引脚,因此我选择将两个我必须映射到蓝色的MSB,因此:

NET Blue(0)                 IOSTANDARD=LVTTL;  # N/C
NET Blue(1)                 IOSTANDARD=LVTTL;  # N/C
NET Blue(2)     LOC="P92" | IOSTANDARD=LVTTL;  # to a pin
NET Blue(3)     LOC="P87" | IOSTANDARD=LVTTL;  # to a pin


(我一开始完全忽略了前两个约束,它仍然可以编译和工作,但是抱怨电压标准不一致(默认情况下,默认为IOSTANDARD = LVCMOS25),因此抛出“警告:位置:838-IO总线超过找到了一种IO标准。”)

主要警告是我想知道如何消除的警告,最好是在UCF中消除:

WARNING:Place:837 - Partially locked IO Bus is found.
    Following components of the bus are not locked:
     Comp: Blue<1>
     Comp: Blue<0>


什么是将没有可编程引脚位置的网络映射到UCF中的默认值(逻辑“ 1”或“ 0”,或者可能是三态值)的正确方法,从而消除了这种“部分锁定的IO”公交车”这样的警告?

我的目标是,在每个通道由引脚驱动更多或更少位的设置中,仅UCF才需要更改(而不是源代码)。尽管有警告,我所做的工作还是有效的……我只是想做得更好,并适当消除这些警告。

最佳答案

您已要求在代码顶层(在entity上)内输入图钉。因此,工具必须提供它们。因此,您必须对其进行映射(否则,它将为您随机选择一些您通常不想要的对象)

如果这些引脚确实在电路板上无处可走,也永远也没有,那么将它们从设计中完全删除(UCF和HDL)。

否则,您必须找到它们。您可以在UCF中向它们添加PULLDOWN,以确保它们的值较低。

09-29 22:37