【数字电路】组合逻辑电路

1 组合逻辑电路的分析和设计方法

数字电路可以分为组合逻辑电路时序逻辑电路两大类

  • 组合逻辑电路:仅取决于该时刻电路的输入,与电路原状态无关
  • 时序逻辑电路:不仅取决于该时刻电路的输入,还取决于电路的原状态

1.1 组合逻辑电路的分析

  1. 根据电路写出逻辑表达式
  2. 由表达式列出真值表
  3. 分析电路的逻辑功能

1.2 组合逻辑电路的设计

  1. 从已知的逻辑功能出发,列出真值表
  2. 根据真值表写出逻辑表达式,并变换成所需要的形式
    通常进行的变化举例如下:
    A B + B C = A B + B C ‾ ‾ = A B ‾ ⋅ B C ‾ ‾ (仅使用“与非”门) AB+BC=\overline{\overline{AB+BC}}=\overline{\overline{AB}·\overline{BC}}(仅使用“与非”门) AB+BC=AB+BC=ABBC(仅使用与非门)
  3. 画出逻辑电路图
    − ∣ 组合逻辑电路的分析设计比较程式化,后续博客中笛哥会有习题更新 ∣ − \color{red}{-|组合逻辑电路的分析设计比较程式化,后续博客中笛哥会有习题更新|-} 组合逻辑电路的分析设计比较程式化,后续博客中笛哥会有习题更新

1.3 七段数码管显示译码电路设计

  • 七段译码管:一般的七段数码管拥有七个发光二极管(三横四纵)用以显示十进制0至9的数字外加小数点,也可以显示英文字母,包括十六进制中的英文 A 至 F(b、d 为小写,其他为大写)。现时大部分的七段数码管会以斜体显示。
    在这里插入图片描述

  • 七段译码管的电路连接有共阳极接法(左图)和共阴极接法(右图)两种:
    在这里插入图片描述
    其实这两种接法没有什么需要特别注意的地方,无非就是决定输入端接高电平/低电平时二极管发光

  • 下面我给出一个例子:通过共阴极接法将BCD码以十进制阿拉伯数字表示出来

    1. 列出真值表
      在这里插入图片描述

    2. 根据真值表写出逻辑表达式(这里就要用到上一篇博客中讲述的卡诺图)
      在这里只展示a段二极管对应的卡诺图,其他段交给读者自行验证
      在这里插入图片描述
      a = A 3 + A 1 + A 2 A 0 + A 2 ‾ ⋅ A 0 ‾ a=A_3+A_1+A_2A_0+\overline{A_2}·\overline{A_0} a=A3+A1+A2A0+A2A0

    3. 根据逻辑表达式设计出电路图
      Alt

2 常用中规模组合逻辑芯片

在数字电路中,经常会用到加法器、数值比较器、译码器、编码器、数据选择器和数据分配器、奇偶校验器等实用电路。为方便使用,这些电路的设计已经标准化,并制成了中规模的单片集成电路芯片供使用。这里来介绍一下这些常用的中规模组合逻辑芯片。

2.1 加法器

  1. 半加器:不需要考虑来自低位的进位
    • 两个输入:A、B表示两个同位相加的数
    • 两个输出:∑表示半加和,Cout表示向高位的进位
      在这里插入图片描述
  2. 全加器:需要考虑来自低位的进位
    • 三个输入:A、B表示两个同位相加的数,Cin表示来自低位的进位
    • 两个输出:∑表示本位和,Cout表示向高位的进位
      在这里插入图片描述
  • (1)串行进位加法器:
    在这里插入图片描述
    工作特点:
    任意一位的加法运算,都必须等到低位加法完成送来进位时才能进行
  • (2)超前进位加法器(了解即可)

2.2 比较器

  1. 四位二进制比较器
    Alt
    • A大于B时,A>B输出高电平
    • A等于B时,A=B输出高电平
    • A小于B时,A<B输出高电平
  2. 特殊的四位二进制比较器,例如74HC85芯片
    Alt
    • AB不等时,比较器的输出可以不用看cascading inputs
    • AB相等时,比较器的输出需要看cascading inputs来给出最后判断

2.3 编码器

编码:用数字或某种文字符号来表示某一对象或信号的过程,如:电话号码、邮编、学号等

在此,我们主要来学习二进制编码器:将一系列信号状态编制成二进制代码

  • 一般编码器:每次只允许一个输入端有信号
  • 优先编码器:允许几个输入信号同时有效,但电路只对其中优先级别高的信号进行编码,对其它优先级别低的信号不予理睬。
    需要注意编码器输出端口,是输出原码还是反码 \color{red}{需要注意编码器输出端口,是输出原码还是反码} 需要注意编码器输出端口,是输出原码还是反码
    Alt
    例如上图:74LS147芯片的输出端口,就是反码输出(如果(10)管脚低电平输入,反码输出为0110)

2.4 译码器

译码:即将某代码翻译成电路的某种状态(二进制译码器,显示译码器…)
没啥特别的,就是“编码”的逆过程 \color{red}{没啥特别的,就是“编码”的逆过程} 没啥特别的,就是编码的逆过程

2.5 数据选择器

数据选择:从多路数据中选择其中一路数据输出
Alt
功能:根据Data select端口的译码对应Data inputs端口的输入

数据选择端Data select(S0 S1数据输出
0 0D0
0 1D1
1 0D2
1 1D3

逻辑表达式: Y = D 0 S 0 ˉ S 1 ˉ + D 1 S 0 ˉ S 1 + D 2 S 0 S 1 ˉ + D 3 S 0 S 1 Y=D_0\bar{S_0}\bar{S_1}+D_1\bar{S_0}S_1+D_2S_0\bar{S_1}+D_3S_0S_1 Y=D0S0ˉS1ˉ+D1S0ˉS1+D2S0S1ˉ+D3S0S1

2.6 数据分配器

数据分配:将数据分配到对应的输出端口
Alt
没啥特别的,反向参考一下数据选择器就行 \color{red}{没啥特别的,反向参考一下数据选择器就行} 没啥特别的,反向参考一下数据选择器就行

3 基于二进制译码器芯片的组合逻辑设计

  1. 首先考虑芯片的选用
  2. 将要实现的逻辑关系写成最小项之和的形式
  3. 电路实现

4 组合逻辑电路中的“竞争冒险”现象

在组合电路中,信号经由不同的途径达到某一会合点的时间有先有后,两个输入“同时向相反的逻辑电平变化”,称存在“竞争”
由于竞争而引起电路输出发生瞬间错误现象,称为竞争-冒险,表现为输出端出现了原设计中没有的窄脉冲,常称其为毛刺(glitch)
Alt

  • 检测“竞争-冒险”
    • 当输入变量很少时,可以通过逻辑表达式判断
    • 当输入变量较多时,往往需要计算机辅助分析或者实验检验
  • 消除“竞争-冒险”
    • 修改逻辑设计,增加冗余项

    • 接入滤波电容
      尖峰脉冲很窄,用很小的电容就可将尖峰削弱到 VTH以下
      Alt

    • 引入选通脉冲
      选通脉冲作用时间在电路达到稳定之后,选通的高电平期的输出信号不会出现尖峰
      Alt

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤夜残笛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值