type
slug
status
summary
icon
category
date
tags
password


0 Overview

- 第一章:逻辑代数的基本概念,逻辑代数的定律化简的方法
- 第二章:两大类门电路,TTL和COMS两种半导体器件做出来的逻辑门电路,根据具体要求
- 第三章:组合逻辑电路。将各种不同的门电路,把它搭建起来。形成一个较大规模的具有某些功能的电路
- 第三章的组合逻辑电路和第五章的时序逻辑电路是有区别的,区别在第四章就是有没有触发器。
- 第四章触发器,触发器是一种具有记忆功能的电路。在数字电路里面,记忆就是“保持”,就是具有保持功能的一种器件。我们就把它成为”触发器“。
- 组合逻辑电路和时序逻辑电路之间的最大区别就是看有没有“触发器”。因为触发器就是跟时间有关的,所以组合逻辑电路和时间无关,时序逻辑电路是和时间有关的,因为它包含触发器。
- 组合逻辑电路里面有“加法器”、“编码器”、“译码器”、“分配器”、“选择器”。而在时序逻辑电路里,有“计数器”、“寄存器”。
- 第六章“脉冲产生与整形电路”,脉冲的产生,如何将电路整形改变一下它的形状,可能由一个正弦波,把它变成一个矩形波
1 逻辑代数基础

1.1 概述
- 电子管是一种在气密性封闭容器当中产生电流传导,利用电场对真空中的电子流的作用,以获得信号放大/震荡的一种电子器件。
- 晶体管半导体二极管
- 半导体集成电路
1.1.1 数字技术的发展及其应用

电子器件主要经过了三个时代:第一个电子管时代、第二个晶体管时代、第三个半导体的集成电路时代。

EDA技术:以计算机为基本工具、借助于软件设计平台,自动完成数字系统的仿真、逻辑综合、布局布线等工作。最后把做好的布线下载到芯片,实现系统功能,使硬件设计软件化。
EDA:把一个很大的电路拆成若干个部分,每一部分进行单独设计。而它们之间又是通过上层来进行统一的部署。所以下面部署好了,还得传达到上面去进行测试仿真等等。成品率高,因为在制成成品之前就已经去测试过了。而且周期短,是因为修改测试等都通过计算机完成。
eg:当你涉及到的芯片数量比较多,工作量大大增加。但如果用EDA技术的话,那些芯片就等同于在一个软件里面的内存,就改变内存,就可以将门电路进行连接。
- EDA设计:设计方法:原理图设计,VerilogHDL语言设计,状态机设计
- 仿真
- 下载:将相关的程序/电路图下载到一个器件(实验板上,上面会有芯片)里
- 验证结果
这样操作就比直接焊接一个电路好很多,因为如果你焊好后又有问题,需要拆线检查问题等等。但如果使用EDA软件进行开发。很多内容都在前面已经搞定了,就算不行我也只需要改一下计算机里面的电路/程序,又可以再继续仿真,再继续下载再来验证。
1.1.2 数字集成电路的分类及特点
- 数字电路的分类
- 按电路的结构特点及对输入信号的响应规则
- 组合逻辑电路
- 时序逻辑电路
- 按照电路的形式
- 集成电路:集成在一块芯片里面
- 分立电路:电阻电容还有其他相连可见
- 按照器件不同
- TTL电路:晶体管(三极管)
- CMOS电路:场效应管
- 按规模分
- 小规模(SSI),中规模(MSI),大规模(LSI),超大规模(VLSI)和甚大规模(ULSI)
- 集成度:每一芯片所含的门(电路)个数。能够实现某一个功能的电子器件,我们给它称作门(Gate)
- 甚大规模:一般来说就是一些可编程的逻辑器件。把写好的程序直接写入器件里面。

- 数字电路的分析、设计与测试
- 数字电路的分析方法
- 根据电路确定电路输出与输入之间的逻辑关系,说明电路实现的逻辑功能。
- 分析工具:逻辑代数。
- 电路逻辑功能主要用真值表、逻辑图、逻辑表达式和卡诺图、波形图
- 数字电路的设计方法
- 从给定的逻辑功能要求出发,选择适当的逻辑器件,设计出符合要求的逻辑电路。
- 设计方法
- 传统的设计方法
- 基于EDA软件的设计方法
1.1.3 数字信号和数字电路
- 定义
- 电子电路的分类
- 模拟电路
- 模拟信号:时间和幅度上都连续变化的信号
- 数字电路
- 数字信号:时间和幅度上都断续变化的信号

前者是模拟信号,时间和幅度都连续变化的信号。后者是数字信号,在t1时刻从0直直跳变到u1.在t2的时候直接从u1跳变到0。所以在平时绘制这个信号的时候将竖线画出来,但它不是连续的。
- 区别
- 工作任务不同:模拟电路研究的是输出与输入信号之间的大小、相位、失真等方面的关系;数字电路主要研究的是输出与输入间的逻辑关系(因果关系)
- 三极管的工作状态不同
- 模拟电路中的三极管工作在线性放大区,是一个放大元件;数字电路中的三极管工作在饱和或截止状态,起开关作用。
- (一般三极管有三个区:放大区饱和区和截止区。放大是给模拟电路用的,而饱和和截止区是给数字电路用的。饱和就是饱和导通,截止就是断开。数字电路是用饱和和截止状态来起到开关作用)
- 因此,基本单元电路、分析方法及研究的范围均不同。
(看看就行)


