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

数字电子技术(三十二)——组合逻辑电路的特点和基本设计方法

目录

1 组成逻辑电路和时序逻辑电路

2 逻辑功能的描述

3 组合逻辑函数的设计方法

4 组合逻辑电路的举例


1 组成逻辑电路和时序逻辑电路

从工程上,逻辑电路可以分为组合逻辑电路和时序逻辑电路。如下图所示:

图1 逻辑电路的分类

下面是组合逻辑电路和时序逻辑电路的是介绍:

  • 组合逻辑电路:组合逻辑电路是一种数字电路,其输出仅取决于当前输入信号的组合,而不依赖于电路的历史状态。这类电路没有记忆功能,输出只由当前的输入决定。组合逻辑电路的特点就是任何时刻的输出都取决于这时刻的输入。
  • 时序逻辑电路:时序逻辑电路是一种数字电路,其输出不仅取决于当前的输入信号,还依赖于电路的历史状态。这类电路具有记忆功能,能够存储先前的状态信息。

2 逻辑功能的描述

对于任何一个多输入、多输出的组合逻辑电路,都可以下面的框图来表示:

图2 组合逻辑电路的框图

在上图中a_1a_2、...、a_n表示输入信号,y_1y_2、...、y_n表示输出变量,输入变量与输出变量之间的关系如下所示:

                                                                        y_1=f_1(a_1,a_2,...,a_n)

                                                                         y_2=f_2(a_1,a_2,...a_n)

                                                                                        ... 

                                                                         y_m=f_m(a_1,a_2,...,a_n)

写成向量函数的形式为:Y=F(A)。

逻辑功能的描述的要求包括下面这些内容:

  • 有一个或者多个输入。
  • 有一个或者多个输出。
  • 每一种有效的输入组合在经过逻辑功能电路的时候都有输出,且输出结果只有一种。
  • 每一种有效的输入组合在逻辑电路中的计算时间都是有限的。
  • 任何一种组合逻辑电路都可以用真值表或者逻辑式的形式来表示。

3 组合逻辑函数的设计方法

组合逻辑电路的设计方法,可以分为下面几个过程,分别为:逻辑抽象、写出逻辑表达式,选择合适的器件类型、将逻辑表达式进行化简、画出逻辑图、测试检查以及工艺设计。如下所示为

图3 组合逻辑电路设计过程示意图

下面详细介绍过程:

(1)逻辑抽象

逻辑抽象是画出组合逻辑函数的第一步,这一步重要是分析。对于逻辑抽象部分基本的过程有下面这几步骤:

  • 判断是组合逻辑电路还是时序逻辑电路,然后再去分析逻辑的电路。
  • 其次判断电路中有几个输入信号还是输出信号,一般事件的原因作为输入信号,事件的结果作为输出信号。
  • 定义逻辑状态的含义,将输入信号和输出信号进行赋值。
  • 之后根据因果关系列出真值表。

真值表是推导布尔表达式的基础,通过分析真值表,可以写出电路的逻辑表达式。

(2)写出逻辑函数式

为了便于画出逻辑图,需要将真值表转换为逻辑函数式。

(3)选择器件类型

选择器件类型可以分为大规模集成电路、中规模集成电路和小规模集成电路,其中小规模集成电路包括基本逻辑电路和复合逻辑电路;中规模集成电路包括常见的逻辑功能模块,每个中规模集成电路都可以实现一定功能,大规模集成电路是为复杂的逻辑运算提供资源。

(4)对于逻辑式进行化简

对于中小规模电路逻辑是进行化简(用逻辑门)、变换(用MSI)或者相应的描述(PLD)。

(5)画出逻辑图

根据逻辑式画出相应的逻辑图。

(6)测试验证

针对所设计的电路图,或者利用计算机软件对于功能和特性进行仿真。

(7)工艺设计

当调试完了之后,还需要进行组装和调试。

4 组合逻辑电路的举例

下面对于组合逻辑电路中,一些经典的电路问题进行举例:

(1)在举重比赛中,有一名主裁判和两个副裁判。在比赛中,如果三个裁判全部为亮灯时,此时表示选手动作合格;如果两个裁判亮灯,包括主裁判的话,那么同样表示选手动作合格;如果只有两个裁判亮灯,并且这两个裁判均为副裁判,那么表示该选手动作不合格;如果只有一个或者没有裁判亮灯,那么表示该选手动作不合格。示意图如下所示:

