由于英特尔® Quartus® Prime 专业版软件有一个问题,如果您生成选定的 VHDL 的 IP megacore,在编译模拟时可能会遇到以下错误:
# ** 错误:..vhd:(vcom-1133)端口“类型不匹配。
# 在组件“”中,端口类型为“ieee.std_logic_1164.STD_LOGIC”。
# 在实体中,“”,端口类型为“ieee.std_logic_1164.STD_LOGIC_VECTOR”
要解决此问题,您必须编辑生成的 RTL,并匹配顶部实例和测试台中的数据类型。
例如,对于名为“FP_TEST”的模块,您将执行以下操作:
请在 _tb.vhd 中进行以下更改
从:
FP_TEST_tb 的架构 rtl
组件FP_TEST为
端口(
a: in std_logic_vector(63 向下至 0): (其他 = > 'X');--
areset:在std_logic := “X”; --重 置
b: in std_logic_vector(63 向下至 0): (其他 = > 'X');--B
clk: in std_logic := “X”; --时钟
opSel:在 std_logic中 := 'X'; -- opSel
问:out std_logic_vector(63 向下至 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.重置
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 向下至 0): (其他 = > 'X');--
areset:在std_logic := “X”; --重 置
b: in std_logic_vector(63 向下至 0): (其他 = > 'X');--B
clk: in std_logic := “X”; --时钟
opSel: in std_logic_vector(0 向下 0) := (其他 = > 'X'); -- opSel
问:out std_logic_vector(63 向下至 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.重置
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 向下至 0): (其他 => '0');-- a.a
areset:在std_logic := “0”; -- areset.重置
b: in std_logic_vector(63 向下至 0): (其他 = > '0');-- b.b
clk: in std_logic := '0'; -- clk.clk
opSel:在std_logic:= “0”; -- opSel.opSel
问:out std_logic_vector(63 向下至 0) - q.q
);
最终实体FP_TEST;
FP_TEST的架构 rtl 是
组件FP_TEST_altera_fp_functions_160_xhvb5va为
端口(
clk: in std_logic := “X”; --时钟
areset:在std_logic := “X”; --重 置
a: in std_logic_vector(63 向下至 0): (其他 = > 'X');--
b: in std_logic_vector(63 向下至 0): (其他 = > 'X');--B
问:out std_logic_vector(63 个下达 0); --问
opSel:在 std_logic:= 'X' -- opSel
);
最终组件FP_TEST_altera_fp_functions_160_xhvb5va;
自:
实体FP_TEST为
端口(
a: in std_logic_vector(63 向下至 0): (其他 => '0');-- a.a
areset:在std_logic := “0”; -- areset.重置
b: in std_logic_vector(63 向下至 0): (其他 = > '0');-- b.b
clk: in std_logic := '0'; -- clk.clk
opSel: in std_logic_vector(0 向下 0) := (其他 => '0'); -- opSel.opSel
问:out std_logic_vector(63 向下至 0) - q.q
);
最终实体FP_TEST;
FP_TEST的架构 rtl 是
组件FP_TEST_altera_fp_functions_160_xhvb5va为
端口(
clk: in std_logic := “X”; --时钟
areset:在std_logic := “X”; --重 置
a: in std_logic_vector(63 向下至 0): (其他 = > 'X');--
b: in std_logic_vector(63 向下至 0): (其他 = > 'X');--B
问:out std_logic_vector(63 个下达 0); --问
opSel: in std_logic_vector(0 向下 0) :=(其他 =>'X')-- opSel
);
最终组件FP_TEST_altera_fp_functions_160_xhvb5va;
计划于英特尔® Quartus® Prime 软件的未来发行版中修复。