A:模拟信号(analog signal)一种可以连续变化的信号,与数字信号只能取离散值的信号相对。
D:数字信号(digital signal)
1.1.4 数字信号的描述方法
- 二值数字逻辑和逻辑电平
- 二值(0、1)数字逻辑:表示事物状态时称二值逻辑,表示数量时称二进制数。
- 逻辑电平:在电路中用低、高电平表示。

- 逻辑代数
- 用于描述客观事物逻辑关系的数学工具,又称布尔代数 (Boole Algebra)或开关代数。(取值只有0和1)
- 逻辑指事物因果关系的规律。
- 与普通代数比较
- 相似:都是用字母表示变量,用代数式描述客观事物间处的关系。
- 不同:
- 逻辑代数描述客观事物间的逻辑关系,相应的函数称逻辑函数,变量称逻辑变量;
- 逻辑变量和逻辑函数的取值都只有两个,通常用1和0表示;
- 运算规律有很多不同。
- 注意

- 逻辑体制
- 正逻辑体制:规定高电平为逻辑1、低电平为逻辑0
- 负逻辑体制:规定高电平为逻辑0、低电平为逻辑1
- 通常未加说明,则为“正逻辑”体制。
1.2 数制
1.2.1 数制
- 数制:计数进制的简称
- 十进制(Decimal),下标D/10
- 数码:0,1,2,3,4,5,6,7,8,9(0~9,没有10,10是两位表示一个数。0~n-1表示数码,n是进制)
- 进位规律:逢十进一
- 位权:数码所处的位置不同时,所在代表的数值也不同。注意小数点左边第一位是10的0次方。小数点右边第一位是10的-1次方。


- 二进制(Binary),下标B/2
- 数码:0,1
- 进位规律:逢二进一
- 将按位权展开相加,即得对应十进制数。


- 八进制(Octal),下标O/8
- 数码:0、1、2、3、4、5、6、7(数码一共8个,没有8,多了0,逢8进1)
- 进位规律:逢八进一
- 将按位权展开相加,即得对应十进制数。


- 十六进制(Hexadecimal),下标H/16
- 数码:0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
- 字母数码需要变成对应的十进制数,将按位权展开相加,即得对应十进制数。


1.2.2 不同数制间的转换
- 二、八、十六进制转换为十进制
- 按位权展开再求和(位权*数码)
- 注意:小数点左边第一位/整数部分的最低位是0次方

- 十进制转换为二、八、十六进制
- 方法:整数部分采用“除基取余法”,小数部分采用“乘基取整法”
- 注意
- 小数部分“乘基取整法”,取走1后(1.5)那么剩下的就是0,在整数位。接下来处理的是0.5这个数。

【算一下转换为二进制和八进制数】
- 二进制与八、十六进制的相互转换
- 1位八进制数需用3位二进制数表示,1位十六进制数需用4位二进制数表示。
- 二进制→八进制
- 从小数点开始,整数部分向左、小数部分向右,三位一组不足三位的加0补足三位,再按顺序写出各组对应的八进制数。
- 八进制→二进制
- 每位八进制数用三位二进制数代替,再按原顺序排列
- 二进制和十六进制间的相互转换
- 1位十六进制数对应4位二进制数,因此二进制数4位为1组
- 二进制→十六进制
- 从小数点开始,整数部分向左、小数部分向右四位一组,不足四位的加0补足四位,再按顺序写出各组对应的十六进制数。
- 十六进制→二进制
- 每位十六进制数用四位二进制数代替,再按原顺序排列。
- 没有八进制和十六进制之间的快速转换,要通过一个二进制作为中间桥梁





1.3 码制
1.3.1 二进制代码
- 将若干个二进制数码0和1按一定规则排列起来表示某种特定含义的代码称为二进制代码,简称二进制码。
- 用数码的特定组合表示特定信息的过程称编码


- 二-十进制代码
- 将一位十进制数0~9十个数字用四位二进制数表示的代码(BCD码:Binary Coded Decimal)
- 4位二进制码有16种组合,表示0~9十个数可有多种方案,所以BCD码有多种。
- 常用的二-十进制BCD码有
- 8421BCD码:恒权码,取4位自然二进制数的前10种组合。多出来的六种1010到1111这六种就变成了伪码
- 2421BCD码和5421BCD码:恒权码,从高位到低位的权值分别为2、4、2、1和5、4、2、1。
- 余3 BCD码:无权码,比8421BCD 码多余3(0011)。


每一个十进制码变成四位BCD码。
但是十进制数到二进制数是短除法,只有二进制十六进制和八进制数的转换的时候可以快捷以四位一组和三位一组来分析。
- 可靠性代码
- 格雷码
- 后续卡洛图化简,用到的编码就是格雷码。
- 相邻两项只有一位不同,开始的第一个(0000)和最后一个(1000)也只有一位不同。在通信中使用方便,相邻的部分变了两位肯定代码就出错了。提高了传输的可靠性。
- 奇偶校验码
- 组成
- 信息码:需要传送的信息本身
- 1位校验位:取值为0或1,以使整个代码中“1”的个数为奇数或偶数。
- 使“1”的个数为奇数的称奇校验,“1”的个数为偶数的称偶校验


