端口地址是如何解码的?
How is the port address decoded?
根据下图,它表示输出端口来自F0-F7H。我的问题是这些端口地址是如何确定的?例如,F0(低电平有效)(Y0)是由输入A0-A7输入决定的?如果是这样,这些输入端口在数学上是如何得出 F0 的?
数据sheet中的table似乎很清楚:如果A0、A1、A2和A3为低电平且A4、A5、A6和A7为高电平,则Y0有效。除了 A0 为高电平外,Y1 在所有相同条件下均有效。
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。
最低三位select输出行。
关于A、B、C的关系和输出,可以从一个道理开始table:
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 and since there are a lot of ones, working with Maxterms 绝对更好地对其进行优化。
例如,对于 Y0,公式为
Y0 = A + B + C
由于处理maxterms时的规则(它是和的乘积,如果输入变量为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 的真实 table 变为
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 and call (X * Y)'
NAND you see that Y0 = NAND(E, A', B', C')
which is exactly the implementation in the 74ALS138 datasheet:
感谢您的评论,帮助我将地址与输入地址映射的方式联系起来
根据下图,它表示输出端口来自F0-F7H。我的问题是这些端口地址是如何确定的?例如,F0(低电平有效)(Y0)是由输入A0-A7输入决定的?如果是这样,这些输入端口在数学上是如何得出 F0 的?
数据sheet中的table似乎很清楚:如果A0、A1、A2和A3为低电平且A4、A5、A6和A7为高电平,则Y0有效。除了 A0 为高电平外,Y1 在所有相同条件下均有效。
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。
最低三位select输出行。
关于A、B、C的关系和输出,可以从一个道理开始table:
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 and since there are a lot of ones, working with Maxterms 绝对更好地对其进行优化。
例如,对于 Y0,公式为
Y0 = A + B + C
由于处理maxterms时的规则(它是和的乘积,如果输入变量为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 的真实 table 变为
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 and call (X * Y)'
NAND you see that Y0 = NAND(E, A', B', C')
which is exactly the implementation in the 74ALS138 datasheet:
感谢您的评论,帮助我将地址与输入地址映射的方式联系起来