一、集成电路

在引入“集成电路”后,电路设计实现了从原子到分子的质变。集成电路,最重要的当然是“集成”二字了……总体来说,我们希望设计出的集成电路具有:

  • 可复用
  • 可扩展
  • 高封装度
  • 健壮(泛指其可靠性、安全性、一致性等)

等特点。从定义上说,每一个在此之前提到的电路都可以被做成一个集成电路;但这些只能叫做专用集成电路,被用在特定的设备中,不具有可复用性,所以不在本文讨论范围中。同时,由于文章目前进展到组合逻辑电路,因此涉及的几项电路也都是以组合逻辑为基础的,不会牵涉到时序逻辑等内容。

与之前设计的朴素的电路不同,现实中的组合逻辑器件为了便于功能扩展,往往还有一些功能端口,可以控制是否输出,检测是否有输入等,实现与其他逻辑电路的配合。

为探究几种常见的组合逻辑电路,我们从一个实际的例子入手:计算器。简单一点,我们的计算器先实现加法和减法。(不保证最终的成果和现实中的设计一致)这也是我在前言中展示的Minecraft电路所做的。大概的思路如下:

这个东西只能做一位数的加法,但将它稍微扩展,就可以计算更多位数。我们还要忽略一些小细节,比如涉及存储的部分,以及二进制计算和十进制的转换(详见第二章关于“余三码”的介绍)。

二、编码器

编码器能够将单一的输入信号编码。比如,计算机键盘按下一个键,就会被编码成一个八位的ASCII码。

在计算器项目中,首先需要的,是把单一的“按钮输入”事件映射成一个二进制数。按钮板共有十个键,所以有十条输出,每条对应一个按钮。通过编码,可以将其变成易于逻辑理解的输入。由于目标是做计算,映射成二进制码(其实是BCD码)当然最为合理。(同样参见第二章:数制与编码)

我们假设每次只输入一个信号,不会两路同时产生输入。那么真值表如下:

未标注的表示为0
表示一个四位二进制数,从高位到低位。任何时候,列出真值表辅助分析都是个好习惯;但在这里,用真值表列式显然不现实。所以,直接分析:例如
,在
时为1,所以
(实际上,我们把其他项都当作了无关项,这会有一些隐藏的问题,后面分析)。同理:

这样,我们的第一个编码器就做成了:

这种简单的设计在绝大多数情况下就够用了,但有两个问题:

  1. 我们假设每个时刻只有一路输入,但这是不靠谱的。比如,如果同时按下3和4,那么实际输出的是0111;
  2. 我们不知道当输出是0000时,究竟表示的是按下了0,还是什么输入都没有。无论如何,让“0”输入直接吊着而不接进电路显然不好。
输入 3,4 的样子;要注意这不是 3+4,而只是无意义的输出,比如 3 和 5 的输出也是 0111

问题1的解决方法是优先编码:如果同时按下两个键,则只编码比较大的数,而忽视较小的数,相当于把真值表变成:

这样,如果按下3和4,则输出0100,3则被当成了无关项,不影响输出。虽然这使得电路变复杂了,但提升了健壮性,符合设计方针,是值得的。

问题2的解决方法自然是把所有位加在一起,单独作为一路输出——只要这路有输出,就代表有输入。

略过计算过程(可以作为练习),我们最终得到的,就是一个类似这样的电路:

它是两个集成电路的奇怪混搭。首先是74HC147,它是10线-4线编码器,将10条线路输入编码成4位的二进制数,类似本电路实现的功能;然后是74HC148,是8线-3线编码器,所以只能编码0~7的数字,但有不少扩展端口,所以比起74HC147,通用性更高,可以几个连在一起实现更多位数的编码。它有检测是否有输入的功能。

这样,我们完成了计算器的第一部分:把按钮输入对应成一个能够计算的二进制数。

三、译码器

与编码器相对,译码器把一个二进制码译回单一的输出。在本项目的最后,也需要将计算出的数字译回0~9,方便由屏幕的驱动器再做计算。真值表如下:

的推导没什么意义,不列出了。几个例子:

所以,如果输入的是0111,输出就是