1.4 基本逻辑运算和复合逻辑运算
- 掌握逻辑代数的基本运算和复合运算
- 掌握常用逻辑符号(国家标准)
1.4.1 基本逻辑运算
- 与运算(逻辑乘)
- 决定某一事件的所有条件都具备时,该事件才发生。
- 例子:开关A和开关B是“与”的关系
- 真值表:把输入变量的所有取值的可能性和结果按照自然排列的顺序排列出的一张表
- 逻辑表达式:输出与输入变量的逻辑关系.与运算是表示成Y=AB
- 对应的电子电路→门电路
- 逻辑符号中为&,输入两根线输出一根线


- 或运算(逻辑加)
- 决定某一事件的诸条件中,只要有一个或一个以上具备时,该事件就发生。
- 情况的总数:2^n(n:输入变量的个数)
- 逻辑表达式:Y=A+B
- 注意:1+1=1(1或1=1,之前是普通代数的加法运算,现在是逻辑运算);
- 电子元器件代表:74LS32——或门,74LS08——与门
- 逻辑符号中为≥1,输入两根线输出一根线


- 非运算(逻辑反)
- 决定某一事件的条件满足时,事件不发生;反之事件发生。
- 实现非运算的电路我们称为非门
- 逻辑符号中为1且输出线上有个圈圈代表取反,输入端只有一个
- 非门就是74LS04芯片

1.4.2 复合逻辑运算
由基本逻辑运算组合而成
- 与非运算
- 先与后非
- 逻辑符号中&(与的标志),输出线圈圈表示取反(非的标志)
- 74LS00

- 或非运算(NOR)
- 先或后非
- 逻辑符号中≥1(或的标志),输出线圈圈表示取反(非的标志)

- 异或运算(Exclusive-OR)
- 相同为0,不同为1
- 逻辑符号异或门中为=1,输入端两个,正常一个输出(VS非门中为1,输入端一个且非门输出线上有个取反圈圈)

- 同或运算(Exclusive-NOR,即异或非)
- 相同为1,不同为0(这里防止记错,就只需要记住异或运算的规律相同为0不同为1,同或是异或非)
- 逻辑符号同或门就是在异或门的基础上输出线上加了取反圈

- 与或非运算(AND-OR-INVERT)
- 先与后或再非:四个变量,先将A和B与,C和D与,再将AB和CD或,再将结果非
- 逻辑符号先与&分上下两部分,即代表A和B与,C和D与。(这里发现一样的预算可以分成两部分,但省略重复的符号)
- 然后一起或(≥1),所以只有一部分,最后非即输出线上一个圈圈


同一个电路图不能出现两个标准
1.5 逻辑代数的基本定律及规则
1.5.1 逻辑代数的基本定律
- 常量间的运算
- 变量一般都是用一些字母ABC来表示,取值可能是0可能是1.常量的值固定,为0/1.

- 逻辑变量与常量的运算

加分乘法含0和1的就正常相乘,含有其他系数,就可以把系数去掉了(2倍/平方)
- 与普通代数相似的定律
- 注意特殊的:A+BC=(A+B)(A+C)
- 从左往右记忆:A=A*A,放在两个括号的左边,BC=B*C放在两个括号的右边
- 从右往左记忆:A*A=A,B*C=BC中间相加。这里不能记为分配律了,我们观察分配律是单*多。

- 摩根定理(也就是非号去除定理)

- 逻辑表达式的证明
- 真值表法
- 注意公式法的证明!!!

1.5.2 逻辑代数的常用公式
- 吸收律
- 前两个式子从左往右运算,可以直接算,不用记
- 前两个式子从右往左运算
- 也就是A=A*1,本质上就是1的变换
- 1=任意字母+字母反
- 1=1+B+C+D……
- 第三个式子
- 从左往右:
- A+A’B=A+AB+A’B=A+(A+A’)B=A+B

这个项A’B叫做与项,遇到一个与项里面有反变量,那么直接把这个划过去就行。
- 冗余律


注意:必须是A*…+A’*。。。+…*。。。

A是原变量,A非是反变量,大非号的作用结果是然后剩下的变量各自取反保留中间的或符号得结果。
这里还有个点,异或:AB’+A’B;异或取反就是同或,如其名:同并然后或,即A’B’+AB
- 关于异或运算的一些公式

1.5.3 逻辑代数的基本规则
- 代入规则
- 将逻辑等式两边的某一变量均用同一个逻辑函数替代,等式仍然成立。
- 回忆这个式子,就是前面讲到的当与项里面如果有一个反项,那么结果就是划去与项中反的那一项

