我正在尝试在Spartan-3E开发板上编写一个非常简单的程序。我想阅读滑动开关并使用滑动开关旁边的LED指示哪个开关处于打开位置。
这是我的代码:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Switch is
PORT(a,b,c,d: IN std_logic;
a_ON,a_Off,b_ON,b_Off,c_ON,c_Off,d_ON,d_Off: OUT std_logic);
end Switch;
architecture Behavioral of Switch is
begin
PROCESS (a)
begin
if a = '1' then
a_ON <= '1';
else
a_OFF <= '1';
end if;
END PROCESS;
end Behavioral;
这是我的* .ucf文件:
NET "a" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ;
NET "b" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP ;
NET "c" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP ;
NET "d" LOC = "N17" | IOSTANDARD = LVTTL | PULLUP ;
NET "d_OFF" LOC = "F9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "d_ON" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "c_OFF" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "c_ON" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "b_OFF" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "b_ON" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "a_OFF" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
NET "a_ON" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;
以下是我得到的错误:
PhysDesignRules:368 - 信号不完整。信号 不是由设计中的任何源引脚驱动的。
错误:PhysDesignRules:368 - 信号不完整。该 信号不是由设计中的任何源引脚驱动的。
错误:PhysDesignRules:368 - 信号不完整。该 信号不是由设计中的任何源引脚驱动的。
错误:PhysDesignRules:368 - 信号不完整。该 信号不是由设计中的任何源引脚驱动的。
错误:PhysDesignRules:368 - 信号不完整。该 信号不是由设计中的任何源引脚驱动的。
错误:PhysDesignRules:368 - 信号不完整。该 信号不是由设计中的任何源引脚驱动的。
警告:PhysDesignRules:367 - 信号不完整。该 信号不会驱动设计中的任何负载引脚。
警告:PhysDesignRules:367 - 信号不完整。该 信号不会驱动设计中的任何负载引脚。
警告:PhysDesignRules:367 - 信号不完整。该 信号不会驱动设计中的任何负载引脚。
警告:PhysDesignRules:367 - 信号不完整。该 信号不会驱动设计中的任何负载引脚。
答案 0 :(得分:1)
您设计中的以下输出信号未连接到任何逻辑或以任何方式驱动:
b_ON,b_Off,c_ON,c_Off,d_ON,d_Off
您需要至少'0'
驾驶它们才能通过DRC。例如:
b_ON <= '0';
如果由于某种原因您确实不想驱动这些信号,可以将它们设置为模式inout
,并使用'Z'
驱动它们:
port (
b_ON : inout std_logic
);
...
b_ON <= 'Z';