次の簡単なテストケースがあります:
library ieee;
use ieee.std_logic_1164.all;
entity top is
end top;
architecture top of top is
component foo
port (A : std_logic_vector(1 downto 0));
end component;
begin
inst : foo port map (A(1) => '0', A(0) => '0');
end top;
------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity foo is
port (A : std_logic_vector(1 downto 0));
end foo;
architecture foo of foo is
begin
end foo;
これでmodelsimを実行すると、問題なく動作します。しかし、オプション '-87' を指定して modelsim を実行すると、これが得られないというエラーが表示されます Error: top.vhd(13): (vcom-1451) Actual (enumeration literal '0') for formal "A" is not signal name.。これは VHDL'87 の不正な RTL ですか?
これが VHDL'87 でサポートされていない場合、定数をインスタンス ピンに接続する正しい方法は何でしょうか。