- 反演规则(求反函数)
- 对于任何一个逻辑函数Y,将Y当中所有的"·"(与号)换成"+"(或号),"+"换成"·",0换成1,1换成0,原变量换成反变量,反变量换成原变量,这样就可以得到原函数Y的反函数Y'。
- 注意
- 变换时不能改变原来表达式的运算顺序
- 原变量变反变量、反变量变原变量只对于单个变量有效,而对于"长非号"(两个变量或两个以上变量共有的那个非号)应该保持不变
- 例子1
- 原运算顺序是:(B + C)'的优先级最高,因为它上边有个非号,先算(B + C)',再和A进行与运算;右边的 C·D 也是与运算;或的优先级最低。
- A变成A',B和C是原变量要变成反变量B'、C'。与号变或号,或号变与号,大非号不变。C和D变成C'、D’。
- 如果直接这样写,运算顺序和原来不一样。原来大非号之后是先跟A进行与运算,但由于或号的优先级低于与号,所以应该把A'跟这个大非号或的部分括起来。同样,C'D'的优先级也要高过或运算,所以也得把C' + D'括起来。考试的时候写到这一步就可以了,因为需要看到变化过程。
- 例子2
- 两个长非号都不变,A变成 A',B'变成 B,C变成 C',D变成 D’,与变或,或变与。
- 考虑到运算顺序,原来是A、B先与,所以反函数中A'跟B应该先运算,要加括号。这就是反演规则
- 用于求一个反函数。反函数可以用前面的摩根定律求,也可以用反演规则来求。


- 对偶规则
- 对于一个逻辑函数Y,将式中所有的"·"变"+","+"变"·",0变1,1变0,则得到原逻辑函数的对偶式Y‘。
- 与反演规则不同点:对偶规则不需要把变量变成反变量,反变量也不用变成原变量。
- 注意
- 不能改变原来的运算顺序
- 变量上边的非号全部不改变,不分长非号短非号
- 对偶规则可以将基本公式和定律扩展一倍


1.6 逻辑函数的表示方法及其转换
1.6.1 逻辑函数的建立

- 根据题目要求建立真值表
- 方法:找出输入变量和输出函数,对它们的取值作出逻辑规定,然后根据逻辑关系列出真值表。
- 首先找到输入变量(开关A和B)和输出变量(灯Y)。规定开关打到左侧为0状态,打到右侧为1状态。Y表示灯,灯亮为1,灯灭为0。两个开关打到同一侧时灯才会亮(构成回路)。

- 根据真值表写出逻辑表达式
- 根据真值表我们可以发现:这是一个"相同为1,不同为0"的同或关系,Y = A⊙B = AB + A'B',也可以写成异或的非:(A⊕B)'。[异或就是不同为1]
- 根据逻辑表达式画出逻辑图
- 按AB + A'B'表达式,需要两个与门、两个非门和一个或门。
- 如果采用同或表达式,只需要一个异或门和一个非门,或者直接用同或门(如CD4077)实现。
- 设计逻辑电路的基本原则应该是使电路最简。AB + A'B'和A⊙B是相等的,但后者更简,应该选用右边这个电路来实现。



1.6.2 逻辑函数的表示
- 逻辑函数
- 用来描述数字逻辑系统输出与输入变量之间逻辑关系的表达式,一般写成 Y = F(A,B,C)的形式,其中A、B、C代表输入变量,Y代表输出变量,F代表某种逻辑关系。
- 逻辑函数由与、或、非三种基本逻辑运算构成
- 一般采用逻辑表达式、真值表、卡诺图、逻辑图和波形图来表示。
- 逻辑表达式
- 表示输出函数和输入变量逻辑关系的表达式,称逻辑表达式,简称逻辑式。逻辑表达式一般根据真值表、卡诺图或逻辑图写出。
- (1)常见表示形式
- 与或表达式:Y = ABC + B'C,先与后或,化简通常会化成与或表达式
- 或与表达式:Y = (A + B)(B' + C),用得较少
- 与非与非表达式:Y = (ABC)'(B'C)',可以节省芯片种类,只用与非门和非门即可实现
- 或非或非表达式:用得较少
- 与或非表达式:用得较少
- 四个形式都能相互转换。
- 与或表达式转换成与非与非表达式
- 口诀:两次取反"。对与或表达式画两条横线,然后化简下边那个非号(用摩根定律),保留上面大非号。
- (2)逻辑函数的标准表达式
- 最小项的定义
- 在逻辑函数中,如果一个与项(乘积项)包含了该逻辑函数的全部变量,且每个变量以原变量或反变量的形式只出现一次,则该与项称为最小项。
- 最小项的两个条件
- 包含全部变量
- 每个变量只能出现一次
- 最小项的数目
- 对于有N个变量的逻辑函数,就有2^N个最小项。
- eg:两个变量有4个最小项,三个变量有8个最小项,四个变量有16个最小项。这里的4、8、16只是针对于变量的数目,而不是针对于取值的数目。然后每个取值的8个最小项里面只有一个为1的最小项。
- 以三个变量A、B、C为例,八种取值组合000到111对应的最小项分别为:A'B'C'、A'B'C、A'BC'、A'BC、AB'C'、AB'C、ABC'、ABC。
- 最小项的性质
- 对于变量的任意一组取值,只有一个最小项的值为1,其他全部为0
- 不同的最小项使其值为1的变量取值不同
- 对于变量的同一组取值,任意两个最小项相与的结果为0
- 对于变量的同一组取值,全部最小项逻辑或的结果为1
- 最小项的编号
- 最小项一般用mi表示,i用十进制数作为下标。i的确定方法是:将最小项中的原变量写成1,反变量写成0,得到一组二进制数,再把这组二进制数转换成对应的十进制数。
- 最小项A'BC:A'是反变量写成0,B和C是原变量写成1,得到011,转换成十进制数是3,所以该最小项记为m₃。
- 反过来,m₅对应十进制数5,转换成二进制是101,原变量用1表示,反变量用0表示,所以m₅对应的最小项是AB'C。
- 000 → A'B'C' → m₀
- 001 → A'B'C → m₁
- 010 → A'BC' → m₂
- 011 → A'BC → m₃
- 100 → AB'C' → m₄
- 101 → AB'C → m₅
- 110 → ABC' → m₆
- 111 → ABC → m₇
- 最小项表达式(标准与或表达式)
- 标准与或表达式就是最小项之和。任何逻辑函数都是由变量的若干个最小项构成的,所以任何逻辑函数都可以表示成最小项之和的形式,并且这种形式是唯一的。
- 如果逻辑式不是最小项(标准式),可以通过乘以(A' + A)的形式补充缺少的变量,将逻辑函数变成最小项之和的形式。
- 例子
- 例如函数Y=F(A,B,C) = AB + A'C,两项都不是最小项因为都没有包含所有的三个变量。AB缺C,乘以(C' + C);A'C缺B,乘以(B' + B)。展开后得到:ABC' + ABC + A'B'C + A'BC。
- 根据mi转换,对应下标为6、7、1、3,所以标准与或表达式为m₁ + m₃ + m₆ + m₇,也可以写成Σm(1,3,6,7)。





