数字电子技术基础--供复习和嵌入式学习
数字电路所处理的各种数字信号是以数码形式给出的数:表示数量的大小码:表示不同的事物或者事物的不同状态**数制:**在用数码表示数量大小时,常用进位计数制的方法组成多位数码**码制:**在用数码表示不同事物时,数码是不同事物的代号,简称为代码。编制代码所需要遵循的规则,称为码制。每个人都可以根据自己的需要,制定编码规则,编制代码。考虑信息交换的需要,必须制定一些共同使用的通用代码。前面我们知道,数码
写在前面的话:大家时间充裕点可以去支持一下王文俊老师的课,抖音和B站都有,因为我模电看他课觉得很好,所以数电也看他的,后面写完会贴链接
0. 绪论
我们先区分模拟量和数字量
发展历史就不讲了
1. 数制和码制
1.1 数制和码制的概述
数码:
数字电路所处理的各种数字信号是以数码形式给出的
数:表示数量的大小
码:表示不同的事物或者事物的不同状态
**数制:**在用数码表示数量大小时,常用进位计数制的方法组成多位数码
**码制:**在用数码表示不同事物时,数码是不同事物的代号,简称为代码。编制代码所需要遵循的规则,称为码制。每个人都可以根据自己的需要,制定编码规则,编制代码。考虑信息交换的需要,必须制定一些共同使用的通用代码。
1.2 几种常用的数制
就是我们常说的,2,8,10,16进制
1.3 不同数制间的转换
任意进制转十进制:
其实就是把起每位展开求出,最后再求和
十进制转换为其它进制:
下面看一个例子:
先算整数部分
再算小数部分
二进制和八进制互相转换:
二进制和十六进制相互转换:
1.4 二进制的算术运算
下面是我们对于二进制的加减乘除的运算,乘法的本质是加法和移位,除法的本质是减法和移位

我们如果能把减法转化为加法,那么最后加减乘除只需要加法和移位就可以完成表示
我们先看减法计算的流程,需要比较大小,再计算绝对值
原码,补码,反码:
我们先看原码:
其实就是直接表示。有符号数有一位符号位(最高位)
补码:
我们先看容易接受的进制的补码
我们发现,我们在做加法运算时,发生进位后,该位能变成我们想要的值,所以是用加法的进位来进行减法的,下面来看二进制

现在我们需要知道怎么计算补码
注意:我们使用补码就是为了简化运算,正数的补码就是原码,因为其本来就是加法运算,而对于负数,其是减法运算,我们需要找到其补码,改为加法运算,但是直接计算补码还是需要使用减法,所以我们引出反码,帮助计算
反码:
求反码其实就是0变为1,1变为0
通过反码和补码之间的关系,就可以求出补码
小结:
我们通过补码进行计算而用加法代替了减法,最后把补码还原回去就行
1.5 几种常用的编码
二进制转十进制代码:
4位的二进制可以表示16个数,但是因为十进制,我们只用10个表示 0 - 9,其余的不用,而其有不同的编码规则
恒权码:
和我们之前二进制转十进制一样,每一位有其权重,下面以2421举例
余3码和余3循环码:
顾名思义,就是直接把二进制转换为十进制后的值,比真实的值大3,而余3循环码,就是相邻两个代码之间仅有一位的状态发生变化
二进制转十六进制:
二进制转十六进制,我们使用的是格雷码,格雷码每一位的状态都按一定顺序循环,因此也被称为循环码。
格雷码相邻两个代码之间只有一位发生变化,在代码转换过程中不会出现过渡“噪声”。
我们看一下是怎么避免噪声的
二进制码:从0101到0110,过程中变化了两位,所以经过了两次变化,而且我们还不知道起先后顺序
格雷码:从0101到0100,只变化了一次
ASCII码:
具体可以自己去查表
2.逻辑代数基础
2.1 概述
前面我们知道,数码可表示不同事物、或事物的不同状态。
逻辑: 不同事物之间的因果关系
二值逻辑: 每个事物都只有两种不同的逻辑状态
用字母表示不同的事物,字母的不同取值表示事物的不同状态,该字母即为逻辑变量。
逻辑运算: 逻辑变量以及常量之间的逻辑状态的推理运算
逻辑代数: 逻辑运算的数学方法(布尔代数)
我们先看逻辑代数的三种运算:
与:AND
或:OR
非:NOT
下面看这三种运算的图形符号
而由这三种运算就能构成很多复杂的运算,如下:
与非,或非:
与或非:
异或,同或:
2.2 逻辑代数的基本公式
我们使用集合去帮助理解
下面是常用公式:(数学里面应该讲过)


2.3 逻辑代数的常用公式




2.4 逻辑代数的基本定理
代入定理(整体替换法):
在任何一个包含A的逻辑等式中,若以另外一个逻辑式代入式中所有A的位置,则等式依然成立。
反演定理:
下面举一个例子

对偶定理:
相对于反演定理,少变化了单变量这一步骤
2.5 逻辑函数及其描述方法
逻辑函数: 若以逻辑变量为输入,运算结果为输出,则输入变量值确定以后,输出的取值也随之而定。输入与输出之间确定的函数关系。

逻辑真值表:
将输入变量的所有取值下对应的输出值找出来,列成表格,即为真值表。
逻辑函数式和逻辑图:
逻辑函数式:将输入与输出之间的逻辑关系用与、或、非的运算式表示就得到逻辑式。
逻辑图:用逻辑图形符号表示逻辑运算关系,与逻辑电路的实现相对应。
波形图:
我们知道这些描述方法之后,还需要知道怎么在这些描述方式中互相转换
真值表->逻辑式
下面是一个例子
逻辑式->真值表
其实就是依次取值代入计算
逻辑式->逻辑图
逻辑图->逻辑式
波形图->真值表
2.6 逻辑函数的两种标准形式
2.6.1 基本介绍
我们先要知道什么是最小项和最大项
最小项 :变量分割之后的最小部分
最大项 :去除最小项之后的剩余部分
我们接着看两变量和三变量的最小项和最大项

我们是以最小项为准,原=1,反=0,进行编号,而最小项和最大项之间可以通过反演律进行互换
下面我们看最小项和最大项的性质:

2.6.2 最小项之和形式

2.6.3 最大项之积形式

2.7 逻辑函数的化简方法
最简与或形式:
- 乘积项的项数最少
- 每个乘积项的因子最少

2.7.1 公式法化简

其实公式很简单,主要是应用,后面举两个例子




2.7.2 卡诺图化简法
我们先了解什么是最小项相邻原则
我们使用卡诺图来表示最小项,下面是其对应关系
基于此,我们画出两个变量最小项的卡诺图
再画出三个变量最小项的卡诺图,注意保持横向的相邻之间只有一位不一样
我们再进行扩展,看四变量最小项的卡诺图

