74ALS138是一个1-8多路分离器,这意味着它需要一个0到7之间的数字,并激活其八条输出线之一(低电平有效)。
A,B和C输入信号是输入数字(23 = 8)的三位编码,而G1,GA和GB是使能信号。 要使芯片G1必须为高电平且GA和GB必须为低电平,任何其他组合都将禁用芯片(所有输出均为高电平)。
要使G1高,我们必须将地址的第4位置为高电平,类似地,第5位,第6位和第7位必须为高电平。 最后,第3位必须为低。
这给出了1111 0xxx
形式的地址,范围从0f0h到0f7h。
最低的三位选择输出线。
关于A,B和C与输出之间的关系,您可以从真值表开始:
A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0
每个输出Yi必须独立计算;因为它们中的每一个都只有零一次,所以没有必要用Karnaugh map来优化它,因为有很多,使用Maxterms绝对会更好。
因此,例如对于Y0,公式是
Y0 = A + B + C
由于处理maxterms时的规则(它是sum的乘积,如果输入变量为1,则每个因子都被否定)。 其他关系是
Y1 = A + B + C'
Y2 = A + B' + C
Y3 = A + B' + C'
Y4 = A' + B + C
Y5 = A' + B + C'
Y6 = A' + B' + C
Y7 = A' + B' + C'
这没有考虑使能输入,在内部我们可以通过取E = G1 * GA'* GB'来获得单个使能信号E然后Y0的真值表变为
E A B C Y0
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
这只是转换为Y0 = E' + A + B + C
。
如果你考虑X + Y === (X' * Y')'
的De Morgan's laws并打电话给(X * Y)'
NAND你会看到Y0 = NAND(E, A', B', C')
正是74ALS138 datasheet中的实现:
数据表中的表格似乎很清楚:如果A0,A1,A2和A3为低,A4,A5,A6和A7为高,则Y0有效。除了A0为高电平外,Y1在所有相同条件下都有效。