UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 32979

11.2 XST - 「ERROR:HDLCompiler:637 - "<file>.vhd" Line xx: Net abcd[x] is constantly driven from multiple places」というエラー メッセージが表示される

説明

キーワード : XST, Spartan-6, Virtex-6, S6, V6, 11.2 , Parser, HDLCompiler:637, HDLCompiler:208, 解析

Virtex-6/Spartan-6 デバイスを使用すると XST で次のエラー メッセージが表示されます。Virtex-6/Spartan-6 以前にリリースされたデバイスを使用してもエラー メッセージは表示されません。この理由を教えてください。

ERROR:HDLCompiler:637 - "<file>.vhd" Line xx: Net state[7] is constantly driven from multiple places
ERROR:HDLCompiler:208 - "<file>.vhd" Line yy: Another driver from here

コード例 :

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;

entity ex_0008 is
port(clk,reset : in std_logic;
output : out std_logic_vector(7 downto 0)
);
end ex_0008;

architecture bhv of ex_0008 is
signal state : std_logic_vector(7 downto 0);
begin
process( reset , clk )
begin
if(reset = '1') then
output <= "00000000";
state <= "00000000";
elsif(clk'event and clk = '1') then
case state is
when "00000000" => output <= "00000001"; state <= "00000001";
when "00000001" => output <= "00000010"; state <= "00000010";
when "00000010" => output <= "00000011"; state <= "00000011";
when others => output <= "00000100"; state <= "00000000";
end case;
end if;
end process;

state <= not state;
end;

ソリューション

上記の例では、信号のステートがプロセス内とプロセス外で割り当てられています。この記述は、FPGA ではインプリメントできません。

この問題を解決するには、プロセス外でステートを割り当てないようにします。

11.2 XST では Virtex-6 および Spartan-6 ファミリに新しい VHDL/Verilog 解析が導入されました。 この詳細は、(Xilinx Answer 32927) を参照してください。


AR# 32979
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加