怎样设计一位全加器?
用74LS153设计一个一位全加器,方法如下:
1.首先根据全加器真值表,写出和S、高位进位C1的逻辑函数:S=A⊕B⊕C0;
2.A1、A0作为两个输入变量即加数和被加数A、B,D0~D3作为第三个输入变量即低位进位C0,
1Y为全加器的和S,2Y为全加器的高位进位C1,于是就可以令数据选择器的输入为:
A1=A,A0=B,1DO=1D3=C0,1D1=1D2=C0反,2D0=0,2D3=1,2D1=2D2=C0,1Q=S1,
2Q=C1
3.根据对应的管脚连接电路。
图:一位全加器原理图
扩展资料:
一位全加器的逻辑函数:S=A⊕B⊕Cin,Co=ACin+BCin+AB;
其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出。
如果要实现多位加法可以进行级联,就是串起来使用,比如:32位+32位,就需要32个全加器,这
种级联就是串行结构速度慢;如果要并行快速相加可以用超前进位加法;超前进位加法前查阅相关
资料;
如果将全加器的输入置换成A和B的组合函数Xi和Y(S0…S3控制),然后再将X,Y和进位数通过全加
器进行全加,就是ALU的逻辑结构结构,即 :
X=f(A,B);
Y=f(A,B)。
不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。
一位全加器(FA)的逻辑表达式为:S=A⊕B⊕Cin,Co=AB+BCin+ACin,其中A,B为要相加的数,Cin为进位输入,S为和,Co是进位输出。
如果要实现多位加法可以进行级联,就是串起来使用,比如32位+32位,就需要32个全加器;这种级联就是串行结构速度慢,如果要并行快速相加可以用超前进位加法,
如果将全加器的输入置换成A和B的组合函数Xi和Y(S0…S3控制),然后再将X,Y和进位数通过全加器进行全加,就是ALU的逻辑结构结构。即 X=f(A,B),Y=f(A,B),不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。
扩展资料:
全加器使用注意事项:
1、从半加器的真值表、电路图可以看出,半加器只能对单个二进制数进行加法操作,只有两个输入,无法接受低位的进位。
2、假设超前进位加法器中的每个门时延是t,对于4位加法,最多经过4t的时延,而且,即使增加更多的位数,其时延也是4t。
3、对比串行进位加法器和超前进位加法器,前者线路简单,时延与参与计算的二进制串长度成正比,而后者则是线路复杂,时延是固定值。通常对于32的二进制串,可以对其进行分组,每8位一组,组内加法用超前进位加法器,组间进位则用串行进位。采用这种折中方法,既保证了效率,又降低了内部线路复杂度
参考资料来源:百度百科-全加器
参考资料来源:百度百科-真值表
无法用与或非门设计一位全加器,因为一位全加器是用门电路实现两个二进制数相加并求出和的组合线路。它只能利用门电路实现,而无法用与或非门实现。
扩展资料:
一位全加器的作用特点:
一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。
门电路的特点:
从逻辑关系看,门电路的输入端或输出端只有两种状态,无信号以“0”表示,有信号以“1”表示。也可以这样规定:低电平为“0”,高电平为“1”,称为正逻辑。
反之,如果规定高电平为“0”,低电平为“1”称为负逻辑,然而,高与低是相对的,所以在实际电路中要先说明采用什么逻辑,才有实际意义。
门电路可以有一个或多个输入端,但只有一个输出端。门电路的各输入端所加的脉冲信号只有满足一定的条件时,“门”才打开,即才有脉冲信号输出。
从逻辑学上讲,输入端满足一定的条件是“原因”,有信号输出是“结果”,门电路的作用是实现某种因果关系──逻辑关系。
门电路可用分立元件组成,也可做成集成电路,但目前实际应用的都是集成电路。
参考资料来源:百度百科-全加器
具体如下图:
其中,一位全加器(FA)的逻辑表达式为:
S=A⊕B⊕Cin
Co=(A⊕B)Cin+AB
其中A、B为要相加的数,Cin为进位输入;S为和,Co是进位输出。
如果要实现多位加法可以进行级联,就是串起来使用;比如32位+32位,就需要32个全加器;这种级联就是串行结构速度慢,如果要并行快速相加可以用超前进位加法。
扩展资料:
全加器是组合逻辑电路中最常见也最实用的一种,考虑低位进位的加法运算就是全加运算,实现全加运算的电路称为全加器。而其功能设计可以根据组合逻辑电路的设计方法来完成。
通过逻辑门、74LS138译码器、74LS153D数据选择器来实现一位全加器的电路设计,并且实现扩展的两位全加器电路。并且Multisim是一个专门用于电路设计与仿真的工具软件。它以界面形象直观、操作方便、分析功能强大、易学易用等突出优点,迅速被推广应用。
参考资料:百度百科――一位全加器
下面是混合设计方式的1位全加器实例。
module
FourBitFA
(FA,
FB,
FCin,
FSum,
FCout
)
parameter
SIZE
=
4
input
[SIZE:1]
FA,
FB
output
[SIZE:1]
FSum
input
FCin
input
FCout
wire
[
1:
SIZE-1]
FTemp
FA_Str
FA1(
.A
(FA[1]),
.B(FB[1]),
.Cin(FCin),
.Sum(FSum[1]),
.Cout(FTemp[2])),
FA2(
.A
(FA[2]),
.B(FB[2]),
.Cin(FTemp[1]),
.Sum(FSum[2]),
.Cout(FTemp[2])),
FA3(FA[3],
FB[3],
FTemp[2],
FSum[3],
FTemp[3],
FA4(FA[4],
FB[4],
FTemp[3],
FSum[4],
FCout)
endmodule
library ieee
use ieee.std_logic_1164.all
use ieee.std_logic_unsigned.all
use ieee.std_logic_arith.all
entity bit1adder is
port(
a,b,ci:in std_logic
s,co:out std_logic
)
end bit1adder
architecture func of bit1adder is
signal:x,y:std_logic
begin
x<=a xor b
y<=x and ci
s<=x xor ci
co<=y or (a and b)
end func