gpt4 book ai didi

algorithm - 设计数据路径以求和三个输入中最大的两个

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:27 24 4
gpt4 key购买 nike

我需要为以下问题实现数据路径:“设计一个组合逻辑设备,将三个无符号数 x、y 和 z 作为输入,并输出两者中最大的一个之和。您可以使用任何根据需要在您的设计中使用我们的组合数据路径组件:MUX、解码器、加法器/减法器、比较器和单独的逻辑门。不要使用时序逻辑设备,例如寄存器或触发器。”

我在这方面遇到了麻烦,因为我觉得无论我用哪种方式比较,我都会两次得到三个中最大的那个,而且答案是错误的。例如,如果 x = 1、y = 3 和 z = 2,则总和应为 5,因为 3 和 2 是最大的两个。但是如果我们使用一个比较器来比较 x 和 y,我们将得到 3,因为 3 更大,如果我们使用另一个比较器来比较 y 和 z,我们也将得到 3,从而得到 6 作为我们的总和。我们还需要比较 x 和 z 以获得第二大吗?在那种情况下,我们将获得最大整数两次和第二大整数一次。所以我们将得到 3、3 和 2。我是否应该使用另一个比较器来比较 3 和 3 并只通过 3,但还有另一个比较器检查哪个数字比另一个小?因此,例如我们已经有一个 3 通过,那么将其他 3 与 2 进行比较,因为 2 小于 3,让 2 通过并添加剩余的 3 和 2?除了这些比较器之外,我们还将拥有 MUX,它会根据来自比较器的选择输入让适当的输入通过。

这是我拥有的:enter image description here

这是正确的吗?

最佳答案

对于您的回答,左下角的 sel 位来自哪里?什么决定它是使用 A=B 还是 A

最简单和最 self 证明的方法是计算所有三个可能的答案(x+y、x+z、y+z),并计算逻辑以确定三个数字中的最小值.一旦你有了它,你可以简单地选择较大的两个的总和。它可能比您提出的选择更重的解决方案使用更多的门总数,但它应该具有更短的延迟,因为它更并行化。

按照您的方式,当重复项进入组合时,确实很难保持清晰。

Circuit Design

上述电路适用于 4 位无符号数(计算 5 位无符号答案),但很容易将其扩展到任何大小的数字。

关于algorithm - 设计数据路径以求和三个输入中最大的两个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35301133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com