当前位置: 首页 > news >正文

【组成原理】计算机硬件设计——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号锁存器拦截后续数据,达到了将数据锁存的目的。这就是上升沿锁存器的工作原理。


http://www.mrgr.cn/news/78606.html

相关文章:

  • 独家|京东调整职级序列体系
  • 通过指令导入/导出vscode扩展插件
  • Hot100 - 搜索二维矩阵II
  • 分布式协同 - 分布式系统的特性与互斥问题
  • 【git】commit之后,想撤销commit
  • MongoDB的SQL注入测试方法
  • Maven 配置
  • yolov8的深度学习环境安装(cuda12.4、ubuntu22.04)
  • Spring Boot使用JDK 21虚拟线程
  • 在shardingsphere执行存储过程
  • 机器学习实战:泰坦尼克号乘客生存率预测(数据处理+特征工程+建模预测)
  • vulnhub靶场之hackableⅡ
  • 【C语言】字符串左旋的三种解题方法详细分析
  • Jmeter进阶篇(29)AI+性能测试领域场景落地
  • Linux系统 进程
  • 三十二:网络爬虫的工作原理与应对方式
  • 记录学习《手动学习深度学习》这本书的笔记(一)
  • (Python)前缀和
  • OPTEE v4.4.0 FVP环境搭建(支持hafnium)
  • 【北京迅为】iTOP-4412全能版使用手册-第二十章 搭建和测试NFS服务器
  • Spring源码学习
  • Python字典的用法(定义、增加、删除、修改、查询、遍历)
  • Spring中每次访问数据库都要创建SqlSession吗?
  • LearnOpenGL 学习(入门--三角形,着色器,纹理)
  • redis中的哨兵
  • ISO26262-基于TC397的MPU内存保护