(3)4位全加器 A、B分别为4位二进制,c为低位进位输入信号 lil faryieee> use ieee std_logic_1164.al add4 useieee. std_ logic_unsigned. all; b[3…s3 ntity addis port(a, b in std _ logic_vector(3 downto O) [3…0 gcy co 1: in std_logic; s: out std_logic_vector(3 downto O)) end add4: 4位全加器的电路符号 architecture one of add4 is signal temp: std_logic_vector(4 downto O); b cemp<=(0&)+b <=temp (3 downto O) co<-temp do
(3) 4位全加器 A、B分别为4位二进制,ci为低位进位输入信号 4位全加器的电路符号 add4 a[3…0] b[3…0] co s[3…0] ci library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity add4 is port(a,b:in std_logic_vector(3 downto 0); co: out std_logic; ci: in std_logic; s: out std_logic_vector(3 downto 0)); end add4; architecture one of add4 is signal temp: std_logic_vector(4 downto 0); begin temp<=(‘0’&a )+b+ci; s<=temp(3 downto 0); co<=temp(4); end one;
例:减法器 包括半减器、全减器和多位全减器 1)半减器 只考虑了减数和被减数,而没有考虑由低位来的借位 half sub 半加器的真值表 输入 输出 a dout 被减数A 减数B 差dout 借位cout 0 0 0 cout 0 0 0100 半加器的电路符号 0 无符号位二进制减法 0-0=0;1-0=1;1-1=0;0-1=1(从高位借位1) 借位规则:(a)如果从某一位借1后,则该位变为0; 〔b)如果借位的位本来是0,则要继续向更高一位借位,直到值为1 的位,原位上值为0的都转为1,而最后借位的位转为0
例:减法器 包括半减器、全减器和多位全减器 (1)半减器 只考虑了减数和被减数,而没有考虑由低位来的借位 输入 输出 被减数A 减数B 差dout 借位cout 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 半加器的真值表 半加器的电路符号 half_sub b a cout dout ➢无符号位二进制减法: 0-0=0; 1-0=1; 1-1=0; 0-1=1 (从高位借位1) 借位规则: (a)如果从某一位借1后,则该位变为0; (b)如果借位的位本来是0,则要继续向更高一位借位,直到值为1 的位,原位上值为0的都转为1,而最后借位的位转为0
例:计算1110-1101 新的次高位厂向次高位的借位 01 1110 -1001 0101 例:计算10000-101 1111 10000向高位借位后 101 1011 思考:求:10101-10010; 答:00011 求:10000-1111; 答:0001
例:计算1110 - 1101 1 1 1 0 - 1 0 0 1 新的次高位 向次高位的借位 0 1 0 1 例:计算10000-101 0 1 1 0 0 0 0 -1 0 1 1 1 1 1 向高位借位后 1 0 1 1 思考:求:10101-10010; 答:00011 求:10000-1111; 答:0001