インテル® Quartus® Prime 開発ソフトウェア・プロ・エディションの問題により、VHDL が選択された IP メガコアを生成した場合、シミュレーション用のコンパイル時に以下のエラーが発生する可能性があります。
# エラー: ..vhd: (vcom-1133) Type mismatch on port 」。
# コンポーネント「」では、ポートタイプは「ieee.std_logic_1164.STD_LOGIC」です。
# エンティティ「下位レベルエンティティ>
この問題を回避するには、生成された RTL を編集し、トップインスタンスとテストベンチの両方でデータタイプを一致する必要があります。
たとえば、「FP_TEST」と呼ばれるモジュールの場合、次のことが行います。
< tb>_tb.vhd で以下の変更を行います。
差出人:
FP_TEST_tbのアーキテクチャー rtl は
コンポーネントのFP_TESTは
ポート (
a: in std_logic_vector (63 down to 0) := (その他 => 'X');--A
areset: std_logic:= 'X'; --リセット
b: std_logic_vector (63 down to 0) : = (その他 => 'X');--B
clk: std_logic := 'X' で; --Clk
opSel: in std_logic := 'X'; -- opSel
q: アウトstd_logic_vector (63 downto 0) -- q
);
エンド・コンポーネント・FP_TEST;
...
fp_test_inst: コンポーネント・FP_TEST
ポートマップ (
a => fp_test_inst_a_bfm_conduit_a、-- a.a
areset => fp_test_inst_areset_bfm_reset_reset,-areset.reset
b => fp_test_inst_b_bfm_conduit_b、-- b.b
clk => fp_test_inst_clk_bfm_clk_clk、-- clk.clk
opSel => fp_test_inst_opsel_bfm_conduit_opsel(0)、 -- opSel.opSel
q => fp_test_inst_q_q -- q.q
);
宛先:
FP_TEST_tbのアーキテクチャー rtl は
コンポーネントのFP_TESTは
ポート (
a: in std_logic_vector (63 down to 0) := (その他 => 'X');--A
areset: std_logic:= 'X'; --リセット
b: std_logic_vector (63 down to 0) : = (その他 => 'X');--B
clk: std_logic := 'X' で; --Clk
opSel: std_logic_vector(0 down to 0) : = (その他 => 'X'); -- opSel
q: アウトstd_logic_vector (63 downto 0) -- q
);
エンド・コンポーネント・FP_TEST;
fp_test_inst: コンポーネント・FP_TEST
ポートマップ (
a => fp_test_inst_a_bfm_conduit_a、-- a.a
areset => fp_test_inst_areset_bfm_reset_reset,-areset.reset
b => fp_test_inst_b_bfm_conduit_b、-- b.b
clk => fp_test_inst_clk_bfm_clk_clk、-- clk.clk
opSel => fp_test_inst_opsel_bfm_conduit_opsel、-- opSel.opSel
q => fp_test_inst_q_q -- q.q
);
また、モジュール>.vhd
差出人:
エンティティ FP_TESTは
ポート (
a: in std_logic_vector (63 down to 0) : = (その他 => '0');--Aa
areset: std_logic := '0' -- areset.reset
b: std_logic_vector (63 down to 0) : = (その他 => '0);--Bb
clk: std_logic := '0' で。 -- clk.clk
opsel: in std_logic := '0'; -- opSel.opSel
q: アウトstd_logic_vector (63 downto 0) -- q.q
);
end entity FP_TEST;
FP_TESTのアーキテクチャー RTL は
コンポーネントのFP_TEST_altera_fp_functions_160_xhvb5vaは
ポート (
clk: std_logic := 'X' で; --Clk
areset: std_logic:= 'X'; --リセット
a: in std_logic_vector (63 down to 0) := (その他 => 'X');--A
b: std_logic_vector (63 down to 0) : = (その他 => 'X');--B
q: アウトstd_logic_vector (63 down to 0); --Q
opSel: in std_logic := 'X' -- opSel
);
エンド・コンポーネント・FP_TEST_altera_fp_functions_160_xhvb5va;
宛先:
エンティティ FP_TESTは
ポート (
a: in std_logic_vector (63 down to 0) : = (その他 => '0');--Aa
areset: std_logic := '0' -- areset.reset
b: std_logic_vector (63 down to 0) : = (その他 => '0);--Bb
clk: std_logic := '0' で。 -- clk.clk
opsel : std_logic_vector (0 down to 0) : = (その他 => '0); -- opSel.opSel
q: アウトstd_logic_vector (63 downto 0) -- q.q
);
end entity FP_TEST;
FP_TESTのアーキテクチャー RTL は
コンポーネントのFP_TEST_altera_fp_functions_160_xhvb5vaは
ポート (
clk: std_logic := 'X' で; --Clk
areset: std_logic:= 'X'; --リセット
a: in std_logic_vector (63 down to 0) := (その他 => 'X');--A
b: std_logic_vector (63 down to 0) : = (その他 => 'X');--B
q: アウトstd_logic_vector (63 down to 0); --Q
opSel: std_logic_vector(0 downto 0) := (その他 => 'X') -- opSel
);
エンド・コンポーネント・FP_TEST_altera_fp_functions_160_xhvb5va;
これは、インテル® Quartus® Prime 開発ソフトウェアの今後のリリースで修正される予定です。