三个变量逻辑函数的最小项编号表:注意这里直接根据ABC的取值写最小项就可以了。将输入变量取值为1的代以原变量取值为0的代以反变量则得相应最小项。

- 真值表
- 真值表的组成首先要列出输入变量的各种取值组合。有N个输入变量就应该有2^N种取值组合,要从小到大列写出来(避免重复和遗漏),然后把对应的输出逻辑函数值列写在表格里。
- 真值表能够直观反映输出与输入变量之间的逻辑关系,在分析和设计数字电路(第三章组合逻辑电路和第五章时序逻辑电路)时都要列写真值表。
- 列真值表的方法
- 按N位二进制数递增的方式,从小到大列写所有取值组合
- 分别求出各种组合对应的输出函数值,填入表格
- 例题:列写逻辑函数Y = AB + (CD)'的真值表。
- 首先确定有4个逻辑变量A、B、C、D,有2⁴ = 16种取值组合。最上面一行写输入变量A、B、C、D和输出函数Y。下面从0000到1111从小到大列出16种组合,不能错漏。
- 然后一组一组代入逻辑函数:
- 0000:A=0,B=0 → AB=0;C=0,D=0 → CD=0 → (CD)'=1;0+1=1,所以Y=1
- 0001:AB=0,CD=0 → (CD)'=1 → Y=1
- ...
- 0011:C=1,D=1 → CD=1 → (CD)'=0;AB=0 → Y=0
- 分析逻辑功能:输出变量和组合的关系
- 找出规律:只要CD=11(无论AB为何值)或AB=11(无论CD为何值),Y都为0;其他情况Y为1。
- 由真值表求逻辑表达式
- step1:找出函数值为1的项
- step2:这些项中取值为1的用原变量代替,取值为0的用反变量代替,得到一系列的与项(最小项)
- step3:把这些与项相加(相或)得到输出表达式
- 第一行000:取值为0用反变量表示,得到A'B'C'。第二行111:取值为1用原变量表示,得到ABC。把这两个与项相加:Y = A'B'C' + ABC。如果011这一行也为1,则变量组合011中A取0为A',B取1为B,C取1为C,得到A'BC,加到结果中:Y = A'B'C' + ABC + A'BC。


- 逻辑图
- 逻辑图由逻辑符号和相应的连线构成,是跟实际电路最接近的一种图。要搭建具体逻辑电路,都要先画出逻辑图。
- 逻辑图一般根据逻辑式画出,将各级逻辑运算用相应的门电路实现。(真值表→逻辑式—>逻辑图)
- 由逻辑表达式画逻辑图
- 根据逻辑式看有几部分,每一部分是什么运算,用相应门电路实现。
- 例题:画出Y = A'B'C' + ABC的逻辑图。
- 输入变量是三个A、B、C,需要得到A'、B'、C',所以要用三个非门。得到反变量后分别相与,所以要用两个与门。两个与的结果要相或,所以用一个或门。共需要三级电路:先非,后与,再或。
- 具体画法:A、B、C引出三根线,一路直接到三输入端与门实现ABC;另一路分别经非门(只有一个输入)得到A'、B'、C',再经三输入与门实现A'B'C'。两个与门输出到一个或门,最后得到Y。
- 硬件实现
- 非门:74LS04芯片,有6个非门,用其中3个
- 与门:74LS08芯片,有4个与门,用其中2个
- 或门:74LS32芯片,有4个或门,用其中1个
- 输入信号A、B、C通过电子开关(正5伏接电阻再接开关)得到高低电平,输出Y接到指示灯观察亮灭。把A、B、C的8种取值和灯的亮灭列在一起,与真值表对比验证。

