74LS138设计一位二进制全减器

975 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、

首先我们要知道什么是全减器,先弄懂全减器。 全减器真值表如图。下面来讲解一下这个全减器。 这里的Ci A B是输入信号,Co D 是输出信号。这个非常重要。 一位全减器真值表 表中字符含义 Ci :表示来自低位的借位,很多人第一次不懂低位来的借位是什么意思,你可以这样想,先考虑咱们常见的十进制减法。这里只是计算某一位数相减,可能有两种情况。1)减数小于被减数,需要向高位借位,那么问题就来了,向高位借位后高位是不是应该减个一。此时这里的高位就产生了来自低位的结尾。2)减数不小于被减数,就好理解了。在这里举个栗子:21-12。首先看个位,1-2不够是不是要向高位借1当10,个位计算完了之后计算十位,2-1很明显等于1,然而这样算下去就是21-12=19了,显然是不对了,这个时候你是不是有了一点感觉,明白了什么是来自低位的借位了,没错,由于个位向高位借了1,所以十位产生了来自低位的借位。 A : 被减数 B : 减数 Co :向高位的借位 D : 两数的差 在这里我们已第二行为例子 0 0 1 1 1 输入0 0 1,首先没有低位来的借位,所以被减数0就是0,然后0-1是不够的,所以需要向高位借1当2,所以输出的Co为1,这里的Co的值在下一位的计算中就成了来自低位的借位Ci。由于向高位借1,所以A=0+1*2; A-B=2-1=1;所以结果D等于1.所以输出1。正如上面强调的那样,前三位是输入位,后两位为输出位。 其他行一样理解。

2、

理解3-8译码器,简单来说,3-8译码器输入三位二进制数,输出一个一位十进制数,但这里是低电平输出有效,比如输入001,输出应该是10111111,这里只有0有效,此时这个0代表的是1( 因为从左到右依次是0-7)。 根据输出Co的情况: Co=Ci'A'B+CiA'B'+CiA'B+CiAB=001+100+101+111=m1+m4+m5+m7=(m1'm4'm5'm7')' 同理得到D的情况: D=…………………………… =001+010+100+111=(m1'm2'm4'm7')'

3、

最后用译码器进行设计。 这里我直接画在纸上(画的丑见谅) 画的不是很漂亮 认为还不错的小伙伴点个赞吧!