程序如下:
--bcdadd.vhd 1 digit bcd adder
library ieee;
--library ieee;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use work.components.all;
entity bcdadd is
port
(
a :in std_logic_vector(3 downto 0);--被加数
b :in std_logic_vector(3 downto 0);--加数
ciut std_logic;--进位输入
cout std_logic;--进位输出
sumut std_logic_vector(3 downto 0) --和
);
end bcdadd;
architecture behavior of bcdadd is
signal s:std_logic_vector(3 downto 0);--第一个 fadd4? 和
signal c4:std_logic;--第一个fadd4进位输出
signal a2:std_logic_vector(3 downto 0);
signal y:std_logic;--加 6 检测内部连线
signal zero:std_logic;--第 二 个fadd4的进位保持 '0'
signal nouse:std_logic;--没有使用到的悬空线
begin
u0:fadd port map(a,b,ci,c4,s);--第一个 fadd4
y<=c4 or(s(3) and s(2))or (s(3)and s(1));--判断是否进行修正调整
a2<='0' & y & y &'0';
co<=y;--bcd进位输出
zero<='0';--第 二 个 fadd4 的进位保持 '0'
u1:fadd port map (a2,s,zero,nouse,sum);--第二个 fadd4
end behavior;
编译之后提示:
"ERRORINE25:signal "zero"has multiple sources.
[em16]