注意左右相邻和上线相邻和四角相邻
下面是用卡诺图表示逻辑函数的一个例子
下面我们使用卡诺图化简法来完成对其的化简
意思是可以把相邻的最小项合并,消去因子,不同情景(几个相邻的格子)下的消去不一样,特别是要注意上下,左右,和四角相邻


上面分别是两个,四个,八个相邻,的最小项的卡诺图化简方法
我们就是先把表达式化成最小项之和的形式,再使用卡诺图进行合并
2.8 具体无关系的逻辑函数及其化简
我们先看无关项的概念:
而对于无关项,我们可以认为其为1,也可以认为其为0,而是否把其合并到逻辑函数中,我们需要看怎么样使我们卡诺图的相邻的矩形圈最大,数目最小。下面举一个例子:
当然对于多输出的化简,我们也需要满足最好有相同的公共项,这样在最后的电路当中,就可以只使用一个共同的项完成多个不同的输出
2.9 逻辑函数形式的变换
下面看常见的逻辑函数
与或->与非-与非
与或->与或非:
与或->或与:
与或->或非-或非:
小结:
3. 门电路
3.1 概述
定义:用来实现基本逻辑运算和复合逻辑运算的单元电路称为门电路。
门电路中用的高、低电平表示不同的逻辑状态(0或1)。
对于正逻辑,认为1表示高电平,0表示低电平,我们一般使用正逻辑,负逻辑表示相反
3.1.1 基本开关电路
我们使用基本开关电路来实现高,低电平的输出
单开关电路:
互补开关电路:
本章研究,我们需要通过元器件来构成电路
下面是我们需要研究电路的主要方面
3.2 半导体二极管门电路
3.2.1 基本概念介绍
这部分在模电里面会细致的讲解,我们先看半导体
半导体: 半导体指常温下导电性能介于导体与绝缘体之间的材料
本征半导体:纯净的具有晶体结构的半导体。如:硅Si,锗Ge
杂质半导体:在本征半导体中掺入某些微量元素作为杂质。
我们看PN结的形成,和其为什么具有单向导通性

下面看PN结的伏安特性曲线
我们利用PN结,就可以制作出二极管
3.2.3 二极管单开关电路
二极管可以等效为下面三种开关,根据具体的情况进行不同的等效

在动态时,二极管也和理想开关有区别
在状态转换时,PN结可近似看做一个只能正向充电的电容
知道二极管的特性之后,我们就可以研究二极管单开关电路了,直接进行替换
下面我们使用二极管单开关电路实现高低电平的输出
3.2.3 二极管门电路
二极管与门电路:
我们下面来看是否能实现与运算
二极管或门电路:
下面我们看该电路是否能实现或运算
但是二极管门电路存在很多缺点,因为二极管有压降,会导致高低信号的偏移,如果接很多个二极管门电路,偏移会累积很多,还有就是输出的负载也会影响输出的高低电平

3.3 CMOS门电路
3.3.1 基本概念介绍
我们在模电也有细致的讲解过
MOS管是金属-氧化物-半导体场效应晶体管(MOSFET)的简称。

通常将衬底B与源极S相连,防止电流从衬底流向源极和导电沟道。(这是N沟道)
而我们通过比较和MOS管开启电压之间的关系,就能实现开关
我们来看MOS管的共源接法(N沟道)
现在研究其特性和参数
输入特性:
输出特性:



了解了MOS管的工作区,下面就根据开关需求进行选择
我们之前提到了N沟道和P沟道,现在来看P沟道,先看导通沟道和开启条件
再看P沟道的共源接法
最后看输出特性曲线
3.3.2 MOS管单开关电路

下面我们看MOS管单开关电路怎么实现输出高低电平

最后看一下P和N沟道单开关电路的对比
3.3.3 CMOS反相器(非门)
(1) 结构和工作原理
注意一个是P型,一个是N型
我们来讨论工作条件,因为一个是P,一个是N,所以其形成沟道的条件不一样,我们需要分析


下面是在不同的输入电压下的电路情况
两个MOS管的漏极连接输出,栅极连接输入。因为两个MOS管的沟道不同,所以当输入为高,N型沟道打通,连接其源极,连接地,输出低电平,当输入为低,P型沟道打通,连接其源极,连接VDD,输出高电平
输入与输出之间为逻辑非的关系,因此称为非门或反相器。
T1和T2的状态互补,互补对称式金属-氧化物-半导体电路(CMOS电路)
(2) CMOS反相器的静态特性
传输特性:





输入端的噪声容限:
我们在正常的输入和输出中,判断信号是高还是低,都是划定一个范围,而在串联的情况下,前一个的输出信号和后一个的输入信号的信号波动范围之间的差就是容限


把噪声容限画入图中,可知提高电源电压VDD,可以提高CMOS电路的直流噪声容限。
输入特性:
MOS管的栅极和衬底之间的绝缘介质极薄,极易被击穿,所以必须采取保护措施。我们就添加了输入保护电路,而分析输入端的输入特性,其实就是分析那部分输入保护电路
74HC输入保护电路:
下面分情况讨论:
正常情况下,保护电路不起作用
当输入电压过高时,D1管导通
当输入电压过低时,D2管导通
4000型保护电路:
两个电路在本质上都是让电压超出正常范围时,我们把其转换为较大的电流来进行钳制
输入端只要接电源就是高电平,接地就是低电平

输出端的输出特性:
低电平输出:
高电平输出:

(3) CMOS反相器的动态特性
我们主要研究以下四点:传输延时时间,交流噪声容限,扇出系数,动态功耗
传输延时时间:
由于负载电容和寄生电容的存在,电容充放电需要时间,当输入信号发生跳变时,输出电压的变化必然滞后于输入电压的变化。
下面是评判延迟时间的一些参数介绍
而主要的延时是来自负载的电容,下面也提供了减小传输延时的方法,减小负载电容CL,和减小MOS管导通电阻
交流噪声容限:
动态功耗:
我们先看整个系统的功耗图
动态功耗来自于负载电容的充放电功耗和MOS管瞬时导通功耗
MOS管瞬时导通功耗Pr:
为了便于计算,我们把MOS管等效为一个功耗电容
负载电容充放电功耗Pc:
先分析
进行计算
一般情况下静态功耗极小,相比动态功耗可以忽略不计。
扇出系数:
以数字表示一个电路输出端能够驱动同类型负载电路输入端的数目
我们先看静态情况下
静态:
动态:
Vi由高到低
Vi由低到高
最后扇出系数 = CL / 输入电容
(4)CMOS其它逻辑功能的门电路
前面我们知道CMOS构成的反相器。两个MOS管的漏极连接输出,栅极连接输入。因为两个MOS管的沟道不同,所以当输入为高,N型沟道打通,连接其源极,连接地,输出低电平,当输入为低,P型沟道打通,连接其源极,连接VDD,输出高电平,所以输出和输入相反,是非门,而我们使用CMOS还能构成其它门电路
与非门:
我们知道与非, AB->(AB)`
下面分析该电路是否能实现与非

但是其还是存在一定问题,当不同的输出时,输出电阻不一样,且输入端会影响到输出端

或非门:
A+B -> (A+B)`
下面分析该电路是否能实现或非

