我使用并发语句为四位全加器创建了一个位流。现在,我想扩展此硬件配置,以在两个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;
有人可以向我解释为什么这不起作用吗?
此外,我想将此算法与已经创建的完整加法器一起使用。可以使用其他方法吗?