実現したいこと
- compenentを複数作ってインスタンス化したい
前提
大学の課題で簡易的なALUのシステムを作っています。
私が今組んでいるコードはコンパイルは通ったのですが、まとめあげをすると、componentをインスタンス化する文にエラーがでてしまい困っています。
インスタンス名の大文字を小文字にしてみたり、宣言する変数名を変えてみたりといろいろ調べつつ試行錯誤してみたのですがうまくいかず、ハードウェア記述言語に詳しい方に力を借りたいと考えています。。
発生している問題・エラーメッセージ
simple_alu_test.vhdl:40:3:warning: component instance "u0" is not bound simple_alu_test.vhdl:8:14:warning: (in default configuration of simple_alu_test(ex)) simple_alu_test.vhdl:41:3:warning: component instance "u1" is not bound simple_alu_test.vhdl:8:14:warning: (in default configuration of simple_alu_test(ex)) simple_alu_test.vhdl:42:3:warning: component instance "u2" is not bound simple_alu_test.vhdl:8:14:warning: (in default configuration of simple_alu_test(ex)) simple_alu_test.vhdl:43:3:warning: component instance "u3" is not bound simple_alu_test.vhdl:8:14:warning: (in default configuration of simple_alu_test(ex)) simple_alu_test.vhdl:44:3:warning: component instance "u4" is not bound simple_alu_test.vhdl:8:14:warning: (in default configuration of simple_alu_test(ex))
該当のソースコード
VHDL
1library IEEE; 2use IEEE.std_logic_1164.all; 3 4entity SIMPLE_ALU is 5 port( 6 A,B,SEL1,SEL2 : in std_logic; 7 Z : out std_logic); 8END SIMPLE_ALU; 9architecture EX1 of SIMPLE_ALU is 10 component and2 port( 11 A, B : in std_logic; 12 C : out std_logic ); 13 end component; 14 15 component or2 port( 16 A, B : in std_logic; 17 C : out std_logic ); 18 end component; 19 20 component xor2 port( 21 A, B : in std_logic; 22 C : out std_logic ); 23 end component; 24 25 component not1 port( 26 A : in std_logic; 27 C : out std_logic ); 28 end component; 29 30 component sel4_1 port( 31 A,B,C,D : in std_logic; 32 SEL1,SEL2 : in std_logic; 33 Z : out std_logic ); 34 end component; 35 36signal o_and2, o_or2, o_xor2, o_not1,o_sel : std_logic; 37begin 38 U0: and2 port map (A, B, o_and2); 39 U1: or2 port map (A, B, o_or2); 40 U2: xor2 port map (A, B, o_xor2); 41 U3: not1 port map (A, o_not1); 42 U4: sel4_1 port map (o_and2,o_or2,o_xor2,o_not1,SEL1,SEL2,o_sel); 43 Z <= o_sel; 44end EX1;
VHDL(テストベンチ)
1library IEEE; 2use IEEE.std_logic_1164.all; 3use IEEE.std_logic_unsigned.all; 4 5entity simple_alu_test is 6END simple_alu_test; 7 8architecture EX of simple_alu_test is 9 constant STEP : Time := 100 ns; 10 signal A,B,C,D,SEL1,SEL2 : std_logic; 11 component and2 port( 12 A, B : in std_logic; 13 C : out std_logic ); 14 end component; 15 16 component or2 port( 17 A, B : in std_logic; 18 C : out std_logic ); 19 end component; 20 21 component xor2 port( 22 A, B : in std_logic; 23 C : out std_logic ); 24 end component; 25 26 component not1 port( 27 A : in std_logic; 28 C : out std_logic ); 29 end component; 30 31 component sel4_1 port( 32 A,B,C,D : in std_logic; 33 SEL1,SEL2 : in std_logic; 34 Z : out std_logic ); 35 end component; 36 37 signal o_and2,o_or2,o_xor2,o_not1,o_sel : std_logic; 38 39 begin 40 U0: and2 port map (A, B, o_and2); 41 U1: or2 port map (A, B, o_or2); 42 U2: xor2 port map (A, B, o_xor2); 43 U3: not1 port map (A, o_not1); 44 U4: sel4_1 port map (o_and2,o_or2,o_xor2,o_not1,SEL1,SEL2,o_sel); 45 46 process(A,B) 47 begin 48 o_and2<=A and B; 49 o_or2<=A or B; 50 o_xor2<=A xor B; 51 o_not1<= not A; 52 end process; 53 54 process(SEL1,SEL2) 55 begin 56 if (SEL1='0' and SEL2='0')then 57 o_sel <= o_and2; 58 elsif (SEL1='0' and SEL2='1')then 59 o_sel <= o_or2; 60 elsif (SEL1='1' and SEL2='0')then 61 o_sel <= o_xor2; 62 else 63 o_sel <= o_not1; 64 end if; 65 end process; 66 end EX;
試したこと
・インスタンス名の大文字・小文字の入れ替え
・変数名の変更
補足情報(FW/ツールのバージョンなど)
バージョン : v93
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/19 13:55