文章 ID: 000080821 内容类型: 故障排除 上次审核日期: 2016 年 12 月 21 日

(vcom-1133)在端口上找到的类型不匹配

环境

    英特尔® Quartus® Prime Pro Edition
    浮点功能英特尔® FPGA IP

All

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

由于英特尔® 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 软件的未来发行版中修复。

相关产品

本文适用于 1 产品

英特尔® Arria® 10 FPGA 和 SoC FPGA

1

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。