图4 三位裁判的开关

下面是组合逻辑电路的设计过程:

通过上面内容,先进行逻辑抽象,用输入信号A来表示主裁判,用输入信号B和C来表示两个副裁判,当裁判亮灯时,表示该输入信号输入的是1,当裁判没有亮灯时,表示该输入信号输入的是0;当运动员最终结果动作合格时,表示输出信号Y为1,当运动员最终结果动作不合格时,表示输出信号Y为0。

通过逻辑抽象可以得到如下所示的真值表:

表1 例一的真值表
ABCY
0000
0010
0100
0110
1000
1011
1101
1111

通过真值表的内容可以得到如下所示的逻辑表达式:

                                                             Y=AB+AC=A(B+C)

显然对于上面这个逻辑式不用再进行化简了,通过逻辑表达式可以直接得到如下所示的逻辑图:

图5 例一的电路图

(2)房间里有一盏灯,现在在房间中的两个位置的开关都可以打开和关闭这盏灯,设计有关逻辑电路图。

下面是组合逻辑电路设计部分:

将两个的开关的打开和闭合作为输入信号,用符号A、B来表示,当开关闭合时表示输入信号为1,当开关断开时表示输入信号为0;用灯的亮和灭来表示输出信号,用符号Y来表示,其中灯亮表示输出信号为1,灯灭表示输出信号为0。

在本例中,因为可以两个开关同时控制一个灯,所以可以设计当开关A和B同时为0或者同时为1时,此时灯亮,当开关A和B一个开一个断时,电灯关闭(另一种设计方法是将两个开关全部开或者关时,灯灭)。

真值表如下所示:

表2 例二的电路图
ABY
001
010
100
111

得到逻辑式为:

                                                                       Y=A'B'+AB

电路图如下所示:

图6 例二的逻辑图

(3)使用逻辑电路设计一个交通信号灯工作状态的逻辑信号,交通信号是由红、黄、绿组成的,在正常的条件下,任何时刻都只有一个信号灯是亮的,如果出现其中两个以及两个以上、或者没有灯亮,那么此时表示信号灯出现错误。如下所示为几种信号灯正常工作状态和故障装填示意图:

图7 交通信号灯的工作状态和故障状态

下面是组合逻辑电路的设计部分:

将交通信号灯三种灯红灯、绿灯和黄灯作为输入变量,分别用符号R、G、A来表示,当灯亮时表示输入信号为1,当灯灭时表示输入信号为0;将交通信号是否处于正常状态作为输出信号,用输出信号Z来表示,其中交通信号灯处于正常状态表示输出信号Z为0,交通信号灯故障表示输出信号为1。

真值表如下所示:

表3 例三的真值图
RAGZ
0000
0011
0101
0110
1001
1010
1100
1110

得到如下所示的逻辑表达式:

                                           Z=R'A'G'+R'AG+RA'G+RAG'+RAG

化简后得到逻辑式:

                                                              Z=R'A'G'+RA+RG+AG

电路图如下所示:

图8 例三的逻辑图

http://www.kler.cn/a/597026.html

相关文章:

  • ubuntu22.04安装搜狗输入法保姆教程~
  • 考研课程安排(自用)
  • Flutter TextFormField 完全手册与设计最佳实践
  • 【MySQL报错】:Column count doesn’t match value count at row 1
  • 只是“更轻更薄”?不!遨游三防平板还选择“更强更韧”
  • 为什么 Redis 选择单线程模型?
  • 基于区块链的 Web3 数据保护技术探索
  • 现代前端开发框架对比:React、Vue 和 Svelte 的选择指南
  • Linux进程信号(下:补充)
  • 数字证书 与 数字签名 介绍
  • Beyond Compare 4注册激活方法
  • 使用HTML5和CSS3实现3D旋转相册效果
  • IoTDB 常见问题 QA 第六期
  • 一条不太简单的TEX学习之路
  • tryhackme——The Lay of the Land
  • 从报错到成功:Mermaid 流程图语法避坑指南✨
  • 嵌入式基础知识学习:UART是什么?
  • kotlin 函数引用
  • SQL语言——MySQL
  • 解决 ECharts Map3D 在高分辨率大屏下鼠标与地图位置错位的问题