讲解基于verilog的4-2压缩器和3-2压缩器的实现方式,实现华莱士树(Wallace Tree)

一、背景知识

  一般在做较多数字的加减法操作的时候我们会选择将这些操作数进行 压缩,即找到2个数使它们的和等效成原先的那组数。一般多组数据要通过华莱士树进行压缩,而华莱士树是由一系列的压缩器构成的。
一个华莱士树结构图

二、压缩器

 正如上文所述,压缩器构成了华莱士树。而目前比较流行的压缩器有4-2压缩器和3-2压缩器,4-2压缩器的功能就是将4个操作数输入进元件而变成和等效的2个数字。3-2压缩器同理,不过其输入只有三个操作数。我们可以知道4-2压缩器的效率是优于3-2压缩器的,但是4-2压缩器的内部的逻辑结构就会更加的复杂繁琐,这也是用面积换取性能的一种方式。

 (1) 3-2压缩器

 我们先由浅入深的了解下3-2压缩器。学过数字电路的同学肯定了解过全加器,其实3-2压缩器就是一个全加器,或者说是一个保存进位加法器(csa)。

   1) 3-2压缩器的结构图如下:

CSA结构图

   2)3-2压缩器的逻辑表达式如下所示:

C 1 = a 0 a 1 + a 2 ( a 0 + a 1 ) C_1 = a_0 a_1 + a_2(a_0 + a_1) C1=a0a1+a2(a0+a1)
S 0 = a 0 ⊕ a 1 ⊕ a 2 S_0 = a_0 \oplus a_1 \oplus a_2 S0=a0a1a2
 我想认真看表达式的话就会发现这就是全加器的逻辑表达式。因此我们知道 C 1 C_1 C1是进位,而 S 0 S_0 S0则是两数之和,因此就会有如下的等式成立:
2 C 1 + S 0 = a 0 + a 1 + a 2 2C_1 + S_0 = a_0 + a_1 + a_2 2C1+S0=a0+a1+a2
 所以我们经过3-2压缩器之后就实现了把三个操作数压缩成两个操作数的功能。

  (2)4-2压缩器

 给定四个输入,经过4-2压缩器之后就可以得到和等效的2个输出。这就是4-2压缩器所实现的功能。

   1)结构图

4-2压缩器结构图

   2)两种实现

 第一种实现方式是利用全加器FA来实现的,其结构图如下:

在这里插入图片描述
 这里是用两个FA串联构成的,这种4-2压缩器有一个缺点就是它的进位信号产生要经过4个异或门的延迟(参看全加器的结构),当我们部署4-2压缩器的时候就会使电路的时序延长,造成不必要的性能损失,因此不推荐使用。
 第二种实现方式的结构图如下:在这里插入图片描述
结构表达式

 改进型的4-2压缩器产生进位信号只需要3个异或门的时延,这缩短了结果产生的时间,我认为是一种好的设计。

   (3)举例

 这里为了防止读者听不懂,我举一个2bit的例子帮助大家理解。
a 1 = 01 a 2 = 00 a 3 = 10 a 4 = 01 E 0 = 0 a_1 = 01 \\ a_2 = 00 \\ a_3 =10 \\ a_4 = 01\\E_0 = 0 a1=01a2=00a3=10a4=01E0=0
 首先我们需要2个4-2压缩器来处理这个数据,令低位进入第一个4-2压缩器,通过改进的4-2压缩器(如上图)求结果:
s u m 0 = 0 c a r r y 0 = 1 E 1 = 0 sum_0 = 0 \\ carry_0 = 1 \\ E_1 = 0 sum0=0carry0=1E1=0
s u m 1 = 1 c a r r y 1 = 1 E 2 = 0 sum_1 = 1 \\ carry_1 = 1 \\ E_2 = 0 sum1=1carry1=1E2=0
 现在对这些输出进行组合,就得到了最终的结果即:
a 0 + a 1 + a 2 + a 3 + E 0 = 10 B + 10 B a_0 + a_1 + a_2 + a_3 + E_0 = 10B + 10B a0+a1+a2+a3+E0=10B+10B

三、华莱士树(Wallace Tree)

 结构如下
结构图
 这里实现的是上一节中的例子。

  • 13
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值