VHDL进程内的端口映射

时间:2018-11-18 14:21:20

标签: vhdl fpga

我使用并发语句为四位全加器创建了一个位流。现在,我想扩展此硬件配置,以在两个7段显示器上显示结果。在段解码之前,我需要一个二进制到BCD转换器。双涉足算法似乎很适合这项工作。但是在编写此程序时遇到了一个问题。当我在添加3的进程中调用端口映射时,到4位fa的端口映射似乎给出了错误。这是我指的代码:

architecture Behavioral of BCD_conv is

    component four_bit_fa is

    Port ( a0 : in STD_LOGIC; 
           b0 : in STD_LOGIC;
           s0 : out STD_LOGIC;
           a1 : in STD_LOGIC; 
           b1 : in STD_LOGIC;
           s1 : out STD_LOGIC;
           a2 : in STD_LOGIC; 
           b2 : in STD_LOGIC;
           s2 : out STD_LOGIC;
           a3 : in STD_LOGIC; 
           b3 : in STD_LOGIC;
           s3 : out STD_LOGIC;
           cout : out STD_LOGIC;
           cin : in STD_LOGIC);

    end component;

    begin


    getSum : four_bit_fa port map(a0,b0,s0,a1,b1,s1,a2,b2,s2,a3,b3,s3,cout,cin);
    Convert: process (a0,b0,a1,b1,a2,b2,a3,b3,cin)

    begin

    for i in 0 to 5 loop

    if (d3 or (d2 and (d1 or d0))) = '1' then
    getSum : four_bit_fa port map(d0,'1',d0,d1,'1',d1,d2,'0',d2,d3,'0',d3,'0','0');
    end if;

    end process Convert;

    end Behavioral;

有人可以向我解释为什么这不起作用吗?

此外,我想将此算法与已经创建的完整加法器一起使用。可以使用其他方法吗?

0 个答案:

没有答案