1911|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

DSP硬件实现大规模FIR或者乘加算法 [复制链接]

    在FPGA设计中,乘法器大部分使用的是内嵌的DSP硬核,如果系统需要跑很高的时钟频率的话,此时会视综合和布线结果而定来决定pipeline寄存器插在何处。由于FPGA的DSP乘法器具有内部插寄存器的功能,那么可以在乘法器内部插入pipeline,也可以在乘法器输出插入pipeline,当然也可以在最后一级全加器的输入前加pipeline,具体的插入点需要根据关键路径而定。上图的只是一个简单的举例,如果阶数很高的话,那么逻辑级数会更高一些。

     在FPGA设计中,使用这种方法可以满足一定的时序。可是仔细思考一下,这种方法如果应用到ASIC上或者是阵列式的信号处理上(需要并行的几百套一样的FIR滤波器的时候)是有很大的缺点的。




     ASIC的设计目的更偏向于追求面积和功耗的降低。这种方法由于插入了大量的寄存器,因而带来面积的增大,另外一点更为致命,由于插入pipeline的点基本上都是位宽和个数都很多,那么所增加的动态功耗将急剧上升。举个例子,如果在乘法器的输出加一级pipeline寄存器,假设该处理单元有25阶,乘法器输出位宽为16bit,那么就该级的pipeline就要增加16*25个寄存器,如果有256个一样的这种并行阵列,那么单单一级pipeline就需要256*16*25个寄存器,所增加的资源和功耗将是非常可怕的。

     另外还有一个缺点,在ASIC设计中,如果约束的时钟越高,那么实现同样的功能综合器综合出来的面积将是不一样的,特别是使用了一些实现资源可以优化的软IP(即RTL代码,如果你对该IP实现方式不了解的话,是无法对该IP进行don’t touch约束的,即无法指定综合器不优化该逻辑)约束的时钟越高,跑出来的面积越大。因此这也无形中增加了资源。
因此,事实上一个较优的乘累加设计,尤其是涉及到阵列式,需要多套并行信号处理的时候,应该是采用另外一种思路,该种思路包含以下两个重要方面:

     设法让乘累加内部的组合逻辑可控,保证对该部分关键实现逻辑“固化”住,即让综合器Don’t touch,这样保证在时钟跑高频率的时候,实现部分的组合逻辑面积不会上去。
设法让pipeline寄存器减少,减少时序逻辑的功耗和面积。
接下来将继续介绍这种思路。

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表