---
title: xilinx和altera的区别
url: "https://www.fpgalearn.com/9441.html"
kind: article
id: 9441
excerpt: 一、从好用来说，肯定是Xilinx的好用，不过Altera的便宜 他们的特点，Xilinx的短线资源非常丰富，这样在实现的时候，布线的成功率很高，尤其是逻辑做得…
published_at: 2025-06-28
author: 二牛学FPGA
tags: fpga, FPGA工程, xilinx, 赛灵思
word_count: 6849
source: "https://www.fpgalearn.com"
---

# xilinx和altera的区别

> 标签：fpga、FPGA工程、xilinx、赛灵思
> 一、从好用来说，肯定是Xilinx的好用，不过Altera的便宜 他们的特点，Xilinx的短线资源非常丰富，这样在实现的时候，布线的成功率很高，尤其是逻辑做得…

> 一、从好用来说，肯定是Xilinx的好用，不过Altera的便宜 他们的特点，Xilinx的短线资源非常丰富，这样在实现的时候，布线的成功率很高，尤其是逻辑做得…

一、从好用来说，肯定是Xilinx的好用，不过Altera的便宜
他们的特点，Xilinx的短线资源非常丰富，这样在实现的时候，布线的成功率很高，尤其是逻辑做得比较满的时候。
Altera的FPGA的短线资源经常不够用，经常要占用LE来充当布线资源（这也是为什么Altera的FPGA可以便宜的原因，资源少些当然便宜），但是如果你是高手，也能把他的性能发挥得很好。
另外就是关于块RAM，Xilinx的双口RAM是真的，Altera的没有双口RAM，如果你要实现真正的双口RAM，只能用两块RAM来背靠背地实现，这样你的RAM资源就少了一半，如果你的应用对片内双口RAM的需求很重要，用Altera的就划不来。
![图片](https://admin.shaonianxue.cn/wp-content/uploads/2025/06/ba99b301dba05ad9068767584c4248a1.jpg)
二、Xilinx与Altera FPGA比较系列之一 逻辑资源速度
一开始没想到这个比较会得到大家的关注，纯粹是出于自己的兴趣。两个厂商都会宣称自己某一方面比对方好，到底是谁的更好呢？这肯定是个仁者见仁，智者见智的问题。最近这段时间比较忙，项目到了比较关键的阶段，加上其他一些杂七杂八的事情，很难有比较完整的时间坐下来完成报告，直到今天才基本把一些文档整理完。在整理的过程中，越来越觉得很难比较两者之间的速度，因为相关的因素实在太多了。软件的好坏，器件本身的延迟，设计等等对最优的速度都有着相当大的影响。做速度比较用的滤波器很难代表其他的设计，算是抛砖引玉，希望能够和大家一起讨论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快。
为了能够更好的理解造成这些差异的原因，下面对两个公司的FPGA做进一步的分析。首先，作者对32 bit的加法在两个FPGA进行编译，比较两者的速度。
表1 32-bit加法器速度
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix III | EP3SE80F780C2 | 457 | 534 | xc5vlx85-ff1153-3 | Virtex 5 |
| Stratix II | EP2S90F1020C3 | 405 | 361 | xc4vlx100-ff1148-12 | Virtex 4 |
从上面的表格来看，Xilinx的V5比V4速度提高了不少，尤其是逻辑资源的加法器速度。Xilinx的V5一位进位逻辑延迟为 83ps，寄存器输出延迟为326ps, 最低位加法延迟为318ps。Xilinx的V4一位进位逻辑延迟为 66ps，寄存器输出延迟为258ps, 最低位加法延迟为433ps。Altera的Stratix III比Stratix II只提高了一些，但是并不是太大。暂时没有找到Altera的进位逻辑的延迟参数，Stratix II寄存器输出延迟为94ps, Stratix III为
下面我们来看看乘法器的情况。这里我比较了两种乘法器：两个输入可变（下面称为可变乘法器），一个输入可变（下面称为固定系数乘法器）。分别针对16bit 和8 bit情况做了比较，还是采用纯逻辑资源来实现上述运算。对于一个输入可变的情况，另外一个数我用的是有符号数的最大值，即8bit的0x7F和16bit的0x7FFF。
下面的一些表格给出了一些测试结果。
表2 两个输入可变16bit乘法器
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix III | EP3SE80F780C2 | 193 | 140 | xc5vlx85-ff1153-3 | Virtex 5 |
| Stratix II | EP2S90F1020C3 | 182 | 115 | xc4vlx100-ff1148-12 | Virtex 4 |
表3 一个输入可变16bit乘法器
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix III | EP3SE80F780C2 | 349 | 191 | xc5vlx85-ff1153-3 | Virtex 5 |
| Stratix II | EP2S90F1020C3 | 312 | 151 | xc4vlx100-ff1148-12 | Virtex 4 |
表4 两个输入可变8bit乘法器
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix III | EP3SE80F780C2 | 265 | 203 | xc5vlx85-ff1153-3 | Virtex 5 |
| Stratix II | EP2S90F1020C3 | 255 | 166 | xc4vlx100-ff1148-12 | Virtex 4 |
表5 一个输入可变8bit乘法器
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix III | EP3SE80F780C2 | 431 | 303 | xc5vlx85-ff1153-3 | Virtex 5 |
| Stratix II | EP2S90F1020C3 | 440 | 251 | xc4vlx100-ff1148-12 | Virtex 4 |
从以上的表格可以看出Altera的可变输入乘法器比Xilinx稍微快一些。固定系数乘法器比Xilinx速度高出不少（由于Quartus优化的缘故，下面会专门分析）。Xilinx的V5比V4速度有了较大的提高，而Stratix III的速度比Stratix II没有明显的提高。
Quartus软件可以对固定系数乘法器做优化，比如与0x7F相乘，等价于先与0x080相乘，然后减去被乘数。我使用了另外一个系数0x7D，结果发现速度明显下降，Stratix III C2的最高速度只有253MHz，而占用的资源却增加不少。因为这一点，也导致了在实现转置形式的FIR滤波器（速度主要局限在固定系数乘法器）上，Altera不仅可以少用一部分资源，速度比Xilinx快不少。
上次的分析还剩下一点点尾巴，就是寻找直接形式滤波器Xilinx V5比Altera S3快的原因。
在对直接形式的滤波器做比较时，发现Xilinx的V5比Altera的S3要快一些，时序分析报告显示关键路径在乘完之后的求和运算。我单独把求和运算做了分析，下面是得到的结果。奇怪的是这种情况下Xilinx的V5比Altera的S3要慢一些。可能是其他原因造成了上述的差别，今后再继续研究这个问题。
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix III | EP3SE80F780C2 | 304 | 255 | xc5vlx85-ff1153-3 | Virtex 5 |
| Stratix II | EP2S90F1020C3 | 264 | 208 | xc4vlx100-ff1148-12 | Virtex 4 |
下一个系列继续研究直接形式和转置形式滤波器采用DSP块的一些实现情况。
大家知道，高端的FPGA中都有为数不少的DSP块，里边主要包括一些18X18的乘法器，以及加法器等单元，相邻的DSP往往可以通过专用的连线互连，从而实现滤波器的级联设计，提高滤波器的运行速度。Xilinx和Altera的DSP块有所差别，Xilinx的DSP模块可以做18X18乘法，18X18乘累加运算，18X18乘加运算等，其中累加器可以到48位宽，厂家标称的最高速度位500MHz。Altera的DSP块可以分解成为8X8, 16X16, 32X32块，可以完成乘法，乘累加，乘加等运算，厂家标称的最高速度为450MHz。
下面的表格给出了一些综合结果。
表1  转置形式的FIR滤波器综合结果
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix II | EP2S90F1020C3 | 313 | 165 | xc4vsx35-ff668-12 | Virtex 4 |
| EP2S90F1020C4 | 282 | 154 | xc4vsx35-ff668-11 |  |  |
| EP2S90F1020C5 | 240 | 124 | xc4vsx35-ff668-10 |  |  |
表2  直接形式的FIR滤波器综合结果
| FPGA Platform | FPGA Type | Speed (MHz) | Speed (MHz) | FPGA Type | FPGA Platform |
| --- | --- | --- | --- | --- | --- |
| Stratix II | EP2S90F1020C3 | 195 | 109 | xc4vsx35-ff668-12 | Virtex 4 |
| EP2S90F1020C4 | 169 | 101 | xc4vsx35-ff668-11 |  |  |
| EP2S90F1020C5 | 141 | 88 | xc4vsx35-ff668-10 |  |  |
一些简单的分析：
1．  Xilinx之所以速度比Altera慢一个原因可能是ISE综合时可能需要加一些约束才可以达到最佳状态，就这件事情我曾经咨询过Xilinx的应用工程师，她给了我一个使用Synplify综合的结果，速度明显比我使用ISE的好不少。
2．  有关Xilinx的DSP Block，我还试了不少其他的模块，包括简单的乘法器等，但是都不能达到器标称的500MHz，另外，ISE不能支持随意的写法，对代码的风格有一定的要求，比如，需要写成同步reset，这样才能被综合到DSP Block当中。
首先, Xilinx和Altera的FPGA DSP功能基本相同, 两者基本上可以实现相近的功能. 比较小的差别是，Xilinx的DSP模块可以在模块内做乘累加运算, 而Altera的必须借助逻辑资源实现. 另外, 两者的速度有所区别, Xilinx V4标称最高速度为500MHz, 而Altera S2标称最高速率为450MHz.  在实际使用过程当中, 厂商的参数固然重要, 然而用户的使用对性能的影响也是非常大的. 我在Altera的S2C3上用综合工具自动识别 *, 以及调用 IP core, 发现两者的结果一致, 对于16X16的乘法器速度是367.65MHz, 对于8X8乘法器的速度是375.94MHz. Altera的IP core对流水线的支持相对较少, 只有2级. Xilinx综合工具似乎并没有那么智能, 只能把 * 识别出来, 用IP core的0级流水线替代, 而不能将乘法后跟随的一级流水线自己吸收到IP core中. 不过Xilinx的乘法器提供了18级流水线选择, 因而采用IP core例化实现的乘法器速度大大的提升. 我做的一个结果(V4-12), 采用综合工具infer出乘法器的速度是189MHz, 而采用IP core例化的方法实现的为260MHz和611MHz, 分别对应一级流水线和两级流水线结构.
从以上实验结果以及笔者的使用经验来看, 似乎Altera的软件的智能程度稍高一些, 然而Xilinx的硬件功能更强. 在本例子当中, 通过例化IP core, 可以大大提高乘法器的速度. 如果采用Xilinx的FPGA, 在项目前期时可以采用综合工具infer, 留两级流水线待将来例化IP core使用, 这样一方面可以达到原型平台的快速开发, 用可以保证以后性能的改进和提高. 而采用altera的FPGA, 似乎软件已经解决了以上问题, 利用IP core例化的效果并不明显.
