VHDL测试台,配置单元

VHDL测试台,配置单元,vhdl,Vhdl,我一直在尝试使用带有配置单元的测试台。我有以下代码: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY AND_2 IS PORT ( a,b : IN std_logic; x : OUT std_logic ); END ENTITY AND_2; ARCHITECTURE EX_1 OF AND_2 IS BEGIN x <= a and b; END

我一直在尝试使用带有配置单元的测试台。我有以下代码:

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY AND_2 IS
PORT (
        a,b :   IN      std_logic;
        x       :   OUT std_logic
        );
END ENTITY AND_2;

ARCHITECTURE EX_1 OF AND_2 IS
BEGIN
x <= a and b;
END ARCHITECTURE EX_1;

ARCHITECTURE EX_2 OF AND_2 IS
SIGNAL ab   :   std_logic_vector(1 DOWNTO 0);
BEGIN
ab <= (a & b);
WITH ab SELECT
    x <= '1' WHEN "11",
          '0' WHEN OTHERS;
END ARCHITECTURE EX_2;

LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;

ENTITY TEST_AND_2 IS
END ENTITY TEST_AND_2;

ARCHITECTURE IO OF TEST_AND_2 IS
SIGNAL a, b, x  :   std_logic;
BEGIN
G1      :   ENTITY work.AND_2(EX_1) PORT MAP ( a => a, b => b, x => x);
a <= '0', '1' AFTER 100 NS;
b <= '0', '1' AFTER 200 NS;
END ARCHITECTURE IO;

CONFIGURATION TESTER1 OF TEST_AND_2 IS
FOR IO
    FOR G1 : AND_2
        USE ENTITY work.AND_2(EX_1);
    END FOR;
END FOR;
END CONFIGURATION TESTER1;
IEEE库;
使用IEEE.std_logic_1164.ALL;
实体和_2是
港口(
a、 b:标准逻辑;
x:输出标准逻辑
);
终端实体和_2;
架构EX_1 OF和_2是
开始
x);

a如果对实体使用直接实例化,则不能以这种方式使用配置。如果您有:

G1 : ENTITY work.AND_2(EX_1) PORT MAP ( a => a, b => b, x => x);
这是直接实例化,通常可以保存键入和重复的代码,但不允许通过配置指定体系结构。要使用配置,请在声明性区域(定义信号的位置)声明
和_2
的组件:

COMPONENT AND_2 IS
PORT (
    a,b :   IN      std_logic;
    x       :   OUT std_logic
    );
END COMPONENT;
然后实例化
和_2
,如下所示:

G1 : AND_2 PORT MAP ( a => a, b => b, x => x);

您的配置声明是正确的,您应该启动并运行这两个更改。

@danielj如果问题的答案解决了,通常要做的就是将其标记为已接受