ic进阶|面积篇01:改善面积的神器--折叠技术!以fir滤波器为例带你了解折叠技术!

在这里插入图片描述对于芯片来说,如果能够减少其中的大面积单元(例如乘法器、除法器、ram等等)的使用,对芯片面积的优化是十分重要的。本篇文章,我们介绍一种用于减少芯片面积的技术——折叠技术,这种技术是通过对同一运算单元(例如一个加法器)的共享,使得其能够分时复用在多个不同时刻的运算过程中,也就是以一个运算单元来替代多个运算单元,这样自然能够减少芯片的面积。

一、折叠技术

首先,让我们举一个例子,来说明折叠技术的应用:假设我们需要计算输入信号a、b、c的求和结果,最为直接的方法即使用两个同样的加法器先计算a+b,再计算b+c,例如下图左侧所示:
在这里插入图片描述
为了对面积进行优化,我们可以使用折叠计算,即使用一个加法器和两个选择器,对上述输入信号进行分时计算,例如:

  • 周期0:选择信号a和b作为加法器的输入进行加法计算,并对加法器输出结果打一拍。

  • 周期1:选择上一周期的计算结果(a+b)、和c作为加法器的输入,同样加法器输出结果将再打一拍。

  • 周期2: 输出完整的a+b+c的计算结果,同时,加法器输出下一轮计算的中间结果a+b。

从以上的分析,我们可以发现折叠计算实质上就是一种以时间换取面积的技术。通常,折叠技术可以在增加计算时间N倍的代价之下,减少硬件功能单元的数目到1/N。因此,如果我们只使用了并行结构或折叠技术的话,就会有两种相反的极端情况:一个是只采用并行结构,每个算法运算都分配了单独的功能单元,这样的话计算速度会很快,但是面积也会相应的增长;另一个是只使用折叠技术,相同的功能都在一个功能单元上执行,这样的话对面积优化,但是计算效率就会延迟。因此,在实际芯片设计中,最好是结合芯片设计指标,对这两种设计方法综合应用。

二、折叠变换

当我们需要使用折叠技术时,首先我们要做的就是定义折叠集,及其元素的顺序,这里的折叠集是由相同功能单元所执行运算的有序集,每一个折叠集包含**N个单元,我们将N称为折叠因子,也就是折叠到一个功能单元的运算数目,用于表征折叠的强度,**其中的一些可能是空运算。以下是一个3阶fir的例子:
在这里插入图片描述
如上图所示,一个3阶的fir滤波器,由4个乘法器和3个加法器组成,由于乘法器和加法器之间没有延时单元,我们可以认为由一个乘法器和一个加法器构成了一个基础功能单元(如上图的虚线框所示),因此,我们可以定义折叠因子N=4,于是有折叠集S0={MA0,MA1,MA2,MA3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字ic小熊饼干

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值