我们发现上面的与非门,和或非门,都有一定问题,所以使用缓冲区来进行改进
在门电路的每个输入端、输出端各增设一级反相器,称为缓冲器。
因为增加了反相器,与非门是由或非门+缓冲区构成的,或非门同理也是有与非门和缓冲区构成的

对于复杂的电路,我们按模块划分,逐级推理,下面是一个例子
3.3.4 漏极开漏输出门电路(OD门)
将输出级电路结构改为漏极开路输出的MOS管,构成OD门。
我们看OD门的基本电路结构
OD门实现的是与非功能,下面进行分析,我们把内部逻辑看为一个整体,只关心其怎么输出
下面是OD门的一些实际应用场景:
OD门实现输出电平变换
OD门实现线与:
将几个OD门的输出端直接相连,即可实现OD门之间的与运算。
OD门避免电流过大情况:
下图左是我们原来的电路,可见电源VDD直接接入在门电路上,可能会产生大电流,而下图右边我们使用了OD门,电源是接在外面,而且可以通过电阻RL来进行调节
那我们现在来确定电阻RL的取值,怎样使电路正常工作,也可以避免大电流
如果上拉电阻过大,会导致压降比较大,这样我们的输出比较小,如果在多级输出中,这样输出信号可能会低于下个电路输入端输入信号的min要求。如果电阻过小,就会照成上面所说的电流过大的现象
我们先计算最大上拉电阻RL:
最大上拉电阻RL:
注意图中计算电流是通过输出端的个数n,和输入端的个数m来计算的
最小上拉电阻RL:
我们在极端情况下,只有一个门电路被导通,右侧m个输入端和电源VVD提供的电流一起通过门电路
3.3.5 CMOS传输门
(1) 工作原理
利用P沟道MOS管和N沟道MOS管的互补性,接成CMOS传输门。
CMOS传输门是构成各种逻辑电路的一种基本单元电路。
下面研究其工作原理,我们先把电路拆分,两个模块单独分析

根据MOS管的导通条件进行判断

下面我们看在符号图中的标识
口诀:有圈输入0,无圈输入1,就是正常,反之截止
(2) 应用构成其它电路
我们可以使用传输门和反相器构成异或门
我们先判断传输门的工作状态,就可以判断输出的情况
传输门+反相器构造双向模拟开关
注意:上图右下方是我们符合表示的开关,还是要满足有圈为0,无圈为1,是正常工作,否则反之
3.3.6 三态输出的CMOS门
除了输出正常的高、低电平状态外,还可以输出高阻态。
上图右边符合图中的倒三角表示是输出高阻态,EN`作为信号,因为有圆圈,0时电路正常,1时电路高阻态输出,该电路常接在集成电路的输端,因此也称为输出缓冲器
下面我们看三态输出的CMOS门的应用,注意下面信号没圆圈,所以为1是电路正常导通,为0时输出高阻态

3.4 TTL门电路
3.4.1 三极管
(1) 结构和工作原理


下面是三极管的接法:
现在研究其工作原理,具体在模电讲过(下面均以NPN为例)
我们研究其特性:
输入特性:
输出特性:
下面看其输出特性曲线,分为三个区


根据这三个区的特性,我们能在不同的状态下有不同的应用
3.4.2 三极管单开关电路
我们先看电路
下面分析其工作原理
输入低电平时,三极管截止
输入高电平:
我们发现输入低电平时,输出高电平,输入高电平时,输出低电平,我们称为三极管的反相器电路
下面看该电路三极管的工作状态,我们在前面知道,三极管作为开关时,工作在截止区或者饱和区,判断饱和区时,我们需要饱和电流,和我们的基极电流进行比较判断
但是三极管反相器还是存在很大的缺点:
1.输出低电平时,电路功耗很大(因为R2上负载的电压很大)
2. 输出高电平时,输出电阻很大(因为下图两个二极管都截止)
因为三极管还是有一个充放电的过程,所以还是有延时变化的特性
3.4.3 TTL反相器
(1) 电路结构和工作原理
我们前面发现三极管反相器还是有很多缺点,而我们利用其构成互补电路,TTL反相器就是一种简单的互补电路结构
我们把该TTL反相器分为了以下三部分
下面一个部分一个部分研究
输入级:
分别假设输入低电平和高电平,根据三极管中PN结的导通情况分析电路
倒相级:
还是根据三极管中PN结的导通情况分析电路,然后计算Vc2和VE2的电位
输出级:
简单说一下为什么D2管能保证T4可靠截止,因为此时T5管导通,而如果D2管也导通,此时T4管的发射极的电位还会更高,这样就可以更好的满足T4的集电结反向导通,而截止
下面我们看TTL反相器的工作原理(晶体管默认0.7V压降)
我们输入0.2V时,T1应该导通,然后据此算出后面的电位,判断晶体管导通情况,然后分析电路结构
同理,输入3.4V时,我们假设T1管截止,据此分析后面T2和T3管导通,然后计算出电位,发现T1管截止,假设成立
我们发现TTL反相器还是实现的是非门,既 Y = A`
(2) 静态特性
下面我们分析其特性和参数
电压传输特性:
还是和上面一样,从输入电压开始分析各晶体管导通情况和电路情况
我们发现如果V1还继续升高,T2开始导通
我们看T5管的导通条件,如果VI再升高,T5就开始导通,但是我们也要注意T1管的导通条件

最后我们总结一下
输入噪声容限:
门电路输入端和输出端电平信号存在一个正常的取值范围。和我们前面讲的容限一样

输入端输入特性:
我们还是需要看高低电平输入

然后画出其输入特性曲线图
我们看在输入端带负载的输入情况下,此时T1管截止,输入电流很小,输入端电压就认为是电源电压,也就是高电平
我们再看输入端接负载后再接地的情况,计算出输入电压的表达式,可以更加负载的大小进行调整
但是注意点是如果Rp大于1.9千欧,此时VI大于1.4V,但是此时就算负载再增加,输入电压VI也不会改变了,因为此时T1管的工作状态已经发生了改变
下面画出输入电压和负载之间的关系
我们最后把TTL电路和CMOS电路的输入特性进行对比
输出特性
我们还是需要分高低电平来分析,因为TTL是反相器,所以高电平输出对应的是前面的低电平输入,低电平输出对应前面的高电平输入
’

