VHDL <b_off_obuf>不完整。信号不是由设计中的任何源引脚驱动的

时间:2015-08-21 14:04:34

标签: vhdl xilinx xilinx-ise spartan

我正在尝试在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 - 信号不完整。该   信号不会驱动设计中的任何负载引脚。

1 个答案:

答案 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';