- 波形图
- 逻辑函数的第四种描述方法是波形图。波形图将输入变量和对应的输出变量随时间变化的波形画出来,可以直观看出它们随时间变化的规律。
- 画波形图时要注意:横坐标代表时间轴,纵坐标是变量取值(只有0和1,图中一般不标坐标轴)。输入和输出信号的对应关系一定要画出来,在竖直方向有对应关系。不能画在同一水平线上,也不能只画输出波形不画输入波 形。
- 由波形图写逻辑表达式
- 使用真值表作为桥梁
- 例题:已知A、B波形,求Y表达式。
- 画出辅助线,在电平跳变处画竖线将波形分成若干区间
- 每个区间观察A、B、Y的电平值,填入真值表
- 找到函数值为1的组合,写出对应与项
- 将与项相加得到逻辑表达式
- 由逻辑表达式画波形图
- 先列出真值表,三个变量有8种组合:000到111,代入Y = AB + BC得到Y.
- 然后在波形图输入信号跳变处画辅助线,分成若干区间,每个区间看A、B、C取值,对照真值表确定Y值,这样画出Y的波形。
- 中间可以先用铅笔标注0、1,最后擦掉得到清晰的波形图。无论是波形图到逻辑表达式,还是逻辑表达式到波形图,中间都列写真值表作为桥梁,这种方法不容易出错。




1.7 逻辑函数的化简
1.7.1 逻辑函数式化简的意义与标准
- 化简逻辑函数的意义
- 使逻辑式最简,以便设计出最简的逻辑电路,从而节省元器件、优化生产工艺、降低成本和提高系统可靠性。

不同形式逻辑式有不同的最简式,一般先求取最简与或式,然后通过变换得到所需最简式。
- 最简与或式
- 乘积项(即与项)的个数最少,使与门个数最少。(一个与项对应一个与门)
- 每个乘积项中的变量数最少,使与门的输入端数最少。
- 最简与非-与非式
- 与或式两次取反,化简下面的非号,上面的非号保留得到与非与非式。
- 非号个数最少,使与非门个数最少
- 每个非号中的变量数最少,使与非门的输入端数最少
1.7.2 逻辑函数的公式化简法
公式化简需要运用逻辑代数的基本定律和常用公式。前面学到的基本定律很多:零一律、交换律、结合律、分配律、互补律、重叠律、摩根定律等,还有几条常用公式。学到这一节时,要把前面的定律回顾并且熟悉,因为化简时脑海里要很快反映出来该用哪条公式。
(回顾1.5的内容)
- 并项法
- Y1:运用 AB + AB' = A,可以把两项合并成一项,消去一个变量。用的是互补律:A + A' = 1。
- Y2:这里BC + B'C'是同或,BC' + B'C是异或。同或刚好是异或的非,可以写成(BC' + B'C)'。把BC' + B'C看作整体, 所以最终结果等于A。


- 吸收法
- 运用 A + AB = A 和 AB + A'C + BC = AB + A'C(BC是冗余项)。
- 冗余项的判断:前面两个与项中有一个是原变量,一个是反变量,剩余的因子构成第三项,那么这一项就是冗余项。
- 合并不了的时候就考虑拆开。是否考虑最后结果的化简,则需要考虑具体电路实现的简单。比如说A’+B’(两个非门,一个与门),如果化简为(AB)’,找一个与非门就可以了。






法二:从后面三项向前消去

判断两个逻辑函数是否相等:真值表,如果真值表都一样,那么说明两个逻辑函数相等
- 消去法
- 运用A + A‘B = A + B 或 A’ + AB = A‘+ B,消去多余因子


- 配项法
- 配项就是配一个1,这个1可以写成A + A',也可以写成B + B',C + C'。利用AB + ABC = AB + ABC + BC,增加冗余项可能有助于化简。
- 注意这里的思路:先找公共项,AB和AC’D提取A,B’C’和AC’D提取C’。这里拼凑是凑着出来的。
- 没有化简之前,其实这里是两个异或。但是使用公式法不能够确定是不是最简。这里的思路是研究的二四项数,然后增加一个冗余项。



同样的研究一三项,增加冗余项也是可以的。再次可以发现逻辑函数的化简结果也不唯一。

思路:一开始能不能找到公共部分,然后能不能或为1,不能合能不能拆,需不需要添加冗余项。
- 综合应用

注意;自己这里不熟练的是A+A’C消去A’这一步

