原创 Altera vs Xilinx之一 逻辑资源速度(转)

2008-7-1 13:08 4363 6 6 分类: 测试测量

转自:http://www.21ic.com/news/html/257/show27809.htm



在第一篇做先做一个最基本的比较,就是比较Altera的LE和Xilinx的CLB在做数学运算时的速度。

这里我用的是自己设计的一个滤波器, 57阶FIR滤波器, 8比特输入数据, 8比特输出数据, 13比特系数, 滤波器采用直接形式的结构。Quartus II和ISE采用默认的设计,即不加各种约束。

下面是一些比较结果。如有不妥之处,欢迎各位高手指点。

从下面表中的结果来看,Stratix II 和 Virtex IV相比,速度略占优势。不过这跟设计有较大关系,欢迎有不同看法的人一起讨论。


FPGA PlatformFPGA TypeSpeed (MHz)速度百分比相邻速度等级比较
Stratix IIEP2S15F484C3 218260%114%
EP2S15F484C4192229%119%
EP2S15F484C5162193% 
StratixEP1S10F484C5147175%111%
EP1S10F484C6132157%118%
EP1S10F484C7112133%108%
EP1S25F672C8104124% 
Statrix GXEP1SGX10CF672C5143170% 
Cyclone IIEP2C8T144C6146174%124%
EP2C8T144C7118140%122%
EP2C8T144C897115% 
CycloneEP1C3T144C6146174%121%
EP1C3T144C7121144%111%
EP1C3T144C8109130% 
Virtex IVxc4vlx15,-12205244%123%
xc4vlx15,-11166198%111%
xc4vlx15,-10149177% 
Virtex II Proxc2vp2-7fg256176210%117%
xc2vp2-6fg256150179%114%
xc2vp2-5fg256132157% 
Virtex IIxc2v500-6fg256148176%123%
xc2v500-5fg256120143%115%
xc2v500-4fg256104124% 
Virtexxcv600-6bg43287104%113%
xcv600-5bg4327792%120%
xcv600-4bg4326476% 
Spartan III Exc3s500e-5cp132133158%116%
xc3s500e-4cp132115137% 
Spartan IIIxc3s1000-5fg320112133%114%
xc3s1000-4fg32098117% 
Spartan II Exc2s600e-7fg45694112%112%
xc2s600e-6fg45684100% 


一开始没想到这个比较会得到大家的关注,纯粹是出于自己的兴趣。两个厂商都会宣称自己某一方面比对方好,到底是谁的更好呢?这肯定是个仁者见仁,智者见智的问题。最近这段时间比较忙,项目到了比较关键的阶段,加上其他一些杂七杂八的事情,很难有比较完整的时间坐下来完成报告,直到今天才基本把一些文档整理完。在整理的过程中,越来越觉得很难比较两者之间的速度,因为相关的因素实在太多了。软件的好坏,器件本身的延迟,设计等等对最优的速度都有着相当大的影响。做速度比较用的滤波器很难代表其他的设计,算是抛砖引玉,希望能够和大家一起讨论FPGA的速度这个问题。在整理过程中,发现了很多很有趣的事情,比如Stratix IIIStratix II的速度区别等。为此,作者做了一些简单的实验,希望能够找到合理的解释,来分析出现这些现象的原因。

编译之前的考虑


根据作者自己的一些经验,作者把常用的一些开关打开了,以便更好的优化速度。另外,有一些选项作者拿不准是否两个软件都有相似的开关,就没有打开。


为了使得比较更加合理,作者尽可能选择门数和IO速度都比较接近的FPGA


Xilinx采用ISE9.1 Service Pack1版本,Altera采用Quartus7.1 Service Pack1版本,


Xilinx:   


TypeOptionValue

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

 
TypeOptionValue

Synthesis Option


stratixii_optimization_technique


Speed


Fit Option


Fitter_Effort


Standard (Highest)


optimize_fast_corner_timing


on


physical_synthesis_combo_logic


on

 

编译结果


作者采用了两种形式的滤波器来比较两者的速度。第一种实现形式是57FIR滤波器, 8比特输入数据, 8比特输出数据, 13比特系数, 滤波器采用转置形式的结构(上一篇文章写错了)。


下面是得到的测试结果。


1 转置形式滤波器


逻辑资源运行速度
FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2330 269 xc5vlx85-ff1153-3Virtex 5
EP3SE80F780C3276 238 xc5vlx85-ff1153-2
EP3SE80F780C4245 203 xc5vlx85-ff1153-1
Stratix IIEP2S90F1020C3318 207 xc4vlx100-ff1148-12Virtex 4
EP2S90F1020C4279 182 xc4vlx100-ff1148-11
EP2S90F1020C5234 156 xc4vlx100-ff1148-10
 

第二种实现方式是相同的滤波器,采用直接形式的结构,乘完之后的数据按照四输入加法的方式求和。


