Home 欧姆社漫画数字电路读后
Post
Cancel

欧姆社漫画数字电路读后

引言

最近?看了《漫画数字电路》一书,大概记录一下

书上的很多东西并没有记录在此处

前述

数字电路分 组合电路 与 时序电路

组合电路:现在输入信息的组合决定输出的电路

时序电路:带有 “记忆” 的电路

MIL 符号

逻辑电路的 与门或门 符号引申为多个输入一个输出

  • 符号含义

与门 (ALL) :多个输入全 1,输出为 1

或门 (EXIST) :有一个输入为 1,输入为1

  • 电路线

圆圈 的为 低电平 (0、L)

圆圈 的为 高电平 (1、H)

组合电路的制作

多数表决电路

多个人投票从两个结果中选出一个

  1. 列出真值表,即所有可能出现的情况

  2. 在真值表 H 输出的地方添加下划线

  3. “输入的线” 与 “将输入 NOT 的线” 搭建框架

两列向下的电路线,第二列为 NOT 线,即从第一列连 非门 到第二列

  1. 连接到 AND (与门)

    1. 输入为 L 时,从将输入 NOT 的地方开始 (第二列)

    2. 输入为 H 时,从最开始的地方划线 (第一列)

    3. 然后,接入 AND

重复此过程将 第二步 所划线的全部做完

  1. 将 AND 的所有输出连接到 OR

电路的化简

数字电路设计流程:整理问题 - 真值表 - 化简 - 绘制电路

通过 卡诺图 进行化简

  1. 真值表转化为卡诺图

真值表制作时列从最高开始,例如 [C、B、A],结果为 Z

卡诺图为二维的真值表,一般用 0 与 1 表示电平

如果三个输入,可以行为 B、A,列为 C,然后将结果填入二维表

  1. 化简前了解

卡诺图的 左右 与 上下 都是连起来的,因为卡诺图的横方向与竖方向都是按 比特 (1 位) 变化的

  1. 化简

    1. 将在一起的 1 作为一个集合划分在一起

    2. 寻找行与列的共同点

    3. 若共同点为某值为 0 则使用 逆运算 ,即字母上一横杠

  2. 例如

C\BA 00 01 11 10
0   1 1  
1        

上表中 共同点为 C 为 0,A 为 1,则表达式为 !C * A

  1. 化简的规则
  • 集合体的形状只能是长、宽为 1、2、4 的矩形 (或正方形)

  • 集合体可以相互重叠

  • 集合体的个数越少,面积越大越好

注:左右和上下可以构成一个集合体;如果无法进一步 “形成集合体” 则说明电路已经无法再化简


化简后画出电路图,只需要把所有的表达式按上一步的画图步骤 (第三步开始) 走即可

电路的忽略

在刚开始确定输入时,因为二进制数的特性,可能会有不需要考虑的输入

例如输入为月份,需要使用四位二进制数,一共有 16 个输入,其中 0、13、14、15 均为不需要考虑的输入

这样的输入在卡诺图里可以使用 - 代替,可以化简计入集合体

时序电路的制作

时序电路需要 组合电路 与 触发器

关于 时序电路 的 “记忆”,例如自动贩卖机在投币时会记录当前投币总数,若无记忆则仅有最后一个硬币的面值

引入一个触发器,例如 时钟 (CLK),仅在 CLK 触发时,输入才会对输出有影响,否则输出保持不变


以绘制电子骰子为例

  1. 绘制状态迁移图

随着时间的变化,电子骰子如何变化?

若停止为低电平,从 1 开始到 6 到 1

如果为高电平,则在某点一直停止

  1. 用二进制数来表示状态

把每种情况或者说状态使用二进制表示,然后绘制出 状态迁移表

通过状态迁移表画出电路,可以使用 D 触发器存储状态

  1. 设计组合电路

从 现在的状态 决定 下一个状态 事实上就是 组合电路

This post is licensed under CC BY 4.0 by the author.

Linux 学习 第六章 管理运行中的进程

Linux 学习 第七章 编写简单的 shell 脚本