注意:增添的冗余项后面如果在其他结合过程中没被消去,需要我们再手动消去
1.7.3 逻辑函数的卡诺图化简
公式化简法有些逻辑函数的化简结果是否为最简很难判断,可能不知道是否已经到了最简。图形法化简要么不用,一用就肯定是最简,这是卡诺图化简的最大优势。卡诺图化简的结果是最简的,所以可以通过卡诺图检验公式化简法的结果是否为最简。
- 1、最小卡诺图的组成
- 相邻最小项
- 相邻最小项指相邻的两个最小项只有一个变量互为反变量,其余变量均相同。
- 两个相邻最小项相加可以合并为一项,消去那个互为反变量的变量。
- 卡诺图的组成
- N个变量就有2^N个最小项,每个最小项都用一个小方格表示
- 卡诺图必须按循环码(格雷码)的编码顺序排列,只有这样排,相邻最小项才能满足要求:使相邻最小项在几何位置上相邻,也循环相邻
- 两变量卡诺图
- 两个变量有4个最小项,用4个小方格表示。画一个正方形分成4等分,左上角画斜线标变量A、B(一般是顺时针读写)。横向和纵向标上取值0、1。排列顺序必须是00、01、11、10(循环码,按照反射码来推导的),不能随意排列。
- 这里推到反射码是:一个变量的反射码(黑色),平面镜之后,上面补0,下面补充1.最后得到反射码顺序为:00,01,11,10。
- 每一个方格是一个最小项,变量取0的代以反变量,取1的代以原变量。同样的用mi来确定。在卡诺图里面有更简单的记忆方法:从上到下从左到右分别是0123
- 三变量卡诺图
- 三个变量有8个最小项,用8个小方格表示。画两行四列,左下角标变量A(负责2行),右上角标BC(负责4列)。横向来画。BC的排列顺序是00、01、11、10(循环码),不是00、01、10、11。A的取值0、1负责两行。【如果是纵向来画,就应该四行,两个字母】
- 同样的相邻只有一位不同,满足相邻最小项。
- 推到反射码:循环码可以从两变量推导:将两变量的循环码00、01、11、10放在平面镜上方,下方对称得到10、11、01、00,上方补0,下方补1,得到三变量循环码:000、001、011、010、110、111、101、100。
- 四变量卡诺图
- 四个变量有16个最小项,用16个小方格表示。正方形分成16格,左下角标AB(负责行),右上角标CD(负责列)。AB和CD的排列顺序都是00、01、11、10(循环码)。循环码顺序以保证相邻性。
- 四变量循环码可以从三变量推导:将三变量循环码放在平面镜上方,下方对称得到1000、1001、1011、1010、0100、0101、0111、0110、0000,上方补0,下方补1。
- 卡诺图中的相邻项(几何相邻)
- 紧挨着的两个方格只有一个不同
- 同一行的两端
- 同一列的两端
- 相邻就可以合并,消去互为反变量的那个变量。画卡诺圈时,同一行或同一列两端的圈最好用不同颜色的笔画出来,虽然看起来分离,但实际上是相邻的。
- 练习
- 已知最小项如何找相应小方格
- A'B'C'D,原变量取1,反变量取0,得到1001。AB负责行,AB=10是第四行;CD负责列,CD=01是第二列,交集就是对应方格。
- 已知小方格写对应最小项
- 某个方格,看它的AB取值01,CD取值11,得到二进制0111,0用反变量,1用原变量,所以是A'BC'D。




使用m表示

省略m(0132,4576)




- 2、用卡诺图表示逻辑函数
- 卡诺图是逻辑函数的图形化表示方法,图中每个小方格对应一个最小项。
- 基本步骤
- 求逻辑函数的真值表、标准或一般与或式。
- 标准与或式:最小项之和。一般与或式:含有非最小项
- 根据变量的个数画出变量卡诺图
- 两个变量画出4个方格的卡诺图,三个变量对应8个格子的卡诺图,四个变量画出16个格子的卡诺图
- 根据真值表、标准或一般与或式填卡诺图。
- 行列标注必须遵循循环码顺序(00→01→11→10),保证相邻格只有一个变量不同
- 左侧标注AB变量,上方标注CD变量,斜线分隔
- 例子1:由真值表填入
- 确定变量个数,画出空白卡诺图:这里3个变量,对应8格。左侧标注A,右侧标注BC,以斜线分隔。记住我们2*4卡诺图的m代码是:0132,4576
- 在真值表中找出Y=1的最小项,将每组变量取值转换为二进制数,再转为十进制数,对应m_i编号,在卡诺图对应方格里面填入1,其余不填(0通常省略)
- 例子2:标准与或式填入
- 标准与或式即最小项之和,形式为Σm(0,2,4,6):
- 画出对应变量的卡诺图(00,01,11,10 )
- 直接将编号对应的最小项方格填"1"
- 其余方格留空
- 注意我们的四个变量16个小方格(4*4):这里不用强行记忆,我们记得循环码的排列要求:00,01,11,10.可以先在小角落用铅笔写出对应的mi的i取值,填值后擦去。
- 例子3:一般与或式填入(非标准式)
- 分析:这三个与项肯定不是最小项,因为最小项必须包含所有变量,且只出现一次。所以为非标准与或式。
- 该逻辑函数为非标准与或式 一“找交集”:逐项分析每个与项的变量取值
- AB项:AB=11对应第三行,该行4格全部填1
- A’D项:A‘=0对应第一、二行,D=1对应第二、三列,交集为4格填1
- BC’D项:B=1,C=0,D=1,交集为1
- 逐项填入后,重叠格只保留一个"1"(1+1=1)
- 注意
- ABCD原变量=1,反变量=0
- 如果只限定同一侧,另一侧不受限制,那么另一侧就是全覆盖,所以交集是一行或者一列:比如AB=11,那么对应第三行,另一侧CD不作限制,那么就是4列全覆盖,交集就是一行:1111。如果只限制CD=11,那么就是第三列全为1。





