【正确答案】4位二进制并行加法器的VHDL源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY add4b IS
PORT(
cin: IN STD_LOGIC; ——低位的进位信号
a, b: IN STD_LOGIC_VECTOR(3 DOWNTO 0); ——加数及被加数
S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); ——和
cout: OUT STD_LOGIC ——高位的进位信号
);
END;
ARCHITECTURE one OF add4b IS
SIGNAL crlt: STD_LOGIC_VECTOR(4 DOWNTO 0);
SIGNAL tmp1,tmp2,tmp3,tmp: INTEGER RANGE 0 TO 100;
BEGIN
tmp1<=CONV_INTEGER(a);
tmp2<=CONV_INTEGER(b);
tmp3<=1 when cin='1' else 0;
tmp<=tmp1+tmp2+tmp3;
crlt<=CONV_STD_LOGIC_VECTOR(tmp, 5);
s<=crlt(3 DOWNTO 0);
cout<=crlt(4);
END one;
【答案解析】