广告

原创 Delay模块和Memory Delay模块深入剖析之三

2012-12-21 15:01 748 0 分类: FPGA/CPLD 文集: DSP_Builder开发工具

一个好的算法并不只是讲求功能的实现,功能的实现只是前提,而消耗更少的资源(更省钱)提供相同的功能才是王道。本文就给大家说一下笔者整理的一些省钱的方法。

1、    器件的选型。对于Altera公司的FPGACyclone II系列FPGA内部RAM资源只有M4KCyclone IIIM9K,更高端的芯片可能有M512K,或者几种规格的RAM块都有。那是不是越大越好呢?答案是否定的,相反,RAM类型越高端,其资源使用率就会越低,试想,你使用M512KRAM块,而你的程序根本用不大那么大资源,剩余的空间将全部浪费。所以在器件选型时,要综合考虑多方面因素。

2、    下面我们来看一个具体的例子,通过这个例子我们就能看出来我前两篇博文讲诉的内容有什么作用。先来看两个算法:

120121221150037101001.png

220121221150042514002.png

这两个算法在功能上实现的功能相同,都是把一个8位数据延时516个时钟单位,那我们就来对比一下资源消耗情况。对于算法(1),516*8=4128 bits > 4096 bits4K bits),因此需要消耗两个M4Ks;再来看算法(2),前面两个时钟延时由delay模块完成,消耗16LE,再延时514个时钟,正好消耗1M4K。下面两幅图是上述算法综合后资源消耗情况。

6.png

 

7.png

 

那有人会问,我能不能设计成下图的算法,然后通过优化选项让综合器自己决定,通过笔者试验,这种功能Altera还没做到。

20121221150059909005.png

对比算法(1)和算法(2),我想我们之前的努力已经有所回报,我们少用了一个M4K,多用了几个LE就实现了所需的功能,何乐而不为呢!

 

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
liu880923_896597217 2012-12-21 16:20
DSP_Builder中时钟信号的处理方式
刚开始接触DSP_Builder工具时可能会对clock模块有些疑惑。Clock模块如下图所示。 ,我来说一下我的疑惑,看大家是否有同感,把clock放在你要设计算法的model中,此外还有一个和c...
liu880923_896597217 2012-12-21 10:45
Delay模块与Memory Delay模块深入剖析之二
上一篇博文我们认识到了Delay模块和Memory Delay模块的区别,但是,貌似我们还有个问题没有明确,认识到它们的区别到底有什么作用呢?笔者先来将一个自己在DSP_Builder算法设计过程中...
liu880923_896597217 2012-12-21 10:05
Delay模块和MemoryDelay模块深入剖析之一
    用过DSP_Builder工具的朋友一定用过Delay模块,这个可是算法设计中必须用到的东西,它能让你的数据延时几个时钟再出现,那么在这个模块同一个Library中你是否注意到还有一个Mem...
我要评论
0
0
广告