标签:
FPGA, Xilinx, Altera, 速度, DSP
一开始没想到这个比较会得到大家的关注,纯粹是出于自己的兴趣。两个厂商都会宣称自己某一方面比对方好,到底是谁的更好呢?这肯定是个仁者见仁,智者见智的问题。最近这段时间比较忙,项目到了比较关键的阶段,加上其他一些杂七杂八的事情,很难有比较完整的时间坐下来完成报告,直到今天才基本把一些文档整理完。在整理的过程中,越来越觉得很难比较两者之间的速度,因为相关的因素实在太多了。软件的好坏,器件本身的延迟,设计等等对最优的速度都有着相当大的影响。做速度比较用的滤波器很难代表其他的设计,算是抛砖引玉,希望能够和大家一起讨论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快。
系统分类:
CPLD/FPGA | 用户分类:
FPGA设计 | 来源:
原创 | 【推荐给朋友】