- 3、用卡诺图化简逻辑函数
- 化简依据
- 利用卡诺图的相邻性,对相邻最小项进行合并(相或就是1),消去互反变量以达到化简的目的。
- 化简规律
- 2个小方块相邻(包括处于同一行或同一列的两端)有1个变量相异,相加可以消去1个变量,合并成一项。【2个相邻格:消去1个变量】
- 合并口诀:消异存同。
- 对应卡诺圈内所有的变量取值不同时,消去该变量;相同时则保留该变量。
- 当取值为0时保留为反变量,取值为1时保留为原变量。
- 以该图为例:两个1对应的A都是0,相同,那么则保留,且保留成反变量A‘.两个B对应的B都是0,相同保留,且保留为反变量B’。对应的C一个为0,一个为1,不同消去。所以化简结果是A’B’。
- 2个小方块相邻:处于同一行或同一列的两端
- 画一半就行,而不能直接圈完,因为卡诺圈里面的所有格子都要为1
- 同样的规律:消异存同
- 注意:两个小方块就只能消去一个变量,不能因为有四个变量就开始乱消除
- 4个小方块组成一个大方块,或组成同一行/列,或组成两行/列的两端,或处于四角,可以合并,消去2个变量。
- 同样的规律:消异存同
- 第一个图:第一行的两个1对应A取值为0,第二行的两个1对应A取值为0,保留为A’。第一行的两个1对应B取值为0,第二行的两个1对应B取值为1,不同,消去。第一列的两个1,对应C为0,第二行的两个1对应C为0,相同保留为C’。第一列两个1对应D为0,第二列对应的两个1的D对应1,不同消去。结果为A’C’
- 第二个图:AB限制为01,即A’B。CD全覆盖,则为1(省略).结果为A’B
- 第三个图:第二行和第三行A不同,B相同为1,则保留B.第一列第四列C不同,D相同为0,则保留D’,结果为BD’
- 第四个图:第一行第四行结婚消掉A,保留B’.对应两列消去C,保留D’.结果为B’D’
- 8个小方块组成两行/列,或组成两边的两行/列,可以合并,消去3个变量。





- 4、卡诺图化简法步骤
- 因为圈越大,消去的项就越多,门输入端就最小。要么2个1,4个1,8个1(符合要求)的合并。
- 所有先是c这个圈,然后是d这个圈,然后是b这个圈,单独的1独立成圈
- 当最大那个圈4个1都被其他圈共用了,找不到没有被其他圈圈过的1个1,那么这个圈将无效






画圈后必须验证每个圈至少有一个独占"1",否则该圈不成立。
以图2为例子,第一行的4个1的圈没有独占的1,那么该圈不成立。其他圈里面都存在独立的1(尤其是这种在两侧的记得看成一个完整的圈)
注意:是否漏掉两侧的。以图4为例,第一次就漏掉了两侧的8个1

- (5)特殊情况
- 最后一行的1和最右边那个1画圈,而不是和上面那个1画圈。不然就是5/6个圈了。
- 逻辑结果的化简结果不唯一
- 某些卡诺图存在多种正确圈法,结果形式不同但逻辑等价。例如两个"1"可横连也可竖连,只要圈数相同且满足规则,结果都正确。
- 圈零法
- 当0的个数远少于1且相邻时,可圈"0"求Y‘,再取反得Y。此方法较少用,仅适用于特定情况。



总结:
(1)画卡诺图
(2)填卡诺图
(3)画卡诺圈
(4)检查卡诺圈
(5)根据规律消去并相加
1.7.4 具有约束的逻辑函数的化简
- (1)约束项和约束条件
- 约束项:真值表中不可能出现的变量组合对应的最小项
- 约束项:上例中011、101、110、111不会出现的变量组合对应的最小项:A’BC、AB‘C、AB’C、ABC(1用原变量,0用反变量)
- 如8421BCD码中只用了前面9种,1010-1111对应的6个最小项。约束项恒为0。
- 约束条件
- 所有约束项之和,形式为Σd(约束项编号)=0,或简化为一般表达式.
- 表示方法
- 卡诺图/真值表中:用"×"表示
- 表达式中:用d或m_d表示,如Σd(3,5,6,7)=0


- (2)利用约束项/约束条件化简逻辑函数
- 由于约束项的值恒为0,将这些为0的最小项加入到逻辑函数与或式中,或者不加进去,都不会影响函数的值。化简时应视需要将约束项方格看作1或0,使圈最少而且最大,从而使结果最简。
- 核心原则:约束项可0可1,视是否有利于化简而定。
- 有利时视为1:将"×"当作"1"圈入,扩大圈的范围
- 不利时视为0:忽略"×",按原"1"格化简
- 画圈要求:圈内可包含"×",但必须至少有一个真实"1"作为独占格
- 判断标准:
- 若圈"×"能减少圈数或增大圈的范围→有利
- 若圈"×"导致圈数增加→不利


- (4)典型例题示范
- 注意
- 那个黑色的圈不成立,因为我们需要使得圈个数最少,本来可以三个圈就完成,那么就不需要4个圈。
- 画圈要把所有“1”圈完,但不是把“X”也圈完!
- 还有每个圈内都至少要有一个独立的1


最小项和约束项都是非标准形式→每项验证找交叉


1.8 总结














- 作者:Sparkle_Yuyu
- 链接:https://imyuyu.top/article/DigLogic/Chapter1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
