【组成原理】计算机硬件设计——ALU
2bit 复用器
A B C D 为该元件的4个输入口,假设 输入口都是 4位,故 数据输入范围 是 0~ 16.
Sel是2位选择开关,可以标识 0,1,2,3,这样可以实现控制4个输入的选择。
元件外观:
二、加法器:
半加器:
A B为 一位输入,S 为结果输出 Cout是进位输出
二进制一位相加的逻辑实际上就是 异或的逻辑。
两数相同时,结果为0,两数相异时,结果为1,两数同为1时,产生进位。
所以,半加器的S结果,使用异或门,完成加法功能,使用与门,当A 和B 同时为1,产生进位。
1位全加器:
实现二进制中一位的加法操作,包括借位和进位
A,B 是要实现相加的两个数,他们的计算结果是 S,他们的进位结果是 第一个加法器的Cout,
在实际计算时,两数相加前,可能会有上一位的进位参与,如此电路中的Cin.
本质上 是(Cin ,A ,B )三个数进行相加运算,有以下几种情况 :
1,1,1
1,1,0
1,0,1
0,0,1
0,1,0
0,0,0
可以发现,没有出现重复进位的情况,累加的过程中,两种进位产生的情况(Cin ,S(A+B)) =(1,1),此时进位由第二个加法器产生。
(Cin ,S(A+B))=(1,0),若A,B都为1,则进位由第一个加法器产生,
故两种进位之间是 或 的逻辑关系
图例:情况1 (Cin ,S(A+B)) =(1,1)
图例:情况2 Cin ,S(A+B)) =(1,0)
封装组件外观:
4位加法器
进位1 + 10+3 =14
溢出进位:
封装组件外观:
三、减法器
半减器
一位减法器
分析:
一位减法中,要区分 减数 和被减数,即有顺序性。其次,要考虑 【两种借位的情况】
1、当前计算位 是否不够减,向高位借位,在半减器中,表现为C
2、当前计算位,是否被上一位借位,表现为 一位减法器电路中的 Cin ,注意,它应该是一个 减数
真值表如下:
可以举例子用 (1,0,0 )— (0,1,1)测试上述电路,在连续发生两位借位的情况
在第二位计算时,低位向此位 借位,所以Cin =1, 本位被减数A为0,所以又向高位发起借位,所以C =1, 借位之后,A =1,B =1,所以结果 S =0.
即 输入 A=0,B =1,Cin =1 ,输出 S =0, C =1
验证如下:
4bit减法器
锁存器和触发器
SR锁存器
结构:双与非门 或者 双或非门
锁存器 的输出,只有一个是高电平的时候,才有意义。
当前状态,复位,和置为 都是 0,输出结果 都是高电平,这种情况下电路无意义
当置位开关 S 高电平时 :
此时 数据 被锁存在了 Q'中,按下复位R 开关,输出不会发生变化
同理:当置位开关先被按下,数据被锁存到Q中,按下S,电路输出不会改变
真值表:
总结 :Q,Q 皆为高电平时,电路无效,此时 S 和 R 都是低电平。
初始状态下,S 和 Q 应该都要上电,Q' Q 必然有一个是高电平的
En开关锁存器
En 开关打开,开始工作,初始状态下 S 和R 都是高电平。
带EN开关的 D锁存器
这个电路表明了锁存器的使用逻辑,置位 S 和复位 R 两者的使用 是互斥的(这里用了D 开关和一个非门,实现互斥),右边的基本SR锁存电路可以看到 S 和R 都是高电平,即 初始状态。
,其特性为:当en为高电平,Q和D的输入 保持一致;当en为低电平,Q保持之前状态不变,从而起到存储作用。
我们来看看 它的工作效果:
初始状态:
当Input 有数据到来时:
按钮被按下:
即使Input 电平消失,数据仍然存在。此时 在Input低电平的状态时,再次按下button,数据被擦除
问题:当en为1时,D的输入直接影响Q的输出,为了提高触发器的可靠性,增强抗 干扰能力,希望触发器的次态仅仅取决于en的下降沿(或上升沿)到来时的输入信号状态。D 触发器可以解决以上问题。
D锁存器尽管可以起到保存数据的作用,但是当en信号为1时,D输入和Q输出相当 于是联通的,此时如果D信号有波动,Q会跟随波动。我们希望能得到更稳定的输出Q, 不希望en高电平时Q随D波动,而是希望Q只在en信号由0变成1的一瞬间随D输入变 化,其他时间都保持不变。看下面的电路图
图中,有两个D锁存器,Q的值,不会受到 En开关的开启或关闭影响
En关闭时,D =1,Q =0
En关闭时 D=0,Q =0
En开启时,D =0 Q=0
En开启时 D=1,Q =0
只有在En处于上升沿信号触发时,2号锁存器才放行,把D的数据存入 Q,分析如下:
我们把注意力集中在这一区域:
初始状态
D=1
当En 保持开启状态:
结论
由于En 无论 为1还是0,它始终保持2个锁存 一个导通,一个拦截。En =0,1锁存导通,En =1,2锁存导通,所以,当数据在第一个锁存器中被导通时,由于En =0,在第二个锁存器中必然被拦截,此时,当En =1的一瞬间,2号锁存器导通,数据放行,进入Q,此时 1号锁存器拦截后续数据,达到了将数据锁存的目的。这就是上升沿锁存器的工作原理。