本帖最后由 AutoESL 于 2011-9-30 15:38 编辑
http://blog.**/wilzhang/108552/message.aspx
一开始没想到这个比较会得到大家的关注,纯粹是出于自己的兴趣。两个厂商都会宣称自己某一方面比对方好,到底是谁的更好呢?这肯定是个仁者见仁,智者见智的问题。
最近这段时间比较忙,项目到了比较关键的阶段,加上其他一些杂七杂八的事情,很难有比较完整的时间坐下来完成报告,直到今天才基本把一些文档整理完。在整理的过程中,越来越觉得很难比较两者之间的速度,因为相关的因素实在太多了。软件的好坏,器件本身的延迟,设计等等对最优的速度都有着相当大的影响。做速度比较用的滤波器很难代表其他的设计,算是抛砖引玉,希望能够和大家一起讨论FPGA的速度这个问题。
在整理过程中,发现了很多很有趣的事情,比如Stratix III和Stratix II的速度区别等。为此,作者做了一些简单的实验,希望能够找到合理的解释,来分析出现这些现象的原因。
编译之前的考虑根据作者自己的一些经验,作者把常用的一些开关打开了,以便更好的优化速度。另外,有一些选项作者拿不准是否两个软件都有相似的开关,就没有打开。
为了使得比较更加合理,作者尽可能选择门数和IO速度都比较接近的FPGA。
Xilinx采用ISE9.1 Service Pack1版本,Altera采用Quartus7.1 Service Pack1版本,
Xilinx:
Type | Option | Value |
Synthesis Option
| Optimization Goal
| Speed
| Optimization Effort
| High
| Use DSP48
| No
|
Map Option
| Perform timing driven packing and placement
| yes
| Map effort level
| high
| Optimization strategy
| speed
|
Place & Route
| Place and route effort level
| high
|
Altera
Type | Option | Value |
Synthesis Option
|
stratixii_optimization_technique
| Speed
|
Fit Option
| Fitter_Effort
| Standard (Highest)
| optimize_fast_corner_timing
| on
| physical_synthesis_combo_logic
| on
|
编译结果作者采用了两种形式的滤波器来比较两者的速度。第一种实现形式是57阶FIR滤波器, 8比特输入数据, 8比特输出数据, 13比特系数, 滤波器采用转置形式的结构(上一篇**写错了)。
下面是得到的测试结果。
表1 转置形式滤波器
逻辑资源运行速度 | FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform | Stratix III
| EP3SE80F780C2
| 330
| 269
| xc5vlx85-ff1153-3
| Virtex 5
| EP3SE80F780C3
| 276
| 238
| xc5vlx85-ff1153-2
| EP3SE80F780C4
| 245
| 203
| xc5vlx85-ff1153-1
| Stratix II
| EP2S90F1020C3
| 318
| 207
| xc4vlx100-ff1148-12
| Virtex 4
| EP2S90F1020C4
| 279
| 182
| xc4vlx100-ff1148-11
| EP2S90F1020C5
| 234
| 156
| xc4vlx100-ff1148-10
|
第二种实现方式是相同的滤波器,采用直接形式的结构,乘完之后的数据按照四输入加法的方式求和。
下面是得到的测试结果。
表2 直接形式滤波器
逻辑资源运行速度 | FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform | Stratix III
| EP3SE80F780C2
| 239
| 275
| xc5vlx85-ff1153-3
| Virtex 5
| EP3SE80F780C3
| 212
| 243
| xc5vlx85-ff1153-2
| EP3SE80F780C4
| 180
| 211
| xc5vlx85-ff1153-1
| Stratix II
| EP2S90F1020C3
| 223
| 189
| xc4vlx100-ff1148-12
| Virtex 4
| EP2S90F1020C4
| 200
| 167
| xc4vlx100-ff1148-11
| EP2S90F1020C5
| 171
| 150
| xc4vlx100-ff1148-10
|
一些简单的结论1.
从表1可以看出,Altera的FPGA运行速度快不少。Stratix II 比 V4的速度高出尤其多。
2.
表1,2的结果表明Stratix III 的速度比 Stratix II的没有显著的增加。Xilinx的V5比V4速度提升了不少。
3.
对于直接形式的FIR滤波器,一个有趣的现象是Stratix II比V4快,但是V5比Stratix III快。 |