【问题标题】:BCD adder and Decimal OutputBCD 加法器和十进制输出
【发布时间】:2015-01-07 10:54:18
【问题描述】:

对于计算 125 * A - 100 * (A Mod 4) + 2Decimal Output 和具有 A (one BCD digit),下列哪项是正确的?

1) 我们至少需要两个十进制加法器。

2) 我们至少需要两个 4 位二进制加法器。

3) 我们至少需要一个十进制乘法器和一个十进制加法器。

4) 以上皆非。

为什么我们的讲师选择(4) 作为解决方案而不选择(3)?有什么想法或提示吗?

谢谢大家。

【问题讨论】:

    标签: computer-science computer-architecture digit bcd vlsi


    【解决方案1】:

    A Mod 4 在原始等式中给出了 BCD 数字 A 的两个最低有效位。所以,让我们分别考虑 A 的两个最高和最低有效位,如下所示:

    X = A AND 3 = A Mod 4  (two least significant bits)
    Y = A AND Ch           (two most significant bits)
    

    其中Ch 中的h 后缀表示十六进制的C(即Ch 是二进制的1100),AND 表示逻辑与运算。

    例如,如果我们有

    A = abcd
    

    其中abcd 是任意二进制数字,我们会得到

    X = 00cd
    Y = ab00
    

    重要的是,请注意

    A = X + Y
    (ab00 + 00cd = abcd)
    

    这允许我们将乘法的分布应用于加法,特别是

      125 * A
    = 125 * (X + Y)
    = 125 * X + 125 * Y
    

    所以,我们有

      125 * A - 100 * (A Mod 4) + 2     (original equation)
    = 125 * (X + Y) - 100 * X + 2       (replace A with X + Y)
    = 125 * Y + 125 * X - 100 * X + 2   (distributivity)
    = 125 * Y + 25 * X + 2              (125 * X - 100 * X = 25 * X)
    = 100 * Y + 25 * (X + Y)            (125 * Y = 100 * Y + 25 * Y)
    = 100 * Y + 25 * A + 2              (replace X + Y with A)
    

    在最终方程 100 * Y + 25 * A + 2 中,我们需要计算两项(100 * Y25 * A),外加一项常数项(2)。

    100 * Y 一词在 BCD 中很简单:只需将 Y 向左移动两位数,即百位数。

    对于 25 * A 术语,我们需要一个乘法器将 A 乘以 25。

    现在,我们需要将所有三个项相加,但是:

    • 100 * Y25 * A 方面的设置位(“一”位)之间没有重叠。实际上,术语100 * Y 只能设置百位数的两个最高有效位(回到Y 的定义),而术语25 * A 最多设置同一数字位置的两个最低有效位。要看到这一点,请记住 25 * A = 100 * A / 4,这意味着该术语的百位数字不能超过 3。
    • 100 * Y25 * A 都是 25 的倍数,这意味着它们的和也是如此,因此该和的低位只能是 0 (0000) 或 5 (0101)。第二位不能在该总和中设置,因此也不会与常量 2 术语重叠。

    由于在考虑可以设置哪些位位置时所有三个项不重叠,所以我们可以使用简单的逻辑 OR 运算而不是实际的加法器来将所有三个项相加。

    事实上,在我们所做的一切中,加法器从来都不是必需的,这意味着 4) 是唯一合适的答案。

    【讨论】:

    • 您能否为前三行添加更多细节?我无法得到它!
    • @user4249446 很抱歉花了这么长时间才回到这个答案。开始确实需要改进,我已经解决了这个问题,希望它仍然有用。请查看,如果还有什么不清楚的地方,请不要犹豫。
    • 非常感谢,我同意了。您能否详细描述一下 X = A And 3 = A Mod 4(低位)、Y = A And Ch = A - A MOD 4(高位)?非常感谢。
    • @user4249446 Done :) A - A MOD 4 部分实际上是多余的信息,因为我添加了关于A 等于X + Y 的更清晰的评论,所以我删除了它,这应该会让事情变得不那么混乱.我还强调了abcd 示例,以更好地展示我们正在努力实现的目标。这样比较好理解吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多