質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
VHDL

VHDLは、デジタル回路設計用のハードウェア記述言語の一つ。明確な回路を加味せず、動作のみを書くだけでハードウェアの動作を定義することが可能。ソフトウェアのプログラミングと同じような設計ができます。

Q&A

解決済

1回答

1076閲覧

VHDLのエラボレート(まとめあげ)時のインスタンス化のエラー

yukitaka12

総合スコア1

VHDL

VHDLは、デジタル回路設計用のハードウェア記述言語の一つ。明確な回路を加味せず、動作のみを書くだけでハードウェアの動作を定義することが可能。ソフトウェアのプログラミングと同じような設計ができます。

0グッド

0クリップ

投稿2023/02/07 09:03

実現したいこと

  • 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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

テストベンチのコンポーネント宣言が、SIMPLE_ALU エンティティのアーキテクチャのコンポーネント宣言と一致していることを確認する必要があります。テストベンチのコンポーネント宣言を次のように変更します。

コンポーネント SIMPLE_ALU ポート( A、B、SEL1、SEL2 : std_logic 内。 Z : out std_logic); END コンポーネント;

これにより、コンポーネント インスタンス「u0」、「u1」、「u2」、「u3」、および「u4」が、SIMPLE_ALU エンティティのアーキテクチャ内のコンポーネント宣言にバインドされます。

投稿2023/02/07 09:22

Queenterry

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukitaka12

2023/02/19 13:55

ありがとうございます!無事解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問