常用的译码集成电路是74HC138,翻译的是0~7之间的数字。它有一个很有意思的性质,就是八个输出正好对应八个最小项(回顾笔记(五):逻辑设计基础),可以用来拼接逻辑函数,比如

,就直接将
用或门接在一起即可。但在我们的体系中没有什么用处,因为我们只强调设计电路而不强调利用已有的电路。

四、数据分配器

注意到我们的输入不仅是一个数字,还包括“现在正在输入第_____个数字”这个开关。(这是我觉得我这个设计中不合理的地方,在后期有“加减乘除”多个运算后,这个开关会用按下对应的运算按钮代替。)这个开关,决定了究竟是由第一路还是第二路编码/存储模块处理输入的信号。这里,就运用了数据分配器。

数据分配器有两组输入:第一组只有一路,是待分配的数据;第二组是一个数(“地址码”),表示将这位数据分配到哪一路上。在我们的设计中,只需要1分2,输入一位地址码即可,0表示“上路”,1表示“下路”。

如果输入数据

和地址码
,输出
,那么真值表是:

所以

Simple as that.

会发现,没有专门做“数据分配器”的集成电路,这是因为所有的数据分配器都可以用带控制端口的译码器实现——比如前文提到的74HC138。它的控制端口如果有输入信号,则输出被锁定在高电平。

思考,如果将

连在控制端口,而三位地址码
连在输入端口,那么,当
时,
取0或1,在
端口分别有什么输出?
呢?

五、数据选择器

虽然在本项目中没有用到数据选择器,但既然都有了分配器,它就没有道理不出场。选择器和分配器相对,负责按照输入的地址码,从几路输入中选择一路作为输出。

以8选1选择器为例。它需要八位数据输入和三位地址码,输出一位。顺便介绍一种简化真值表的方法:

略作分析:

与哪一个
有关,取决于
的值;比如,
时,
只和
有关。因此,

这便是74HC151的结构。另一个常用的选择器是双4选1选择器74HC153


总结:本文介绍了四类逻辑器件:

  • 编码器
  • 译码器
  • 数据分配器
  • 数据选择器

同时介绍了五个常用集成电路:

  • 74HC147(10线-4线编码器)
  • 74HC148(8线-3线编码器)
  • 74HC138(3线-8线译码器)
  • 74HC151(8选1选择器)
  • 74HC153(双4选1选择器)

在这些器件的结构推导中,有意忽略了一些额外的控制端,以不影响行文逻辑的连贯性。这些端口可以很轻松地集成进来,而不影响主体的工作。

与计算相关的器件,留至下期。

