超前进位加法器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8位超前进位加法器设计说明书

超前进位加法器就是使各位的进位直接由加数和被加数来决定,而不需要依赖低位进位。即有如下逻辑表达式:

1)(-++=i i i i i i C B A B A C

当第i 位被加数A i 和加数B i 均为1时,有1=i i B A ,不论低位运算结果如何本位必然有进位输出(1=i C ),所以定义i i i B A G =为进位产生函数。当A i 和B i 中只有一个为1时,有0=i i B A ,1=+i i B A ,使得1-=i i C C ,所以定义i i i B A P +=为进位传递函数。将P i 和G i 代入全加器的“和”及“进位”表达式有:

1-⊕⊕=i i i i C B A Y

从而构成超前进位加法器。

VHDL 示例程序如下:(本程序在MAXPLUSII V9.6上编译通过)

--*****8位超前进位加法器*****

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE. STD_LOGIC _ARITH.ALL;

USE IEEE. STD_LOGIC _UNSIGNED.ALL;

ENTITY ADDER8BIT IS

PORT(A, B: IN UNSIGNED(7 downto 0);

CI,clk: IN STD_LOGIC;

Y_OUT: OUT STD_LOGIC_VECTOR(7 downto 0);

CO_OUT: OUT STD_LOGIC);

END ADDER8BIT;

ARCHITECTURE doing OF ADDER8BIT IS

SIGNAL CO,Y: STD_LOGIC_VECTOR(7 downto 0);

BEGIN

Y(0)<=A(0) xor B(0) xor CI;

CO(0)<=(A(0) and B(0)) or (B(0) and CI) or (A(0) and CI);

GEN:

for i in 1 to 7 GENERATE

Y(i)<=A(i) xor B(i) xor CO(i-1); --1-⊕⊕=i i i i C B A Y

CO(i)<=(CO(i-1) and A(i)) or (CO(i-1) and B(i)) or (A(i) and B(i)); -- 1)(-++=i i i i i i C B A B A C

end GENERATE;

process(clk)

begin

if clk'event and clk='1' then

Y_OUT<=Y(7) & Y(6) & Y(5) & Y(4) & Y(3) & Y(2) & Y(1) & Y(0);

CO_OUT<=CO(7);

end if;

end process;

END doing;

附:仿真时序波形

相关文档
最新文档