Vhdl 错误:[VRFC 10-3353]正式端口';i0';没有实际值或默认值

Vhdl 错误:[VRFC 10-3353]正式端口';i0';没有实际值或默认值,vhdl,vivado,Vhdl,Vivado,我正在用下面的测试台、代码和组件制作一个简单的2比特比较器 我运行模拟时不断出错 错误:[VRFC 10-3353]正式端口“i0”没有实际值或默认值 对我来说,代码和逻辑似乎很好。我认为唯一的问题是嵌套for循环,因为我还不习惯对它们进行ising 我正在使用vivado 2020.2 试验台 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity Comparator_2bit_tb is --

我正在用下面的测试台、代码和组件制作一个简单的2比特比较器

我运行模拟时不断出错 错误:[VRFC 10-3353]正式端口“i0”没有实际值或默认值

对我来说,代码和逻辑似乎很好。我认为唯一的问题是嵌套for循环,因为我还不习惯对它们进行ising

我正在使用vivado 2020.2

试验台

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity Comparator_2bit_tb is
--  Port ( );
end Comparator_2bit_tb;

architecture Behavioral of Comparator_2bit_tb is
--component instantiation
component Comparator_2bit 
    Port ( a : in STD_LOGIC_VECTOR (1 downto 0);
           b : in STD_LOGIC_VECTOR (1 downto 0);
           eqtot : out STD_LOGIC);
end component Comparator_2bit;


--signal declaration
signal a, b : std_logic_vector (1 downto 0);
signal eqtot : std_logic;

begin
--component instantiation
uut: Comparator_2bit
port map (a => a, b => b, eqtot => eqtot);

--Test vector generation
test: process
begin
    for i in 0 to 3 loop
        for u in 0 to 3 loop
        a <= STD_LOGIC_VECTOR(to_unsigned(i, 2));
        b <= STD_LOGIC_VECTOR(to_unsigned(u, 2));
        wait for 10ns;
        end loop;
    end loop;
    wait;
end process test;
end Behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
使用IEEE.NUMERIC_STD.ALL;
实体比较器2bit tb为
--港口();
末端比较器2bit tb;
比较器2比特tb的行为体系结构是
--组件实例化
元件比较器2bit
端口(a:标准逻辑向量(1到0);
b:标准逻辑向量(1到0);
eqtot:输出标准逻辑);
端部元件比较器2bit;
--信号声明
信号a、b:标准逻辑向量(1到0);
信号eqtot:std_逻辑;
开始
--组件实例化
uut:比较器2bit
端口映射(a=>a,b=>b,eqtot=>eqtot);
--测试向量生成
测试:过程
开始
对于0到3循环中的i
对于0到3循环中的u
a i1,z=>eq0);
位_1:比较器_组件
端口映射(a(1)=>i0,b(1)=>i1,z=>eq1);

eqtot错误是因为端口映射方式错误。对于端口映射,您需要映射:

inst : some_component
port map (
  component_port => local_signal_or_port

您已经切换了这些值。

成功了,谢谢您的帮助:)使用命名关联的关联列表将正式指示符关联的元素与实际指示符formal=>actual关联。这里的正式指示符是端口名。请参阅IEEE Std 1076-2008 6.5.7关联列表、6.5.7.3端口映射方面(定义正式和实际)、6.5.6.3端口条款(中的模式形式必须具有实际值或默认值)。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Comparator_component is
    Port ( i0 : in STD_LOGIC;
           i1 : in STD_LOGIC;
           z : out STD_LOGIC);
end Comparator_component;

architecture Behavioral of Comparator_component is

begin 
z <= (i0 XNOR i1); -- A eq B  
end Behavioral;
inst : some_component
port map (
  component_port => local_signal_or_port