双 JK 触发器 74LS112 逻辑功能。真值表_数字电路学习笔记(七):经典组合逻辑器件(上)...相关推荐

  1. 双 JK 触发器 74LS112 逻辑功能。真值表_数电实验 | 时序逻辑电路

    实验仪器 Multisim电路仿真 逻辑分析仪 函数发生器 单刀双掷开关 74LS73 双J-K触发器 3片 74LS175 四D触发器 1片 74LS160 十进制计数器 1片 74LS08 二输入 ...

  2. 双 JK 触发器 74LS112 逻辑功能。真值表_触发器的工作原理是什么

    电工之家:www.dgzj.com   QQ群:2179090 关注电工之家官方微信公众号"电工之家",收获更多经验知识. 触发器是由各种基础门电路单元组成,广泛应用于数字电路和计 ...

  3. 双 JK 触发器 74LS112 逻辑功能。真值表_D触发器示例

    一:最简D触发器 D为信号 输入端,clk为时钟控制端,Q为信号输出端.这种触发器的逻辑功能是:不论触发器原来的状态如何,输入端的数据D(无论D=0,还是D=1)都将在时钟clk的上升沿被送入触发器, ...

  4. 双 JK 触发器 74LS112 逻辑功能。真值表_时序逻辑电路设计(一):同步计数器...

    时序逻辑电路设计(一):同步计数器 时序电路的考察主要涉及分析与设计两个部分, 上文介绍了时序逻辑电路的一些分析方法,重点介绍了同步时序电路分析的步骤与注意事项.本文就时序逻辑电路设计的相关问题进行讨 ...

  5. 双 JK 触发器 74LS112 逻辑功能。真值表_数字电路,分频器,移位寄存器,触发器...

    1).箝位器 能把脉冲电压维持在某个数值上而使波形保持不变的电路称为箝位器.它也是整形电路的一种.例如电视信号在传输过程中会造成失真,为了使脉冲波形恢复原样,接收机里就要用箝位电路把波形顶部箝制在某个 ...

  6. 双 JK 触发器 74LS112 逻辑功能。真值表_数字电路学习笔记(十一):时序逻辑...

    时序逻辑将会是本笔记的最后几章的主题.虽然数字电路课程还包括脉冲电路.模数转换.EDA等内容,但那些和本文的主线内容(不注重硬件搭建的电路设计)关系就不大了. 一.时序功能 我们从一个例子开始,说明时 ...

  7. 双 JK 触发器 74LS112 逻辑功能。真值表_【第十章】触发器和事件

    Mosh_完全掌握SQL课程_学习笔记 数据概要 [第十章]触发器和事件 Triggers and Events (时长22分钟) 1. 触发器 Triggers (7:31) 小结 触发器是在插入. ...

  8. 双 JK 触发器 74LS112 逻辑功能。真值表_原来单稳态触发器还可以这么构成!涨知识了...

    单稳态触发器在数字电路中一般用于定时(产生一定宽度的矩形波),整形(把不规则的波形变为幅度和宽度都相等的脉冲)及延时(将输入信号延迟一定时间后输出)等. 1. 555集成定时器 常用的555定时器有T ...

  9. 双 JK 触发器 74LS112 逻辑功能。真值表_必看好文-MOS管构成的基本门逻辑电路解析...

    MOS管逻辑电路-分析重点: 1.MOS管构成的缓冲器Buffer和漏极开路们OD门是数字电路非常重要的概念,怎么构成的? 2.反相器,线与逻辑怎么玩, 又怎么用呢? 3.根据原理图,真值表,应用典型 ...

最新文章

  1. Windows下配置Maven环境变量
  2. Ubuntu 使用国内apt源
  3. python 编码问题
  4. 树状数组(单点+区间的所有操作)
  5. 基于完成端口的文件传输设计
  6. 使用numpy遇到ValueError: The truth value of an array with more than one element is ambiguous
  7. Linux环境下安装Tigase XMPP Server
  8. 数据包络分析方法与maxdea软件_SEM常用的4种数据分析方法,让你的优化工作事半功倍!...
  9. [jQuery] 速记一の屏蔽鼠标右键监听鼠标Event
  10. mysql jdbc 连接池配置
  11. Vmprotect 驱动加壳踩坑
  12. IOS AirPrint功能
  13. C++ MFC字体设置
  14. word中全部数字、大小写字母、标点更改为新罗马字体Times News Romans
  15. 使用python进行数据清洗常用的库_用于格式化和数据清理的便捷Python库
  16. 未群发消息接腾讯服务器吗,腾讯企点如何群发消息 腾讯企点群发消息方法教程...
  17. H5页面制作功能真的很强大!
  18. NIO及多线程实现聊天室完整版
  19. CMDN CLUB第14场:小米与友盟专家详解Android开发:
  20. 牛逼啦!20行Python代码让程序自动玩“合成大西瓜”!

热门文章

  1. typroa 思维导图_Typora-编写博客格式化文档的最佳软件
  2. 课题申报书范文_课题申报书(范文5篇)完整版
  3. Hi3518ev200:内核启动分析
  4. scanner/portscan/syn
  5. 搭建量化系统|股票数据的除权和复权
  6. Android多线程开发详解
  7. 浏览器底层,内存分配,运行机制
  8. 虚拟机flink webui无法访问
  9. 【报错】Cannot parse date “2020-08-31 00:00:00“: while it seems to fit format ‘yyyy-MM-dd‘T‘HH:mm:ss.SSS
  10. Java PDF转HTML、Word、图片、SVG、XPS、 PDF/A等格式文件