下面画出其输出特性曲线图
扇出系数:
和之前一样,以数字表示一个电路输出端能够驱动同类型负载电路输入端的数目,,当然在高电平和低电平分别求
(3) 动态特性
传输延时时间:
因为二极管,三极管的存在,会有充放电现象,导致信号变化延时,下面分别是输入电压和输出电压同时的变化
交流噪声容限:
三极管开关时间分布电容充放电,对窄脉冲信号具有缓冲作用,所以交流噪声容限远大于直流噪声容限
动态尖峰电流:
我们先计算低电平输出电流,如图ICCL是由T1管的基极电流iB1和T2管的集电极电流汇合而成
再计算高电平输出的输出电流,此时输出电流ICCH,仅由三极管T1的基极电流iB1提供
上面是静态的电流,下面看低->高ICCM,动态电流的变化,我们计算三条支路,求出电流
此时我们得到输入电压的变化,和输出电流的变化,在提醒一次,因为是反相器,所以当低电平电压输入时,是高电平输出电流ICCH,因为从高到低的延时时间比较短,可以忽略,所以我们只看从低到高的延时产生的瞬态尖峰电流

最后进行定量的计算
3.4.4 各种逻辑功能的TTL门电路
(1) 与非门
我们发现输入级的T1管有多个发射极,这样可以实现与逻辑关系
下面分析其能否实现与非
这是圈面输入部分,实现了线与