下面是得到的测试结果。


2 直接形式滤波器


逻辑资源运行速度
FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2239275 xc5vlx85-ff1153-3Virtex 5
EP3SE80F780C3212243 xc5vlx85-ff1153-2
EP3SE80F780C4180211 xc5vlx85-ff1153-1
Stratix IIEP2S90F1020C3223189 xc4vlx100-ff1148-12Virtex 4
EP2S90F1020C4200167 xc4vlx100-ff1148-11
EP2S90F1020C5171150 xc4vlx100-ff1148-10
 

一些简单的结论


1.         从表1可以看出,AlteraFPGA运行速度快不少。Stratix II V4的速度高出尤其多。


2.         1,2的结果表明Stratix III 的速度比 Stratix II的没有显著的增加。XilinxV5V4速度提升了不少。


3.         对于直接形式的FIR滤波器,一个有趣的现象是Stratix IIV4快,但是V5Stratix III快。


为了能够更好的理解造成这些差异的原因,下面对两个公司的FPGA做进一步的分析。首先,作者对32 bit的加法在两个FPGA进行编译,比较两者的速度。


1 32-bit加法器速度



FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2457534 xc5vlx85-ff1153-3Virtex 5
Stratix IIEP2S90F1020C3405361 xc4vlx100-ff1148-12Virtex 4
 

从上面的表格来看,XilinxV5V4速度提高了不少,尤其是逻辑资源的加法器速度。XilinxV5位进位逻辑延迟为 83ps,寄存器输出延迟为326ps, 最低位加法延迟为318psXilinxV4位进位逻辑延迟为 66ps,寄存器输出延迟为258ps, 最低位加法延迟为433psAlteraStratix IIIStratix II只提高了一些,但是并不是太大。暂时没有找到Altera的进位逻辑的延迟参数,Stratix II寄存器输出延迟为94ps, Stratix III


下面我们来看看乘法器的情况。这里我比较了两种乘法器:两个输入可变(下面称为可变乘法器),一个输入可变(下面称为固定系数乘法器)。分别针对16bit 8 bit情况做了比较,还是采用纯逻辑资源来实现上述运算。对于一个输入可变的情况,另外个数我用的是有符号数的最大值,即8bit0x7F16bit0x7FFF


下面的一些表格给出了一些测试结果。


2 两个输入可变16bit乘法器



FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2193140 xc5vlx85-ff1153-3Virtex 5
Stratix IIEP2S90F1020C3182115 xc4vlx100-ff1148-12Virtex 4
 

3 一个输入可变16bit乘法器



FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2349191 xc5vlx85-ff1153-3Virtex 5
Stratix IIEP2S90F1020C3312151 xc4vlx100-ff1148-12Virtex 4
 

4 两个输入可变8bit乘法器



FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2265203 xc5vlx85-ff1153-3Virtex 5
Stratix IIEP2S90F1020C3255166 xc4vlx100-ff1148-12Virtex 4
 

5 一个输入可变8bit乘法器



FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2431303 xc5vlx85-ff1153-3Virtex 5
Stratix IIEP2S90F1020C3440251 xc4vlx100-ff1148-12Virtex 4
 

从以上的表格可以看出Altera的可变输入乘法器比Xilinx稍微快一些。固定系数乘法器比Xilinx速度高出不少(由于Quartus优化的缘故,下面会专门分析)。XilinxV5V4速度有了较大的提高,而Stratix III的速度比Stratix II没有明显的提高。


Quartus软件可以对固定系数乘法器做优化,比如与0x7F相乘,等价于先与0x080相乘,然后减去被乘数。我使用了另外一个系数0x7D,结果发现速度明显下降,Stratix III C2的最高速度只有253MHz,而占用的资源却增加不少。因为这一点,也导致了在实现转置形式的FIR滤波器(速度主要局限在固定系数乘法器)上,Altera不仅可以少用一部分资源,速度比Xilinx快不少。

    下面寻找直接形式滤波器Xilinx V5Altera S3快的原因。


在对直接形式的滤波器做比较时,发现XilinxV5AlteraS3要快一些,时序分析报告显示关键路径在乘完之后的求和运算。我单独把求和运算做了分析,下面是得到的结果。奇怪的是这种情况下XilinxV5AlteraS3要慢一些。可能是其他原因造成了上述的差别,今后再继续研究这个问题。


 

FPGA PlatformFPGA TypeSpeed (MHz)Speed (MHz)FPGA TypeFPGA Platform
Stratix IIIEP3SE80F780C2304255 xc5vlx85-ff1153-3Virtex 5
Stratix IIEP2S90F1020C3264208 xc4vlx100-ff1148-12Virtex 4
 

下一个系列继续研究直接形式和转置形式滤波器采用DSP块的一些实现情况。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条