本博客,只包含数字逻辑的简要知识点+考点以及部分MOOC题目,以及一些个人觉得重要的小知识点。
适合计算机学院
进行加、减运算时,需要对运算结果最低位进行调整的编码为(反码)
余3码10010101.10101000对应的二进制数为 ( )
转换为10进制----62. 75
再转换为二进制数----111110.11
二进制数1100110用格雷码表示是()
第一位不变,后面每一位为该位与上一位异或
格雷码:1010101
2421码的特点:大于等于5时最高位为1,小于5的最高位为0。
真值和机器数
真值:一般书写形式表示的数,通常用“+”,“-”表示正负
机器数:正负符号数码化后的数据
常用的机器码:原码、反码、补码
原码、反码、补码
原码:正数的原码是其本身,负数的原码的符号位为1,数值位不变
原码不能直接进行减法运算
反码:正数的反码是正数本身,与原码形式相同,负数的反码符号位为1,其数值部分由原码的数值部分按位取反得到
加法运算时,符号位进位加到结果最低位
补码:正数与原码相同,负数的补码的符号位为1,数值位为其反码的末位加1
可以将减法转换为加法运算
加法运算时,直接将符号位进位去掉
(负数:原码->补码,非符号位取反加一;补码->原码,非符号为减一再取反)
十进制数的二进制编码
8421码、2421码、5421码、余3码
2421码的特点:大于等于5时最高位为1,小于5的最高位为0
可靠性编码
奇偶校验码、CRC校验码(循环冗余校验码)、格雷码
格雷码是对二进制码,不是8421码等十进制数的二进制编码。
不容易记住的公理、定理 汇总
A + ( B·C ) = ( A + B ) · ( A + C )
+ ∙ =
+ (~) = +
A ∙ B + (~) ∙ + ∙ = A ∙ B + (~) ∙ C
代入规则、反演规则、对偶规则
反演规则:将逻辑函数表达式F中所有的“·”变成“+”, “+”变成“·”,“0”变成“1”,“1”变成“0”,原变量变成反变量,反变量变成原变量,并保持原函数中的运算顺序不变
对偶规则:将逻辑函数表达式F中所有的“·”变成“+”, “+”变成“·” ,“0”变成“1”,“1”变成“0”,并保持原函数中的运算顺序不变
逻辑函数相等
对于逻辑变量的任何一组取值,两个逻辑函数的值都相同,这两个函数相等
异或逻辑、同或逻辑
异或:进行异或运算的多个变量中,若有奇数个变量的值为1,则运算结果为1;若有偶数个变量的值为1,则运算结果为0,根据这个性质可以用来进行奇偶校验
同或:进行同或运算的多个变量中,若有奇数个变量的值为0,则运算结果为0;若有偶数个变量的值为0,则运算结果为1
同或逻辑和异或逻辑互为相反,又互为对偶,实际应用中,通常用异或门加非门实现同或运算
最小项、最大项
在同一问题中,下标相同的最小项和最大项互为反函数
逻辑函数表达式化简
为了降低系统成本、减小复杂度、提高可靠性,必须对逻辑函数进行化简
代数化简法、卡诺图化简法、列表化简法
代数化简法
常用并项法A(~B)+AB=A、吸收法A+AB=A、消去法A+(~A)B=A+B、配项法
注意:逆用定理六可以把 或项 变成 与非项棣莫佛定理)==》这个很多时候往往是难点,想不到
比如:AB+A(~C)+(~B)C=A (~ ( (~B)C ) ) + (~B)C
当出现异或项(~B)C+B(~C)的时候,考虑乘上一个(~A+A),后面继续化简
两次对偶法(代数化简) 求最简或与表达式
对“或-与”表达式表示的函数F求对偶,得到“与-或”,表达式F’ ,求出F’的最简“与-或”表达式,对F’再次求对偶,即可得到F的最简“或-与”表达式
卡诺图化简法
注意画图的时候的顺序
在n个变量的卡诺图中,能从图形上直观便地找到每个最小项的n个相邻最小项。
卡诺图化简 求逻辑函数最简“或-与”表达式
给定的是 “与或”表达式 常用两次取反法
给定的是 “或与”表达式 常用两次对偶法
总之:一句话,就是求反函数或者对偶后的最简与或,再反过来,就得到了最简或与表达式
不需要对内容有很深刻的理解,这里不列出器件的内部原理–包括半导体器件的开关特性以及门电路等(没学)
这里主要需要记住常见触发器的次态方程以及会画波形图
集成电路分类
根据半导体器件分:单极型集成电路,双极型集成电路
双极型集成电路可进一步分为:TTL电路,ECL电路,I2L电路
MOS集成电路可进一步分为:PMOS,NMOS,CMOS
根据集成电路规模大小分:SSI,MSI,LSI,VLSI
正逻辑与负逻辑
正逻辑:用高电平表示逻辑1,低电平表示逻辑0
负逻辑:用高电平表示逻辑0,低电平表示逻辑1
触发器
与非门构成的基本R-S触发器
次态方程 n+1 = (~) +
约束方程 + = 1(不能同时输入0,下降沿,是0起作用)
同一端连续出现多个负脉冲信号时,仅第一个使触发器状态发生改变,可以用来消除毛刺
或非门构成的基本R-S触发器
次态方程 n+1 = + (~)
约束方程 ∙ =0(不能同时输入1,上升沿,是1起作用)
钟控R-S触发器
CP=0时,不变
CP=1时,和或非门构成的R-S触发器功能一致
钟控D触发器
次态方程 n+1 = D
钟控J-K触发器
次态方程Qn+1 = (~) + (~)
钟控T触发器
次态方程n+1= ⊕ Q
改进
主从触发器:解决空翻的问题,前沿采样,后沿定局
维持阻塞触发器
边沿触发器
仅在时钟脉冲的上升沿或下降沿时刻相应输入信号,大大提高了触发器的抗干扰能力
注意:我们之后大多数用到的都是边沿触发器
组合逻辑电路的分析
分析过程:
逻辑电路图->写出逻辑表达式(用代数法或卡诺图化简表达式)->列出真值表->分析逻辑功能(->改进电路)
其中:分析电路功能最难
组合逻辑电路的设计
分析设计要求->列出真值表(或者直接写出逻辑表达式)->写出最简逻辑表达式->表达式变换->修正表达式->逻辑电路图
分析设计要求:列写出输入和输出的变量以及个数
多输出函数的组合逻辑电路设计
关键:在函数化简时找出各输出函数的公用项,实现对逻辑门的“共享”(这一步也比较难)
逻辑函数+卡诺图 里都有可能出现,异或需要特别注意,卡诺图里不容易看出异或
包含无关条件的组合逻辑电路设计
函数表达式中是否包含无关项,以及对无关项是令其值为1还是为0,并不影响函数的实际逻辑功能
注意:大多数最简表达式通过棣莫佛定理的逆用,得到 与非 的表达式
无反变量提供的组合逻辑电路设计
为了减少各部件之间的连线,在某些问题的设计中,不提供反变量
若直接用非门将原变量转换成相应的反变量,则处理结果往往是不经济的
往往将原变量相同的部分合起来,反变量写成与非的形式(充分利用与非来实现反变量)
注意:对问题的逻辑描述和编码是直接相关的,需要找到合适的编码(可以从卡诺图里面观察,或许得到的与或表达式简单,或许得到的或与表达式简单)
组合逻辑电路的险象
“0”型现象:错误输出信号为负脉冲
“1”型现象:错误输出信号为正脉冲
险象的判断
代数法:检查函数表达式中是否存在具备竞争条件的变量,某个变量X同时以原变量和反变量的形式出现在函数表达式中。
卡诺图法:判断是否有相切。
险象的消除
增加冗余项,增加惯性延时环节,选通法
同步时序逻辑电路设计中,状态编码采用相邻编码法的目的是(减少电路中的逻辑门)
构造一个模12同步计数器,至少需要( 4 )个触发器。
在设计同步时序逻辑电路时,实现相同功能,使用D触发器的电路一定比使用JK触发器的电路简单(错)
在同步时序逻辑电路中,电路状态是由任意触发器组成的组成存储电路来保存
描述时序逻辑电路的常用方法有()
激励函数和输出函数表达式
时间图
状态图和状态表
按照电路的工作方式分类
同步时序逻辑电路:电路中有统一的定时信号,存储器件采用时钟控制触发器,电路状态在时钟脉冲控制下同时发生转换
异步时序逻辑电路:电路中没有统一的时钟信号同步,电路输入信号的变化将直接导致电路状态的变化
同步时序逻辑电路
在研究同步时序逻辑电路时,通常不把同步时钟信号作为输入信号处理,而是将它当成一种默认的时间基准。(这一点要搞清楚)
按照电路输出和输入的关系分类
Mealy型 :时序逻辑电路的输出是电路输入和电路状态的函数
Moore型 :时序逻辑电路的输出仅仅是电路状态的函数
典型的同步时序逻辑电路
锁存器,寄存器,移位寄存器,计数器,序列信号发生器
同步时序逻辑电路分析
先确认是不是同步、输入输出是什么、看用到什么触发器、有多少个状态、什么逻辑门、明确什么类型(Mealy还是Moore)
表格分析法
逻辑电路图->输出函数与激励函数表达式->次态真值表(用到触发器的功能表)->状态图/状态表/时间图->用时间图和文字描述电路功能
重点就是得到状态图/状态表:尤其状态图,能够比较直观的看出功能
代数法
逻辑电路图->输出函数与激励函数表达式->次态方程组(用到触发器的次态方程)->状态图/状态表/时间表->用时间图和文字描述电路功能
代数法有着很好的优势,避免了画出复杂的次态真值表,为了能够画出状态图仍要先写出状态表
次态真值表和次态方程组都是为了得到状态之间转移的关系,能够从一个状态到另一个状态。
当根据状态表和状态图分析不出来功能的时候,考虑使用一段典型输入,画时间图来分析功能。
实际分析时,可根据具体情况灵活使用,通常可以省去一些步骤。
同步时序逻辑电路设计
这里指考虑完全给定同步时序逻辑电路:电路在不同输入取值下都有确定的次态和输出
过程概括
形成原始状态图和原始状态表->状态化简,求得最小化状态表->状态编码,得到二进制状态表->选定触发器类型。并求出激励函数和输出函数最简表达式->画出逻辑电路图
原始状态图和状态表
区分:可重叠序列检测器、不可重叠序列检测器、代码检测器
状态化简(找等效状态)
(简单的话,可以使用观察法,简单高效)
观察法、输出分类法、隐含表法
等效的判断(同时满足以下两个条件才等效)
次态相同、次态交错或为各自的现态可以在 顺序分析 中完成
次态循环或为等效对在 关联分析 中完成
状态编码
最常见的方法是相邻分配法
相邻分配法的原则
简而言之:就是次态相同、现态相同、输出相同的一个顺序来分配
可按照从1到3的优先顺序考虑分配
确定触发器的数目和类型
确定激励函数和输出函数并画出逻辑电路图
检查,电路是否具有自恢复功能,电路是否会输出错误信号,要进行修改,只需要考虑用卡诺图化简时对任意项d的处理即可。
给构造一个十进制的异步加法计数器,需要(4)个触发器
脉冲异步时序逻辑电路的存储电路由(触发器)组成,电路输入信号为(脉冲信号)
在(脉冲异步时序逻辑电路)中,当存储电路用钟控触发器时,应将触发器的时钟控制端作为激励信号处理。
对于脉冲异步时序逻辑电路,下列说法正确的是(A)
A 不允许两个或两个以上的输入端同时出现脉冲
B 对输入信号没有约束
C 都不正确
D 不允许两个或两个以上的输入端同时发生变换
同步时序电路和异步时序电路的最主要的区别是,前者没有时钟脉冲,后者有时钟脉冲(错)
异步时序逻辑电路分类
根据电路结构和输入信号:脉冲异步时序逻辑电路,电平异步时序逻辑电路
根据电路输出与输入的关系:Mealy型和Moore型
脉冲异步时序逻辑电路分析
不允许在两个或两个以上输入端同时出现脉冲
Mealy型输出一般是脉冲信号,Moore型输出一般是电平信号
过程(整体和同步类似)
写出电路的输出函数和激励函数表达式->列出次态真值表或次态方程组->作出状态表和状态图->用文字描述电路的逻辑功能
为了保证脉冲异步时序逻辑电路正常工作,使用边沿触发器应该在输入脉冲的后沿触发。(这里会和一般的分析有所不同)-----这种情况需要单独分析
脉冲异步时序逻辑电路设计
过程
形成原始状态图和原始状态表->状态化简,求得最小化状态表->状态编码,得到二进制状态表->选定触发器类型,(这里要画出激励表,常用卡诺图来化简)并求出激励函数和输出函数最简表达式->画出逻辑电路图
很多时候的状态化简可以通过观察法观察出来(尤其数目比较少的时候)
画激励表的时候,两个输入端同时为1作为无关条件处理
输入端无脉冲出现,触发器时钟端为0,输入端为d
电平异步时序逻辑电路分析
不允许两个或两个以上输入信号同时发生变化
流程表和总态图
流程表
将一位输入的各种取值按代码相邻的关系排列(与卡诺图相同),以表示输入信号只能在相邻位置上发生变化
二次状态、激励状态
总态图
反映稳定总态之间转移关系及相应输出的一种有向图
过程
写出电路的输出函数和激励函数表达式->作出流程表->作出总态图和时间图->说明电路逻辑功能
电平异步时序逻辑电路的竞争
若信号变化所到的列只有一个稳态,则该竞争属于非临界竞争
若输入信号变化所到达的列有两个或两个以上稳态,则该竞争属于临界竞争
常用中规模组合逻辑电路
二进制并行加法器:典型芯片74283
应用:二进制加法运算、代码转换、二进制减法运算、二进制乘法运算、十进制加法运算
译码器
译码器输出的就是最小项的非,所以尽量将输出转换成最小项相关的形式
编码器
优先编码器:在输入端,下角标号越大的优先级越高
~IS为工作状态选择端(允许输入端)
Os为允许输出端,当允许编码而无信号输入时,Os为0
~OEX为编码群输出端,当不允许编码或者虽然允许编码但是无信号输入时为1。
多路选择器和多路分配器
常用中规模时序逻辑电路
计数器:同步计数器、异步计数器、二进制计数器、十进制计数器
一般就有计数、保存、清楚、预置等功能
同步计数器74193
CPu和CPd是上升沿出发,~Qcc进位端输出是负脉冲,及进位信号~Qcc端输出0
异步计数器74290
置9端(1001)要优先于置0端
异步74290要注意分析上升下降沿的关系,用脉冲波形图来想吧
::计数器要好好理解进位的关系
进位信号要预置好,等到先触发进位加一,再立刻低位清零信号产生。
寄存器74194
常用4位双向移位寄存器
双向移位寄存器在S1S0和 CLR 的控制下可完成数据的并行输入( S1S0 =11)、右移串行输入(S1S0 =01),左移串行输入( S1S0 =10)、保持( S1S0 =00)和清除(CLR=0)等五种功能。
常用中规模信号产生与变换电路
可编程只读存储器PROM
容量:将一个n位地址输入和m位数据输出的PROM的存储容量表示为2n×m
PROM的由一个固定连接的与门阵列和一个可编程连接的或门阵列组成
可编程逻辑阵列PLA
由一个“与”阵列和一个“或”阵列构成,“与”阵列和“或”阵列都是可编程的
存储容量用n(输入变量数)-p(与项数)-m(输出端数)来表示
PLA的容量为3—6—3,表示3个输入3个输出,能够产生6个与项