【问题标题】:Why does Xilinx's Multiplier IP product bitwidth have an extra bit?为什么 Xilinx 乘法器 IP 产品位宽有一个额外的位?
【发布时间】:2022-01-09 06:17:41
【问题描述】:

Xilinx 的复数乘法器 IP 文档 (PG104) 对输入和输出位宽设置有这样的说法:

输出宽度:选择输出产品实部和虚部的宽度 成分。这些值会自动初始化以提供全精度 设置 A 和 B 操作数宽度时的乘积。 复合体的自然宽度 乘法是输入宽度的总和加一。 如果输出宽度设置为 小于这个自然宽度,最低有效位被截断或四舍五入,如 由下一个 GUI 字段选择。

(斜体是我的。)所以如果我将一个 8 位数字乘以另一个 8 位数字,它希望全精度输出是一个 17 位数字。输入和输出假定为有符号整数。

8位能表示的最大有符号数是-128(0x80)。 128*128=16384 或 0x4000,即 15 位。添加一个符号位,我们就可以安全地使用 16 位输出了。

最大的正数是 127 (0x3F)。 127*127=16129 或 0x3F01。同样,16 位是安全的。

我错过了什么?为什么他们坚持要多加一点?

【问题讨论】:

    标签: binary vhdl fpga xilinx


    【解决方案1】:

    这是一个复数乘法。这是两个乘法之和。

    pr = ar x br - ai x bi

    pi = ar x bi + ai x br

    总和加上额外的位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多