后半部分和TTL反相器一样,实现了互补推拉,达到非的目的
(2) 或非门
我们先看电路结构,主要变化还是前半部分,实现了或运算(T2和T2`实现并联),后半部分和TTL反相器一样,实现非的运算
下面是其它常见的电路画法
(3) 与或非门
我们分析其输入级,多发射极的晶体管实现线与,然后T2和T2`进行并联,实现或运算,最后互补推挽实现非运算
(4) 异或门

我们一个模块一个模块进行分析,找到前面与其等效的逻辑电路,最后就能分析出电路的逻辑功能
3.5 集电极开路输出门电路(OC门)
我们看之前的推拉输出电路,具有一定局限性,因为T4和T5管电阻比较小,容易损坏
所以我们引入OC门,将输出级电路结构改为集电极开路输出的三级管,构成OC门。
我们把原来输出端使用的两个晶体管,改为只需要使用一个(上图T5),把该晶体管的集电极开路输出,得到我们的OC门
OC门在工作时需要外接上拉电阻RL,外接电源Vcc2。
我们发现OC门实现了与非的逻辑运算,且能实现电平变换(如果前面输入的是VCC1,而我们后面OC门外接的是VCC2,那最后就是VCC2,这取决于我们外面所接入的电压)
将几个OC门的输出端直接相连,即可实现OC门之间的与运算。
我们前面提到了,OC门需要外接电阻RL,所以我们要确定电阻RL的取值范围,如下上拉电阻过大,会导致上拉电阻的压降比较大,这样输出的电压可能小于下个电路的输入要求VIH(min),而如果上拉电阻过小,就会照成电流过大,限流作用差,下面我们进行计算
最大上拉电阻:
电路从RL流出,流入n个OC门输出端,和m个输入端,我们计算总电流后,乘以RL,就可以得到压降
最小上拉电阻:
首先我们要知道,每一个OC门的输出电流是有的,但是我们考虑极端情况,既所有的电流只流过一个OC门,此时进行计算,而对于输入来说,在与/与非门电路结构中,在低电平输入时,一个门电路的输入端共用的是一个输入电流,所以我们计算门个数,对于其它的门电路,我们计算的是输入端的个数
从图中可是RL的最小值的表达式,只有当所有的电流只通过一个OC门时,IOL(max)是最大值,否则IOL下降,分子变小,RL增大
再看输出端个数的计算情况,只有当是低电平输入且为与运算电路时,才计算门个数,否则都是计算输入端个数
3.6 三态输出门 (TS门)
除了输出正常的高、低电平状态外,还可以输出高阻态。还是和我们前面CMOS三态输出门是一样的,有圈为0,无圈为1是正常工作,否则输出高阻态
应用还是在总线中和数据的双向传输
4. 组合逻辑电路
4.1 概述
我们先看逻辑电路的分类
我们先看组合逻辑电路的功能
4.2 组合逻辑电路的分析方法
组合逻辑电路的分析,目的是得到电路的逻辑功能。先看我们的基本方法
下面进行举例:
1.
我们先从输入到输出逐级进行推导
如果逻辑函数比较复杂,还需要化简,简单的话就直接画真值表
2. 
我们先从输入到输出逐级进行推导
如果逻辑函数比较复杂,还需要化简,简单的话就直接画真值表

4.3 组合逻辑电路设计的基本方法
我们需要先进行逻辑抽象,主要就是事件的起因和结果以二进制的方法表示出来,然后列出真值表
有了真值表,我们就能写出逻辑函数式,对其进行变换化简后(我们还要匹配手上拥有的门电路类型),我们就可以知道输入和输出之间的关系,进而可以设计电路
进行逻辑函数转逻辑电路
4.4 若干常用的组合电路逻辑模块
我们发现有一些逻辑模块是经常使用的,所以我们把起做成一个模块,在复杂的电路当中,就可以直接使用
4.4.1 普通编码器
顾名思义,就是将输入的每一个高、低电平信号,编码成一个对应的二进制代码。
普通编码器:任何时刻只允许有一个编码信号输入。(不理解可以看下面例子)
我们以一个情景假设为例,我们在抢答席有八个座位,分别有一个代号,每个席为只能发送高低电平,抢答完成后,主席台根据编码的信号确定强答的号码
我们按照4.3的设计的基本方法来进行电路设计
列出真值表,分别写出每一位的逻辑函数表达式
普通编码器:任何时刻只允许有一个编码信号输入。就是说同时只能有一个输入,然后根据该输入确定Y0,Y1,Y2,得到编号
下面我们进行化简,根据化简后的逻辑函数画出电路图,主要这里在化简时,以Y0为例,我们看第一项,只有I1 = 1,其余为0,我们可以添加限制项(限制项是无关项,可要可不要),这里我们添加的限制项是I1 = 1,其余至少有一个1,这样我们就能进行合并化简,得到 I1 = 1.其余Y0的第二项,第三项,第四项同理,然后同理化简Y1,Y2
4.4.2 优先编码器

有些时候,我们需要同时输入多个信号,根据优先级进行响应,所以我们引出优先编码器,和普通编码器一样的情形,下面我们进行设计
注意这里是反变量输入输出,且有输入为0,无输入为1,0为有输出,1为无输出,这和前面不一样
下面我们看真值表,注意是反变量输入,所以0为有效(因为最后要对0的变量取反,所以反变量取反还是原变量,所以还是原变量输入为1有效),因为具有优先级,所以在高优先级有效时,我们只用看高优先级就行,这里是从I7->I1优先级逐渐降低
然后我们还是分别对输出的每一位求出逻辑表达式,如下图,求出让Y01`为1的输入,对于输入变量来说1表示不变,0表示要取反,最后得到每一位的逻辑函数表达式
然后对其进行化简
因为最后得到的逻辑函数表达式比较复杂,我们就不画电路图了,下面我们看已经设计好的优先编码器74HC148
我们来看该优先编码器的接入和工作状态


在YEX=1,代表该级电路无输出,YS = 1,就可以让优先级比较低的下级电路进行输出,否则反正,最后我们得到其功能表
4.4.3 二-十进制优先级编码器
将输入的每一个高、低电平信号,编码成对应的十进制BCD码。
我们先看下面的情景,之前我们的普通编码器,输入端是二进制编码排的,输出端也是得到的二进制,而下面的二-十进制编码器,输入和输出都是十进制,其实都是为了根据得到的号码知道是谁抢答上了,所以需要对号,只不过这里输出端的十进制BCD码表示的

我们下面按照设计思路对其进行设计
因为我们是反变量输入输出,所以是0为有效
下面列真值表,求出每一位的逻辑函数表达式,注意有优先级,且是反变量输入输出,0为有效,我们分别求输出的每一位,对于每个位,我们都找到该位为1时,分别求出其输入(1表示不变,0需要取反),再相加,下面以Y0`为例
我们在最后一行,默认了I0`是有输入端情况,无论是0还是1,我们不允许没有输入的情况

顺便提一嘴,比如第一行,I9`输入为0,表示输入的是9,而对应的编码是1001,因为我们输出是反变量,所以是0110,进行了取反
下面得到各个位的逻辑函数表达式,然后进行化简

因为逻辑函数式比较复杂,所以我们就不转换为电路图了,我们直接看现成的模块74HC147(低电平输入输出有效)
4.4.4 二进制译码器
我们先看情景,之前是抢答席进行抢答,主席台显示抢答成功的号码,而现在是主席台知道抢答成功的号码,返回去通知对应号码抢答席的人抢答成功
本质上就是我们输入的二进制数转换为高低电平输出出去
我们按照电路设计的思想来进行设计,下面使用的是原变量
我们列出真值表,然后写出每一位输出为1时的函数式
如果需要化简就化简,然后根据逻辑函数表达式,转换为电路图
这里我们使用的是二极管的与门,来实现功能,其存在输入电阻低,输出电阻高,高低电平偏移延时的缺点,我们下面看一些用TTL和CMOS门电路组成的电路
我们来分析该电路的功能,先看附加控制端是怎么控制电路的,只有最后S输出为1,电路就正常工作,如下图,主要我们简化了反相器为输入时的一个小圆圈
接下来看其功能(通过附加控制器,先保证电路是工作状态)
下面我们使用两个三线-八线译码器,构成四线-十六线译码器
我们通过D3来完成片选功能,左边负责译0000->0111,右边负责译1000->1111,这样就可以分给两个译码器进行处理

4.4.5 译码器组合电路


下面举几个例子:
(1) eg1.


得到函数表达式后,把得到的输出用与非
(2) eg,2 数字比较器
注意原变量输入输出:
根据需求下面列出真值表,求出输出的每一位为1的逻辑函数表达式
最后设计出电路图
4.4.6 二-十进制译码器
根据我们最后得到的号码,来判断输入的高低电平,只不过我们得到的是BCD码表示的十进制,然后判断输入的是哪几个号
下面我们看已经开发好的模块
4.4.7 显示译码器
(1) 七段字符显示器
用于以十进制数码的形式,直观的显示数字系统内的运行数据。
我们主要看半导体数码管构成的显示译码器
我们使用BCD码进行输入,以半导体管进行输出,所以我们需要译码器
下面对其进行设计
然后根据输入和我们想要的输出,确定真值表
对超出正常输入范围(0-9)的需要进行处理,自己设计,比如所以晶体管不亮,或者乱码
然后写出逻辑函数
因为比较复杂,我们就略过,直接看已经设计好的
我们发现其有三个控制端,我们分析其作用



有了该译码器,就可以去驱动我们的七段数码管
我们最后看通过译码器的控制端实现多为灭零,当一位灭0成功后,RBO就会传出灭0成功的信号,进入下一位的输入RBI,控制灭零
4.4.8 数据选择器
我们先引入情景,我们的电视需要接受信号,但是信号源有多路,我们通过遥控信号的输入端来确定接受的是哪路信号源
我们先设计一个二选一的数据选择器,按照我们上面的设计思路
然后根据需求列出真值表,再画出电路图
现在在同样的情景下,我们有四个信号源,需要实习四选一

我们接下来列出真值表,我们不一个个取值的列举,而是按照功能来进行列出真值表,写出逻辑函数表达式
因为电路图比较复杂,我们直接看现成的,下面是双四选一数据选择器,我们可以直接分开看作两个四选一就行
而我们使用双四选一数据选择器,就可以接成八选一数据选择器,其中A2输入起片选的作用,A2 = 0 时,让000->011在一号四选一数据选择器进行选择,A2 = 1 时,让100->111在二号四选一数据选择器进行选择
最后是我们常用的数据选择器的逻辑函数表达式
4.4.9 数据选择器组合电路
我们通过数据选择器,按照下面的思路,可以实现组合电路
下面举几个例子
(1) eg.1

因为有3个变量,所以我们都输入端需要大于等于2,我们根据需求写出逻辑函数表达式后,进行化简,使每一项都出现两个公共的变量,如果使用图中这种化简方式,这两个变量就是AG,我们把其作为地址输入,需要同时存在,其余输入变量可以是原变量,也可以是反变量,然后将其余数据选择器对应起来,当然也可以采用其它化简方法,而得到其它的地址输入变量
(2) eg.2
按照题目需求,三个变量是投票,一个变量是问题等级
根据情况列真值表,左为一般问题(需两人及以上才通过),右为重要问题(需全票通过),最后求出输出为1的逻辑函数表达式
因为是四个变量,所以需要至少三位输入的数据选择器,我们对上面得到的逻辑函数进行处理,选择出地址输入和数据输入,然后对表达式进行变换,最后为了和数据选择器的表达式匹配,我们把每出现的项前与上0,写出所有地址变量最小项构成的表达式

最后画电路
我们前面选择的地址输入变量不同,最后绘制出的电路也是不同的,下面是其它变量作为地址输入变量的电路图
4.4.10 加法器
两个二进制数之间的算术运算都是化做若干步加法运算进行的(最开始第二章讲过原因和方法,是通过补码把减法改为加法)。实现加法运算的加法器是构成算术运算器的基本单元。
加法分为半加和全加:
(1) 一位半加器
我们按照设计思路对其进行设计
我们根据需求列出真值表,并写出每一位输出的逻辑函数表达式,最后画出电路图
(2) 一位全加器
相比于一位半加器,其不仅有两个加数的输入,还需要一个进位的输入
我们根据需求列出真值表,并写出每一位输出的逻辑函数表达式
我们进行化简,得到与或非的形式(通过卡诺图法,把取值为0的项合并之后,取非),最后构建出电路
(3) 多位串行加法器
依次将低位全加器的进位输出端CO接到高位全加器的进位输入端CI,就可以构成多位串行加法器。
注意下面右边是计算式,我们按照低位到高位,加数和被加数进行相加
该加法器的优缺点明显,电路简单但是速度慢
(4) 超前进位加法器
为提高运算速度,必须减少由于进位信号逐级传递所耗费的时间。
因为电路复杂,下面我们看一个做好的模块,我们可以只关心逻辑电路图,而不管其内部的结构
4.4.11 加法器组合电路
这是我们的设计思路
下面举几个例子
(1) eg.1


(2) eg.2

我们写出逻辑函数,最后画出电路,我们使用移位来进行乘2,再进行一次相加得到3倍,下图电路中,A3A2A1A0是表示0d2d1d0,而B3B2B1B0表示d2d1d00
4.4.12 数值比较器
(1) 一位数值比较器

根据情况列真值表,写出逻辑函数,构建电路图
(2) 多位数值比较器
多位数值比较原理:从高位比起,只有高位相等,才比较下一位。
我们把三种情况的逻辑函数表达式写出来
下面看已经做好的模块
上面的低位数值比较结构就是用来进行串联的,如下,我们比较八位数,其中低四位的数值比较结果作为输入进入高四位的低位数值比较结果部分
4.5 中规模集成电路组合逻辑电路
4.5.1 电路分析
前面我们利用基本设计的思路,设计出了常用的若干电路逻辑模块,而我们对这些得到的中规模的模块进行分析,可以构建更加复杂的电路
我们先看前面我们常用的逻辑函数
下面我们举例对中规模电路进行分析
例1:
我们先写函数,不考虑真实的输入输出变量
然后对变量进行替换,与真实的输入联系在一起

为了更好的看出该电路的逻辑功能,我们列出真值表
例2:
我们先写函数,不考虑真实的输入输出变量

然后对变量进行替换,与真实的输入联系在一起,这里可以通过逻辑函数表达式直接得到其逻辑功能
4.5.2 中模块电路设计组合电路

下面举例,用我们前面的一些中规模电路构建其它的电路,前面步骤没什么变化
列出真值表,写出函数表达式
因为我们限制了器件,所以我们跳过这个步骤,对逻辑函数进行变换(因为器件使用的是数据选择器,所以我们需要变换并确认地址输入变量)
画出电路
4.6 可编程逻辑器件
可编程逻辑器件(ProgrammableLogic Device,简称PLD),作为一种通用器件生产,但逻辑功能可由用户通过对器件编程来设定。可编程逻辑器件PLD足以满足设计一般数字系统的需要。
因为PLD的器件比较复杂,所以我们画图也需要进行简化(前两个有点或叉代表相连接)
可编程逻辑阵列PLA:
任何逻辑函数都可用一级与逻辑电路与一级或逻辑电路来实现。
下面是PLA的使用讲解,前半部分完成变量的与运算,到下面后完成不同变量间的或运算
下面是一个例子,我们按照要求完成OLA电路设计
4.7 组合逻辑电路中的竞争-冒险现象
竞争-冒险现象: 门电路两个输入信号同时向相反的逻辑电平跳变的现象称为“竞争”。因竞争而可能在输出产生尖峰脉冲的现象,称为“竞争-冒险”
现象

为了检测,我们有检测的方法
下面举例
我们需要解决竞争-冒险现象参生的尖峰现象,下面是我们的方法
法一:
我们通过接入滤波电容来把尖峰脉冲进行削弱,但是电容的充放电会使电平变化的时间变长,导致波形变坏
法二:
引入选通脉冲P,只有在外面的选通脉冲正常时,才为正常,这样相当于我们把有尖峰脉冲的那一段不导通,但是这需要对脉冲宽度和作用时间有要求
法三:
修改逻辑设计,无不良影响,但范围有限
5. 半导通存储电路
5.1 概述
我们先看存储电路的分类
最基本的构成都是存储单元,我们看存储单元也有分类
存储单元的
触发方式 :逻辑功能的实现方式
逻辑功能: 输入和输出之间的逻辑关系
我们先对触发方式就行分类讲解
5.2 SR锁存器
SR锁存器(Set-ResetLatch)是静态存储单元中最基本、也是电路结构中最简单的一种。
5.2.1 由两个 “或非门” 构成的SR锁存器
我们看其工作原理,我们先假设初始状态,然后分别讨论SD,RD的不同输入情况下的不同Q值时的电路
我们假设Q的初始状态,然后在门电路中进行反馈后,再看输出的Q和Q`是否和上一次的值有变化,如果有,就需要重新把得到的Q值反馈输入回去,直到新得到的Q和上一次的值没有变化,稳定下来

下图左。因为假设的Q为0,Q为1,而第一次反馈后门电路得到的是Q=0,Q=0,和刚刚假设的不一样,于是继续进行反馈输入

对于下面这个状态,我们发现刚开始SD 和 RD 都是1,而最后输出的都是0
对这种情况存在一些问题,如果得到的输出在下面情况下,两个门电路还是同时进行反馈,就会造成振荡,永远稳定不下来,下面我们是假设不是同时反馈进行分析,根据反馈先后不同,我们得到的输出状态也不同,为了避免这种现象,我们正常输入信号应遵循SD*RD = 0
上面我们分析完了,可以列出真值表
基于此,我们能推出逻辑函数式,这里把Q当作输入变量进行处理,找出Q` = 1 时的逻辑函数,并使用无关项进行合并
我们看逻辑电路是怎么画的
5.2.2 由两个 “与非门” 构成的SR锁存器

注意区分是或非门还是与非门,看输入端是低电平有效还是高电平有效,如果是低电平有效,就是与非吗,高电平有效就是或非门
下面我们假设不同情况下,电路的反馈工作原理

要输出达到稳定状态下,才停止

对于下面这个状态,我们发现刚开始SD 和 RD 都是0,而最后输出的都是1
对这种情况存在一些问题,下面我们是假设不是同时反馈进行分析,根据反馈先后不同,我们得到的输出状态也不同,我们不能确定最后的输出状态是什么,为了避免这种现象,我们正常输入信号应遵循SD*RD = 0
下面我们得到其真值特性表
基于此,我们能推出逻辑函数式,这里把Q当作输入变量进行处理,找出Q` = 1 时的逻辑函数,并使用无关项进行合并
在任何时刻,输入都能直接改变输出的状态
5.3 触发器
5.3.1 电平触发的SR触发器
锁存器的基础上,增加一个触发信号输入端
下面我们看其工作原理,当时钟信号为0时,经过与非门后,输入的信号都为1.此时输出保持不变,当时钟信号为1时,此时输入的是S`和R·。是正常的SR锁存器的功能
然后写出其真值特性表
下面是其图形符号
为了更好的控制我们还可以加上异步置位和异步复位端,如下,这两个控制端一般是在CLK为0 时使用,因为此时的输入信号都为1,屏蔽了最原始的S,R信号,我们可以根据需求控制输入信号
特点小结:
下面是一个例子:
5.3.2 电平触发的D触发器
为了能适应单端输入信号的需求,常用D输入代替S、R输入
下面分析其工作原理

据此写出真值特性表,并根据令Q` = 1,写出逻辑表达式
下面是其图形符号
我们可以使用CMOS传输门电路组成电平触发的D触发器,如下:
我们根据CLK控制传送门,控制电路
5.3.3 边沿触发的D触发器
为提高触发器的可靠性,增强抗干扰能力,希望触发器的次态仅仅取决于CLK的下降沿(或上升沿)到来时的输入信号状态。
把两个电平触发的D触发器串联就得到了,边沿触发的D触发器

下面分析其工作原理:
我们发现无论什么CLK状态下,输出都是保持不变,因为经过反相器这两个电平触发的D触发器其中一定有一个是保持不变状态
下面看着电平变化的过程:
下降沿:因为电平变化时,两个D触发器都是同步进行变换的,虽然第一个触发器变化的电平可以通过,但同时导致最后一个触发器变化为保存状态,不能输出变化的电平
上升沿:
刚开始的时候信号已经通过了第一个触发器,此时信号进行变换,导致第二个触发器可以输出变化的电平,虽然此时外面输入信号以后的变化不能进入两个触发器直接,但是此时的信号是可以通过第二个触发器进行输出
下面画出特性表和写出特性方程
我们看其图形符号:
注意:D代表的是 D触发器,三角形代表其实边沿触发,而不是电平触发
为了扩展其功能,我们可以加一些异步控制端
如果是下降沿触发的话,会加一个小圆圈,如下:
我们总结一下其动作特点:
- Q*变化发生在CLK的上升沿(或下降沿)
- Q*仅取决于上升沿到达时的输入状态,与此前后的状态无关。
下面是一个例子:
总结出来就是一句话:在有效边沿采集的电压会持续到下一个有效边沿,从此往复
5.3.4 脉冲触发的SR触发器
将边沿触发器里的两个电平触发的D触发器化成电平触发的SR触发器,就构成了脉冲触发的SR触发器。
下面看其工作原理:
我们发现无论什么CLK状态下,输出都是保持不变,因为经过反相器这两个电平触发的SR触发器其中一定有一个是保持不变状态
下面来看边沿变化:
上升沿:因为电平变化时,两个D触发器都是同步进行变换的,虽然第一个触发器变化的电平可以通过,但同时导致最后一个触发器变化为保存状态,不能输出变化的电平
下降沿:刚开始的时候信号已经通过了第一个触发器,此时信号进行变换,导致第二个触发器可以输出变化的电平,虽然此时外面输入信号以后的变化不能进入两个触发器直接,但是此时的信号是可以通过第二个触发器进行输出
注意: 和边沿触发的D触发器相比。我们最后决定输出的不止是下降沿的前一个瞬间变化,还需要考虑下降沿前的整个高电平的输入电平变化。这和边沿触发的D触发器相比,是完全不一样的,主要的原因是因为,边沿触发的D触发器,其输出是和输入跟随的,但是脉冲触发的SR触发器,输入端有S,R两个输入,比如初始Q = 1,Q* = 0,然后输入 S = 0 ,R = 1,然后变化为 S = 0,R = 0,按照正常的推演,刚开始R = 1,所以低电平置位,Q 应该为0,然后 S = 0,R = 0,输出维持不变,所以输出应该是 Q = 0,Q* = 1,但是我们只看电平变化一瞬间前的瞬间,这时候S = 0,R = 0,输出维持不变,我们就以为 Q= 1,Q* = 0,维持不变,其实是错的(看不懂的后面有图解)
下面是工作原理小结。所以我们主要考虑的还是电压变化时
因为输入是S和R,所以我们分情况来讨论输出特性,就是连续使用电平触发的SR触发器的分析方式

最后我们总结真值特性表和逻辑表达式
接下来我们看图形符号
主要区别是:那个脉冲触发的符号,是辨别脉冲触发的主要方式
高电平有效的是正脉冲触发,低电平有效的是负脉冲触发
下面我们再来解释一遍为什么不仅要考虑电平变化瞬间,还要考虑变化前的高电平期间内的信号变化(以下降沿为例),我们只考虑最后电平变化前的瞬间,S = 0,R = 0,此时输出应该维持不变,而我们的初始状态是Q1= Q1* = 1,但是考虑高电平期间输入电平的变化,倒数第二次时,输入电平为 S =0 ,R = 1,此时Q* = 0,然后 S = 0,R = 0 ,保持输出不变,此时输出是 Q* = 0
下面我们看一个例子,总结:还是在以相邻的下降沿划分,此时外面判断高电平期间主触发器的输出变化,再在电平变化时确定判断从触发器的输出变化 。和之前的相比,就是我们需要在高电平期间确认电平变化前的瞬间,从触发器输入端真是状态,而不是只看一瞬间
5.3.5 脉冲触发的JK触发器
前面的触发器我们为了保持输出正常,都需要满足SR = 0,为解除SR触发器的SR=0的约束条件,将Q和Q’接回到输入端
下面分析其工作原理(主触发器是上升沿,从触发器是下降沿):
这是当J = 0, K = 0 时,无论Q与Q`等于多少,都是保持不变
下面两种是 K = 1

我们发现K是置0信号
下面看J = 1 的两种情况,我们发现在这两种情况下,J相当于是置1信号

上面的6种情况,我们发现和SR触发器没什么区别,但是JK触发器主要是解决 SR =0 时,输出不确定的限制,所以我们看下面 J = K =1的情况


下面总结出其真值特性表,根据Q = 1,写出逻辑表达式
下面看其图形符号
注意通过图形符号判断是什么触发器,和触发方式,还有什么电平有效
因为是脉冲触发的方式,我们需要考虑电平变化前的电平期间的所有输出信号的变化,而不是一瞬间,但是因为引入了Q信号的反馈,所以我们也需要把其考虑进去,最后发现如下Q在不同情况下,对输入信号的影响
如上,我们不断变化输入信号,最后得到上面的结论
- CLK高电平期间“主”接收信号,“从”保持不变
- CLK下降沿到来时“从”按“主”的状态翻转
- 与脉冲触发的SR触发器对比,脉冲触发的JK触发器可能只翻转一次,而SR可能翻转多次,主要是因为Q的反馈信号进行了限制
下面我们看一个例子(下降沿变化)
1.我们先按照时钟CLK进行划分
2. 判断下降沿前的高电平期间的Q信号状况
3. 根据Q信号状况,去找相应的J或者K,观察是否产生所需的信号
5.3.6 求输出波形
前面我们学校了解完了触发器,现在我们需要根据输入特性求输出特性
其中第一类,我们在上面触发器的讲解最后,都给过对应例题,而第二类,主要是输入信号经过附加电路,所以我们要求出触发器实际的输入信号后,再按照第一类进行分析,最后一类我们需要额外考虑异步的情况
(1) eg.1

先判断出是D触发器,且为上升沿触发,下面求其输入端的逻辑表达式,然后结合触发器的逻辑表达式,最后得到输出的整个逻辑表达式
然后就可以据此画输出波形了
(2) eg.2

我们先分析触发器类型,触发方式,触发的输入信号来源,这里注意还有一个异步复位按钮,下面我们使用列表的方式去推导,相同的颜色表示,相连,既从触发器的信号来源
输出状态->输入状态:根据输出状态的Q2推导1号触发器的输入JK,根据Q1推导出2号触发器的J2,K2,RD2`
输入状态->输出状态:先判断是否需要异步复位,需要就进行复位,不需要的话就根据JK触发器的特性表来推导Q1,Q2
再画出波形
5.3.7 触发器的动态特性
为保证触发器正常工作,有必要分析触发器的动态翻转过程,找出对输入信号、时钟信号及两者互相配合关系的要求。
我们分别从建立时间,保持时间,最高时钟频率。传输延时时间来进行研究
建立时间: 输入信号应当先于时钟信号CLK动作沿到达的时间。
我们应该在电平变化前把输入信号传入且稳定,因为输入信号传入稳定需要时间,对于电平变化来说,所以应该提前达到,如下图,上升沿需要一个Td,而输入信号经过三个,需要3个Td,我们就能计算出需要的时间为2Td
保持时间: 时钟信号CLK动作沿到达后,输入信号仍保持不变的时间。
因为电平变化时,主触发器从通->截止,这个过程也需要时间,而这个时间内,输入信号不能改变
传输延时时间: 从CLK动作沿到达开始,到输出的新状态稳定建立所需要的时间。
因为从触发器从 截止->导通也需要时间,所以新信号的稳定也需要时间
最高时钟频率:
在确立了前面三个参数后,我们就可以确认最后一个参数
我们先看建立时间(此时CLK是低电平),再看传输延时时间,在整个传输延时时间内,CLK不是一直处于高电平的,我们计算出高电平时间后,再加上低电平时间,就得到了最高时钟频率
5.4 触发器按照逻辑功能分类
之前我们讲过,触发器有两种方式分类,一种是触发方式,如前面的电平,脉冲,边沿…,还有一种就是按照逻辑功能进行划分,这两者之间没有固定的对应关系,现在我们把前面学的触发器按照逻辑功能划分:SR,JK,D,T



JK触发器的逻辑功能是最强的,把J,K端当作S,R,就可以改为SR触发器,只不过多了限制,然后把双端输入改为单端输入,就得到了T触发器
所以目前实际生产只有JK和D触发器
5.5 寄存器和存储器
5.5.1 简介

下面看一点实例,注意寄存器我们不要求触发方式,因为个数比较少,我们可以把每个引脚都引出,便于和电路进行快速的数据交换
接下来我们来看存储器
因为存储容量很大,所以我们通过地址访问
我们可以把存储器分为如下两大类
随机存储器RAM:
- 正常工作状态下,可随时快速的向存储器里写入数据或从中读出数据。
- 断电后数据丢失,不宜长期保存数据。
只读存储器ROM:
- 正常工作状态下,只能从中读取数据,不能快速的随机修改或重新写入数据。电路结构简单,
- 断电后数据不会丢失,适用于存储固定数据的场合。
当然对随机存储器RAM,还可以进行细分,如下:
5.5.2 随机存储器RAM
(1) 静态随机存储器SRAM
我们通过地址译码器来寻址,通过片选来判断是否工作
下面看一个电路实例:(注意列是一个控制四个开关,所以列是64列选4)
上面是宏观的电路,下面是静态存储单元
SRAM静态存储单元是在SR锁存器的基础上,附加门控管构成。
解释一下这里的门控管,我们在上图右侧单独拿出来了,其实其就是构成了CMOS反相器,完成反相的功能,上图最右下侧,就是简化后的图,其两端既可以置1,也可以置0
其通过下图所示地址线。选择电路
分析完其寻址,我们再来看其怎么控制读写
当然构成其不止可以用CMOS,也可以用双极型
(2) 动态存储器DRAM
其本质是通过电容存储,但是因为电容要掉电,我们需要对其进行刷新,而判断其存储的是1,还是0,我们有一个界限,当大于其为1,此时重新刷新后,其从最高电压再慢慢掉电,这样循环
(3) 只读存储器ROM

其实我们在之前就已经讲解过用二极管,MOS来构成ROM,下面我们先看存储单元
下面我们看电路,先看二极管构成的电路
如果使用CMOS管,我们把二极管进行替换就行
我们举一个例来看二极管的工作原理
对于ROM来说,其也可以进行分类

这里说一下PROM的原理,其只能存一次,后面就不能更改,因为如下,其实用熔丝来进行保存电位的,如果断了,肯定就不能复原啦,只能保持在0电平

5.5.3 存储器的容量扩展
字数: 输入端地址的总个数
位数: 输出端个数
在实际中,可能会有字数不够用,或者位数不够用的情况,此时就需要进行扩展
位扩展:
下面看一个例子:
把每个RAM的地址线,读/写控制线,片选先进行并联
字扩展:
下面看一个例子:
我们使用译码器,来增加少量的控制线,经过译码器,来控制每个RAM的片选
5.6 用存储器实现组合逻辑函数
因为任何逻辑表达式都能表现为最小项之和的形式,而最小项我们可以存储在存储器里面

下面举一个例子
最后如下存储
我们也可以将上图旋转,得到如下的图
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)