逻辑表达式

因为需要同时满足4个条件,因此逻辑表达式为4个条件相与,即:
(1)
分别列些四个条件的逻辑表达式:
(2)
(3)
(4)
(5)
将上述4式代入(1),并整理可得最终结果:
(6)
设计译码器

译码器

同理,4—16线意味着把4位二进制数码译成对应的(十进制)数字,范围扩大为之前的2倍。
一片74138译码器具有8个输出端口,两片则具有16个输出端口,满足需求。
思路
用A3A2A1A0表示输入二进制码的高位到低位,将A2A1A0分别对应两片74138译码器的输入端口,此时只需要用A3来控制两片的使能端,就可将前8位与后8位分离。
最终结果

更新:思考如何不使用反相器实现电路功能
设计地址译码器

思路提示我们,A0-A7做为8根输入地址线的信号输入。
而译码器的工作原理是将输入端a0-a2所代表的数值输出到对应的端口Y0-Y7
例如:
当使能端E全部满足工作条件(有效)时,a2a1a0=010,对应的数值为2,因此输出端Y2=1有效,其他输出的皆为无效电平。
所以可以译出的码数应当是8个,而题目的要求正是译出地址段98H-9FH,总共为8个码。
因此,我们需要实现的:
- 当输入地址段为98H-9FH时,使译码器工作,通过控制使能端实现
- 分别将98H-9FH译出到相应位置
观察地址
列出需要转换的地址的数码展开:

可以预知,这8个连续地址的二进制数A0-A7应该只有末尾3位是不同的,也是上图所表现出来的A0-A2
这个真值表其实就指向了我们需要做的事情:
- 用A3-A7的逻辑组合控制使能端
- 将A0-A2传入a0-a2做为输入信号
1. 控制使能端
通过真值表可知,A3-A7为11001,也就是如下所示,当符合上述情况时,控制使能端E3有效,译码器开始工作

2. 传送输入信号
列出地址分别对应A0-A2的真值表,发现它们的顺序刚好符合0-7的规律,也就是符合译码器的工作规律。

我们只需要将A0-A2直接对应到译码器的输入端a0-a2即可。

最终结果

奇校验器

全加器

功能:
接受进位CI,将A,B,Ci相加输出到S与C0(C0是进位)
观察真值表可以直观看出,当没有进位时,输出S就反映出了A和B的奇偶性。

思路
用4个全加器接受输入信号,并通过级联的方式,继续处理输出信号并得到结果。
初步结果

不足
现在虽然解决了问题,但可以看出,目前进位端都没有利用,并且使用的全加器较多,所以可以继续改进
改进
其实通过观察可知,全加器的3个输入端的地位是一样的:都代表当前位置的1的大小,所以可以直接将输入分别送至3个全加器的8个端口上,最终结果如图:
最终结果

逻辑函数

74LS151为数据选择器:
数据选择器

功能:
通过选择,将多路数据中的一路传递到输出信号
这个集成的数据选择器的具体功能就是:通过S2S1S0控制选择,将表示的数字对应的D0-D7中某一路的数据传递到输出Y去
思路
通常来讲一片74151的输入端口只有3个:S2S1S0,因此我们需要增加第4个输入端口
首先想到增加使能端E,但一旦使能端E无效,输出就无效,不能进一步处理逻辑函数。
但我们可以直接将第4位做为输入
过程
1. 将逻辑函数分为两部分

2. 用最高位将两部分分开
ABCD从高到低对应二进制数码,那么将BCD传入输入端口S2S1S0,用A分离两部分
分析两部分并合并结果为:

最终结果

设计全加器

之前分别提到了数据选择器74151,译码器74138与全加器,下面我们就开始电路设计。
思路
其实全加器的工作原理就是实现特定的组合逻辑电路
过程
通过全加器的真值表,可以得到输出S与C0的逻辑函数表达式分别为:
(注:这个latex公式对bar的渲染有些发育不良,请放大,再放大,能看到它们真的不全是ABC……)
(7)
(8)
即:

1. 数据选择器实现
最终结果

2. 译码器实现
可以参考文章:译码器——组合逻辑电路
最终结果

“组合逻辑电路的设计”上的2条回复
写得非常详细,简洁易懂,爱了爱了,宝藏博主!!
姐妹太给面子了,哈哈!