数字电路基础(二)逻辑代数
数字电路基础(二)逻辑代数
一、逻辑变量和逻辑函数
熟悉计算机编程语言的同学应该了解,在很多编程中存在一种布尔变量,它有且只有两个值真和假(True和False,有时也使用1和0)。布尔变量本身实际上可以算是一种逻辑变量,符合逻辑变量的特点。在给定确定的输入时,通常输出可以被唯一地确定。
我们假设有两个输入 A A A和 B B B,有一个输出 F F F,它们之间的逻辑表达式满足 F = f ( A , B ) F=f(A,B) F=f(A,B),其中 A , B , F A,B,F A,B,F被称为逻辑变量,变量 A A A和 B B B称为逻辑自变量, F F F被称为逻辑因变量(也称作逻辑函数)。逻辑变量通常只取0或1两个值,他可以在电路中来表示,电平的高与低,开关的断开与连接等状态。
在逻辑电路中,高低电平的定义并不只是唯一的值来确定,它们都是一定的定压范围。例如:在TTL电路中,高电平通常为2-5V,低电平通常为0-0.8V
二、基本逻辑运算和基本逻辑门
在逻辑电路中有三种基本的逻辑运算:逻辑与,逻辑或,逻辑非。而用来实现这三种逻辑运算的电路分别为与门,或门,非门。下面分别介绍这三种逻辑运算及门电路。
1.逻辑与
逻辑与是指在决定一个事件的全部条件都成立时,这个事件才会发生。如下图所示电路展示了用开关控制的电路如何实现与运算:
只有当S1和S2两个开关同时闭合时,灯泡L才会亮;若其中有任意一个开关断开,则灯泡L不会亮。
将 A A A, B B B, F F F的所有状态列在一个表中,此表称为真值表,如下表所示:
从真值表可以看出与运算和算术中的乘法相似,故逻辑与也叫做逻辑乘
F = A ⋅ B = A B F=A \cdot B=AB F=A⋅B=AB
逻辑与有如下几种运算:
0 ⋅ 0 = 0 , 0 ⋅ 1 = 0 , 1 ⋅ 0 = 0 , 1 ⋅ 1 = 1 0\cdot 0=0,0\cdot 1=0,1\cdot0=0,1\cdot1=1 0⋅0=0,0⋅1=0,1⋅0=0,1⋅1=1
逻辑与的符号如下图所示
2.逻辑或
逻辑与是指在决定一个事件的全部条件中,只要有任意一个条件满足,事件就会发生。如下图所示的电路中展示了用开关控制的电路如何实现或运算:
当S1和S2中任何一个开关闭合时,灯L都会亮;若两个开关全部断开,则灯L不会亮。
或门的真值表如下图所示:
从真值表可以看出或运算和算术中的加法相似,故逻辑或也叫做逻辑加
F = A + B F=A + B F=A+B
逻辑与有如下几种运算:
0 + 0 = 0 , 0 + 1 = 1 , 1 + 0 = 1 , 1 + 1 = 1 0 + 0=0,0 + 1=1,1+0=1,1+1=1 0+0=0,0+1=1,1+0=1,1+1=1
逻辑与的符号如下图所示:
3.逻辑非
逻辑非是指在条件满足的情况下,事件不发生;条件不满足的情况下,事件发生。如下如所示的电路中展示了用开关控制电路如何实现非运算:
当开关S断开时,电源、电阻R和灯泡L形成通路,灯泡点亮;当开关S闭合时,灯泡L被开关S短路,灯泡不亮。
非门的真值表如下图所示:
其表达式为:
F = A ‾ F=\overline{A} F=A
非运算规则为:
0 ‾ = 1 , 1 ‾ = 0 \overline{0}=1,\overline{1}=0 0=1,1=0
4.复合逻辑运算
(1)与非运算
逻辑表达式为: F = A B ‾ F=\overline{AB} F=AB,它是由逻辑变量先做与运算,再做非运算得到的,逻辑符号如下图所示:
(2) 或非运算
逻辑表达式为: F = A + B ‾ F=\overline{A+B} F=A+B,它是由逻辑变量先做或运算,再做非运算得到的,逻辑符号如下图所示:
(3) 与或非运算
逻辑表达式为: F = A B + C D ‾ F=\overline{AB+CD} F=AB+CD,它是由逻辑变量先做与运算,再做或运算,最后做非运算得到的,逻辑符号如下图所示:
(4)异或运算
逻辑表达式为: F = A B ‾ + A ‾ B = A ⊕ B F=A\overline{B}+\overline{A}B=A\oplus B F=AB+AB=A⊕B. 异或运算规则是:当输入的两个逻辑变量相同时,则输出为0;当输入的两个逻辑变量不同时,则输出为1。逻辑符号如下图所示:
(5)同或运算
逻辑表达式为: F = A B + A B ‾ = A ⊙ B F=AB+\overline{AB}=A\odot B F=AB+AB=A⊙B. 同或运算规则是:当输入的两个逻辑变量相同时,则输出为1;当输入的两个逻辑变量不同时,则输出为0。逻辑符号如下图所示:
三、逻辑代数基本公式和常用公式
1.基本公式
(1)0-1律 A ⋅ 0 = 0 A\cdot 0=0 A⋅0=0 A + 1 = 1 A+1=1 A+1=1
(2)自等律 A ⋅ 1 = A A\cdot 1=A A⋅1=A A + 0 = A A+0=A A+0=A
(3)重叠律 A ⋅ A = A A\cdot A=A A⋅A=A A + A = A A+A=A A+A=A
(4)互补律 A ⋅ A ‾ = 0 A\cdot \overline{A}=0 A⋅A=0 A + A ‾ = 1 A+ \overline{A}=1 A+A=1
(5)交换律 A ⋅ B = B ⋅ A A\cdot B=B\cdot A A⋅B=B⋅A A + B = B + A A+B=B+A A+B=B+A
(6)结合律 A ⋅ ( B ⋅ C ) = ( A ⋅ B ) ⋅ C A\cdot(B\cdot C)=(A\cdot B)\cdot C A⋅(B⋅C)=(A⋅B)⋅C
A + ( B + C ) = ( A + B ) + C A+(B+C)=(A+B)+C A+(B+C)=(A+B)+C
(7)分配率 A ⋅ ( B + C ) = A B + A C A\cdot(B+C)=AB+AC A⋅(B+C)=AB+AC
A + ( B + C ) = ( A + B ) ( A + C ) A+(B+C)=(A+B)(A+C) A+(B+C)=(A+B)(A+C)
(8)吸收率 A ⋅ ( A + B ) = A A\cdot(A+B)=A A⋅(A+B)=A A + A B = A A+AB=A A+AB=A
(9)反演律 A B ‾ = A ‾ + B ‾ \overline{AB}=\overline{A}+\overline{B} AB=A+B A + B ‾ = A ‾ ⋅ B ‾ \overline{A+B}=\overline{A}\cdot \overline{B} A+B=A⋅B
(10)双重否定率 A ‾ ‾ = A \overline{\overline{A}} = A A=A
反演律是其中使用较多的,在化简逻辑表达式时有重要作用
2.基本规则
(1)代入规则
在任何一个逻辑等式中,如果将等式两边所有出现过的变量都使用一个逻辑函数替代,则此等式仍然成立。
例如: A ⋅ B ‾ = A ‾ + B ‾ \overline{A\cdot B}=\overline{A}+\overline{B} A⋅B=A+B中的 A A A使用 F = A C F=AC F=AC替代,则原式变为: A C ⋅ B ‾ = A C ‾ + B ‾ = A ‾ + B ‾ + C ‾ \overline{AC\cdot B}=\overline{AC}+\overline{B}=\overline{A}+\overline{B}+\overline{C} AC⋅B=AC+B=A+B+C.依然成立。
(2)反演规则
当我们需要求解一个逻辑函数 F F F的反函数 F ‾ \overline{F} F时,可以使用反演规则。
只需要将 F F F中的
⋅ 变 为 + , + 变 为 ⋅ , 1 变 为 0 , 0 变 为 1 , 变 量 取 反 \cdot变为+, +变为\cdot ,1变为0 ,0变为1,变量取反 ⋅变为+,+变为⋅,1变为0,0变为1,变量取反
即可.
需要注意的是:变更反变量时,有两个变量以上公用的取反号不变
例如:求 F = A + B + C ‾ + D + E ‾ ‾ ‾ + ( G ⋅ H ) F=A+\overline{B+ \overline{C} +\overline{D+\overline{ E}}}+(G\cdot H) F=A+B+C+D+E+(G⋅H)的反函数
F ‾ = A ‾ ⋅ B ‾ ⋅ C ⋅ D ‾ ⋅ E ‾ ‾ ⋅ ( G ‾ + H ‾ ) \overline{F}=\overline{A}\cdot \overline{\overline{B}\cdot C \cdot \overline{\overline{D}\cdot E}}\cdot (\overline{G}+\overline{H}) F=A⋅B⋅C⋅D⋅E⋅(G+H)
(3)对偶规则
当我们需要求解一个逻辑函数 F F F的对偶式 F ′ F' F′时,
只需要将 F F F中的
⋅ 变 为 + , + 变 为 ⋅ , 1 变 为 0 , 0 变 为 1 \cdot变为+, +变为\cdot ,1变为0 ,0变为1 ⋅变为+,+变为⋅,1变为0,0变为1
即可.
两个逻辑函数相等 ⇔ \Leftrightarrow ⇔两个逻辑函数的对偶式相等(充分必要条件)
例如:求 F = A ⋅ B + A ‾ ⋅ C + B ⋅ C F=A\cdot B+\overline{A}\cdot C+B\cdot C F=A⋅B+A⋅C+B⋅C的对偶式
F ′ = ( A + B ) ⋅ ( A ‾ + C ) ⋅ ( B + C ) F'=(A+B)\cdot (\overline{A}+C) \cdot (B+C) F′=(A+B)⋅(A+C)⋅(B+C)
3.常用公式
公式1 A B + A B ‾ = A AB+A\overline{B}=A AB+AB=A
证明: A B + A B ‾ = A ( B + B ‾ ) = A AB+A\overline{B}=A(B+\overline{B})=A AB+AB=A(B+B)=A
公式2 A + A B ‾ = A + B A+A\overline{B}=A+B A+AB=A+B
证明: A + A ‾ B = ( A + A ‾ ) ⋅ ( A + B ) = A + B A+\overline{A}B=(A+\overline{A})\cdot (A+B)=A+B A+AB=(A+A)⋅(A+B)=A+B
公式3 A B + A ‾ C + B C = A B + A ‾ C AB+\overline{A}C+BC=AB+\overline{A}C AB+AC+BC=AB+AC
证明: A B + A ‾ C + B C = A B + A ‾ C + B C ( A + A ‾ ) = A B + A ‾ C + A B C + A ‾ B C = A B + A ‾ C AB+\overline{A}C+BC=AB+\overline{A}C+BC(A+\overline{A})=AB+\overline{A}C+ABC+\overline{A}BC=AB+\overline{A}C AB+AC+BC=AB+AC+BC(A+A)=AB+AC+ABC+ABC=AB+AC
公式4 A B + A ‾ C ‾ = A B ‾ + A ‾ C ‾ \overline{AB+\overline{A}C}=A\overline{B}+\overline{A}\overline{C} AB+AC=AB+AC
证明: 略
公式5 A ⊕ B ‾ = A ⊙ B \overline{A\oplus B}=A\odot B A⊕B=A⊙B
证明: 略
四、简单介绍几种使用公式法化简的思路
此处的方法名字都是作者本人自己起的,或许更加符合公式意义
(1)去异型
A + A B A+AB A+AB型,此处 A , B A,B A,B可以是一个逻辑表达式而非单独的逻辑变量。直接排出式中的“异类”: B B B,剩余的部分作为结果即 A + A B = A A+AB=A A+AB=A
(2)去非型
A + A ‾ B A+\overline{A}B A+AB型,此处 A , B A,B A,B可以是一个逻辑表达式而非单独的逻辑变量。直接排出式中的“非项”: A ‾ \overline{A} A,剩余的部分作为结果即 A + A ‾ B = A + B A+\overline{A}B=A+B A+AB=A+B
(3)去反型
A B + A ‾ B AB+\overline{A}B AB+AB型,此处 A , B A,B A,B可以是一个逻辑表达式而非单独的逻辑变量。直接排出式中的“相反项”: A ‾ \overline{A} A和 A A A,剩余的部分作为结果即 A B + A ‾ B = B AB+\overline{A}B=B AB+AB=B
(4)三缺一型
一般用于有三个变量,但在逻辑表达式中每一项只有两个逻辑变量的与或式中,可以在缺少某一逻辑变量的后面与运算 ( X + X ‾ ) (X+\overline{X}) (X+X), X X X表示缺少的那个逻辑变量。
举个简单的例子: F = A B ‾ + B C ‾ F=A\overline{B}+B\overline{C} F=AB+BC只需要在 A B ‾ A\overline{B} AB后与运算一个 ( C + C ‾ ) (C+\overline{C}) (C+C), B C ‾ B\overline{C} BC后与运算一个 ( A + A ‾ ) (A+\overline{A}) (A+A)即可。
五、使用卡诺图对逻辑表达式进行化简
1.最小项
想要使用卡诺图进行化简,首先我们需要明白最小项的概念。
在卡诺图中,每一个方格都代表一个最小项。在有 n n n个逻辑变量的逻辑函数中,所有变量的乘积项称为最小项。为什么它被称为最小项,是因为每一个变量在其中都只出现了一次,且都是以它本身或者反变量的形式出现的。类比于做排列组合,将每一个变量只可能出现一次的所有可能全部列出,就是它的全部最小项。
例如:两个变量 A , B A,B A,B的最小项有 2 2 = 4 2^2=4 22=4个( A B , A B ‾ , A ‾ B , A B ‾ AB,A\overline{B},\overline{A}B,\overline{AB} AB,AB,AB,AB)
为了方便,使用 m i m_i mi的形式记录最小项。它的记法是:当逻辑变量在最小项中以原变量出现时,记为1;以反变量出现时,记为0.再将其转化为十进制数,这个十进制数是多少,那么 m i m_i mi的下标 i i i就为多少。
例如: A ‾ B C \overline{A}BC ABC记为二进制数为011,而011对应的十进制数为3,故 A ‾ B C \overline{A}BC ABC记为 m 3 m_3 m3
当我们熟悉了最小项的概念之后,我们可以将任何一个逻辑函数转化为最小项的形式,并使用 m i m_i mi的形式表示.
例如: A B C + A B C ‾ + A ‾ B C + A B ‾ C = m 7 + m 6 + m 3 + m 1 ABC+AB\overline{C}+\overline{A}BC+\overline{AB}C=m_7+m_6+m_3+m_1 ABC+ABC+ABC+ABC=m7+m6+m3+m1
2.卡诺图
(1)两变量卡诺图
下图是两变量的卡诺图:
该图表明, A A A和 B B B都有两种取值0和1,它们可以组成四种组合,每一种组合都是一个最小项。如果用最小项来表示卡诺图则如下图所示:
可以看到其二进制的值对应最小项 m i m_i mi中的 i i i
(2)三变量卡诺图
下面是三变量的卡诺图:
该图表明, A A A, B B B和 C C C都有两种取值0和1,它们可以组成八种组合,每一种组合都是一个最小项。如果用最小项来表示卡诺图则如下图所示:
同样也可以看到其二进制的值对应最小项 m i m_i mi中的 i i i
(4)四变量卡诺图
给出四变量卡诺图的最小项形式:
其确定的方式与二变量和三变量最小项确定的方式是一致的。
三变量和四变量卡诺图00,01,11,10的排列保证了两两之间的不同数只有一个,满足了相邻的条件
3.卡诺图表示逻辑函数
在我们已知逻辑函数的情况下,可以先将逻辑函数化简为最小项表达式,再把对应最小项的卡诺图中的值填为1,其余的填为0即可,也可以直接根据表达式填写卡诺图;若我们直接知道的就是最小项表达式,则可以直接把卡诺图中的对应位置填1,其余填0。
例如:
F = A B C + A B C ‾ + A ‾ B C + A B ‾ C = m 7 + m 6 + m 3 + m 1 F=ABC+AB\overline{C}+\overline{A}BC+\overline{AB}C=m_7+m_6+m_3+m_1 F=ABC+ABC+ABC+ABC=m7+m6+m3+m1
我们已知了它的最小项表达形式,则可以直接在空白卡诺图中填入数字,如下图所示:
4.化简方法
(1)合并最小项
我们可以把卡诺图中相邻的8个、4个、2个、1个的最小项圈起来,进行合并。如下图所示:
图中的红色圆圈表示把这两项进行合并,很容易看出它们是相邻的。只得注意的是,卡诺图的边界并不是实际意义上的边界。
例如:
这两种以及其他类似情况都属于两变量合并时的相邻情况
而对于四变量的情况来说,以下两种系列是显而易见的相邻情况:
除此之外,还有以下几种情况也属于四个变量相邻
对于八变量的合并情况有如下几种(包括类似的情况):
举例:用卡诺图化简 F = A B C D ‾ + A B C ‾ D + A ‾ B C ‾ + A B D ‾ + A ‾ B C + B C D F=\overline{ABCD}+A\overline{BC}D+\overline{A}B\overline{C}+AB\overline{D}+\overline{A}BC+BCD F=ABCD+ABCD+ABC+ABD+ABC+BCD
把逻辑表达式画在卡诺图中,并按照我们刚才讲解的方式进行合并:
此时,我们只需要把卡诺图上圈起来的部分写成逻辑表达式的形式,再对它们取或操作即可
F = A B C ‾ D + A C D ‾ + A ‾ B + B C + B D ‾ F=A\overline{BC}D+\overline{ACD}+\overline{A}B+BC+B\overline{D} F=ABCD+ACD+AB+BC+BD
(2)含有无关项的卡诺图化简
在一些逻辑函数中,变量取值的某些组合所对应的最小项不会出现或不允许出现,这些最小项称为约束项。一般在卡诺图中用" × \times ×"表示。在这种情况下化简时,可以借助无关项进行最小项的合并。
举例:
F ( A , B , C , D ) = ∑ ( m 15 , m 13 , m 10 , m 6 , m 4 ) + ∑ d ( m 8 , m 7 , m 5 , m 2 , m 1 , m 0 ) F(A,B,C,D)=\sum(m_{15},m_{13},m_{10},m_6,m_4)+\sum_d(m_8,m_7,m_5,m_2,m_1,m_0) F(A,B,C,D)=∑(m15,m13,m10,m6,m4)+∑d(m8,m7,m5,m2,m1,m0)
可以把无关项当做1来处理进行合并。
然后还是把圈起来的写成逻辑表达式即可。
F = A ‾ B + B D + B D ‾ F=\overline{A}B+BD+\overline{BD} F=AB+BD+BD
初稿2022/5/5
数字电路基础(二)逻辑代数相关推荐
- 数字电路基础知识——乘法器的设计(二)( 串行、流水线、有符号数八位乘法器)
数字电路基础知识--乘法器的设计(二)( 串行.流水线.有符号数八位乘法器) 前面一节关于乘法器的具体实现方式有很多种方法,均有各自的优缺点. 本节将再介绍一下两种乘法器的设计,分别用Verilog语 ...
- FPGA零基础学习:数字电路中的逻辑代数基础
FPGA零基础学习:数字电路中的逻辑代数基础 大侠好,欢迎来到FPGA技术江湖.本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜 ...
- ewb交通灯报告和文件_数字电路基础红绿灯实验报告.docx
数字电路基础红绿灯实验报告 题目:红绿灯控制器 指导教师:莫琳 设计人员:谭晨曦班级:电信类111班日期:XX年5月25日 目录 一.设计任务书 二.设计框图及整机概述 三.各单元电路的设计方案及原理 ...
- 数字电路基础知识——格雷码和二进制码的转换的算法和Verilog实现
数字电路基础知识--格雷码和二进制码的转换的算法和Verilog实现 关于数字电路中的码制问题在这篇博客中已经做了详细分析, 数字电路基础知识--数字IC中的进制问题(原码,反码,补码以及各进制的转换 ...
- 数字电路基础知识——组合逻辑电路(奇偶校验电路、数据比较器的设计)
数字电路基础知识--组合逻辑电路(奇偶校验器.比较器的Verilog设计) 本次主要介绍组合逻辑电路中的奇偶校验电路以及比较器的设计,以及相干的实例来熟悉这两种电路. 一.奇偶校验电路 奇偶校验码 奇 ...
- 数字电路基础(五)算术运算电路
数字电路基础(五)算术运算电路 一.二进制加法电路 1.半加器和全加器 (1)半加器 半加器是一个只考虑两个一位二进制数相加,而不考虑低位进位的运算电路.如下图所示是半加器的逻辑图: A A A和 B ...
- 数字电路基础知识——组合逻辑电路之乘法器的设计(一)—— 并行、移位相加、加法树、查找表乘法器
数字电路基础知识--乘法器的设计(一)-- 并行.移位相加.加法树.查找表 乘法器的设计主要应用在数字信号处理和数字通信,本节主要介绍乘法器的四种实现方法.使用并行乘法器.移位相加乘法器.查找表乘法器 ...
- 数字电路基础与Quartus入门
重庆交通大学信息科学与工程学院 <嵌入式系统基础A>课程 实验报告 班 级: 物联网工程190x 姓名-学号 : 徐权-632007060327 实验项目名称: 数字电路基础与Quartu ...
- 数字电路基础与Quartus-ll入门
数字电路基础与Quartus-ll入门 1.安装Quartus-II 13 和Modelsim. 2.在 Quartus-II 中自己用门电路设计一个D触发器,并进行仿真,时序波形验证. 创建D触发器 ...
最新文章
- oracle 关闭audit,关于Oracle审计(audit)
- 产品图片无缝水平滚动效果代码
- 10 大常用软件架构模式简介
- 常用的数据交换格式有哪些_大数据架构之数据交换平台
- JQuery动态创建Form
- linux开通vsftpd服务过程
- mvnrepository总是出现烦人的one more step验证
- corba的兴衰_数据科学薪酬的兴衰
- java循环左一_左旋转字符串(Java)-循环Index方式
- 技术动态 | 自底向上构建知识图谱全过程
- java 全排列 可重复_java 用递归方法求n个数的无重复全排列
- Struts2之异常处理
- 深度学习超参数简单理解:learning rate,weight decay和momentum
- .net 调用Oracle 的一些总结。
- 基于功率分析的侧信道攻击简介
- oki5530sc打印错误_OKI5530sc调整方法
- 《设计模式》学习笔记——开闭原则
- 《混乱的猴子》读书笔记 -- 关于硅谷、创业、Facebook和广告
- python制作图表(爬取数据之后分析最后制成图表)
- python调用图灵机器人实现微信公众号的自动回复功能
热门文章
- 无锡室内设计培训:室内设计的程序是怎样的?
- 加州大学伯克利分校计算机科学专业,加州大学伯克利分校研究生计算机专业排名及申请...
- 数字信号处理的MATLAB实践(一)语音信号的录制和读取
- STM32开发实例 基于STM32单片机的智能机房系统
- 黑暗逃生怎么修改服务器,《黑暗逃生》常见问题解决方法 游戏进不去怎么办...
- 涨握在线:美封堵华为5G,遭印企驳斥
- 【大数据】RAID介绍
- D. Progressions Covering
- php codis,codis集群部署实战
- “空气洗”再迎迭代,模仿者又有了新目标