Wallace Tree 是一种用于高效实现多位数乘法的结构,通过逐级压缩部分积的位数,减少最终加法的复杂度。
1. Wallace Tree 中 FA 和 HA 的压缩率
在 Wallace Tree 中,全加器(FA)和半加器(HA)的作用如下:
-
全加器(FA):将3个输入位压缩为2个输出位(1个和位 + 1个进位位),压缩率为 (3 \rightarrow 2)。FA 的压缩率更高,因此在 Wallace Tree 中主要用于主要的压缩过程。
-
半加器(HA):将2个输入位压缩为2个输出位(1个和位 + 1个进位位),压缩率为 (2 \rightarrow 2)。HA 的压缩率较低,但可以将一个输入位左移一位(进位位),从而增加该位通过 FA 进行后续压缩的机会。
2. HA 的辅助作用
虽然 HA 不能直接压缩高度,但它的作用是将一个输入位左移一位,从而增加该位通过 FA 进行后续压缩的机会。这种操作可以帮助优化 Wallace Tree 的结构,减少最终需要处理的位数。
3. 降低延迟的优化方法
为了进一步降低延迟,可以在 Wallace Tree 的压缩过程中插入寄存器,将压缩过程分阶段进行。通过状态机或流水线控制,可以在每个阶段之间插入寄存器,使每个阶段的延迟独立于其他阶段,从而提高整体性能。
示例 RTL 代码
以下是一个简化的 Wallace Tree 实现,包含 FA 和 HA 的使用,并通过寄存器分阶段降低延迟。假设我们实现一个 4×4 乘法器的 Wallace Tree。


3368

被折叠的 条评论
为什么被折叠?



