前言
经常有朋友会问我,“我这个方案是用A家的FPGA还是X家的FPGA呢?他们的容量够不够呢?他们的容量怎么比较呢?”当然,在大部分时候,我在给客户做设计的时候,直接会用到最高容量的产品,因为我们的产品对成本不敏感。不过,在此还是比较一下两家的产品,简单写写一些自己的想法,供大家参考,如有不对的地方,还请指正!
进入正题
要比较Xilinx和Altera的FPGA,就要清楚两个大厂FPGA的结构,由于各自设计的不同,两家的FPGA结构各不相同,参数也各不相同,但可以统一到LUT(Look-Up-Table)查找表上。
下图就是A家的Cyclone IV系列片子的参数:
id="iframe_0.4295588548075324" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.union-rnd.com/wp-content/uploads/2014/05/20140501205654_45386.jpg?_=4682471%22%20style=%22border:none;max-width:848px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.4295588548075324',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 848px; height: 354px;">
可以看到,A家的片子,用的是LE这个术语。
而下图是X家的Spartan-6 片子资料:
id="iframe_0.4185329906095001" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.union-rnd.com/wp-content/uploads/2014/05/20140501205924_25094.jpg?_=4682471%22%20style=%22border:none;max-width:848px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.4185329906095001',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 848px; height: 426px;">
X家用的是CLB这个术语作为基本单元。
再看看两家的基本单元有何不同:
A家的LE如下图:
id="iframe_0.3370791175520651" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.union-rnd.com/wp-content/uploads/2014/05/20140501210051_79858.jpg?_=4682471%22%20style=%22border:none;max-width:848px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.3370791175520651',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 848px; height: 525px;">
就是一个4输入LUT+FF构成
而X家的CLB如下:
id="iframe_0.8558660137688325" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.union-rnd.com/wp-content/uploads/2014/05/20140501210747_11567.jpg?_=4682471%22%20style=%22border:none;max-width:848px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.8558660137688325',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 564px; height: 478px;">
一个CLB由2个SLICE构成,一个SLICE含有4个6输入LUT,所以LUT=8*CLB。
id="iframe_0.8638910164393119" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.union-rnd.com/wp-content/uploads/2014/05/20140501211140_25664.jpg?_=4682471%22%20style=%22border:none;max-width:848px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.8638910164393119',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 783px; height: 134px;">
这样的话,可以较比一下。EP4CE6基本就和XC6SLX9一个级别。。。。当然A家的片子是4输入LUT远比不上X家的6输入LUT。而X家的S-6片子,一个Slice内部有4个lut,8个FF。简而言之,一个Slice=四个LE。要注意的是A家C5以下的片子是4输入LUT而X家的是6输入LUT,差别也较大。如果不考虑FF,那么一个X家的slice=4个A家的LE。例如XC6SLX16含有2278个slices=EP4CE10(9000LE)的样子。当然,S-6的FF多一倍,达到了18224个。
在Virtex-5中(我们的设计大部分是Virtex,V5V6V7),一个Slice包含了4个LUT和4个FF。所以单纯从逻辑资源来看,S-6一个Slice比V-5的Slice强。当然V5的GTPGTX等等还有IO数量是S-6赶不上的。当然,A家的Cyclone V系列的片子,内部和前几代完全不同,采用了从高端的Stratix系列下放的技术,在新设计时,值得推荐~!