最近有很多人在问,学习 FPGA 到底是选择 Intel altera 的还是 xilinx 的呢,于是我就苦口婆心的说了一大堆,中心思想大概就是,学习 FPGA 一定要学习 FPGA 的设计思想以及设计原理,不要纠结于单一的实验平台或者操作软件,因为你想在这个行业越走越高的话,广度和深度都是要有所了解的。

 

初期学习的时候尤其注重动手,选择一款操作平台以及操作软件是为了让你更好的去动手做,而不是让你在这款软件或者实验平台去做文章,因为不懂原理的话,换个环境你同样是什么都不明白。尤其是现在的科技公司产品更新升级换代还比较快,要学会去掌握最核心的知识点才是王道。

 

下面,咱们就来简单聊聊 Intel altera 和 Xilinx 的 FPGA 区别,欢迎大家一起交流,三人行,必有我师,共同学习,共同进步。

 

对于 Intel altera 和 Xilinx 的 FPGA,本人认为可以分为两个方面去比较一下,基本逻辑资源和内部基本架构。从目前企业中做开发使用的广泛性来说,Xilinx 占得比重确实是大一些,但是从其他方面来说,比如价格,相对而言 Intel altera 的便宜些。

 

对于两者的特点,Xilinx 的短线资源非常丰富,这样在实现的时候,布线的成功率很高,尤其是逻辑做得比较满的时候。而 Intel altera 的 FPGA 的短线资源经常不够用,经常要占用 LE 来充当布线资源,这也是为什么 Intel altera 的 FPGA 可以便宜的原因,资源少些当然便宜,但是如果你是高手,也能把他的性能发挥得很好。 另外就是关于块 RAM,Xilinx 的双口 RAM 是真的,Intel altera 的没有双口 RAM,如果你要实现真正的双口 RAM,只能用两块 RAM 来背靠背地实现,这样你的 RAM 资源就少了一半,如果你的应用对片内双口 RAM 的需求很重要,用 Intel altera 的就划不来。

 

下面咱们就从我刚才说的基本逻辑资源和内部基本架构这两个方面来聊聊。    

  

1、基本逻辑资源

基本的逻辑资源我建议大家可以去看看两家的芯片做个比较,今天时间有限就不给各位详谈了,通过比较你会发现我上面说的还是有点道理的。

 

2、内部基本架构
从 1985 年 Xilinx 公司推出第一片 FPGA 到现在,FPGA 的使用已经有 30 多年的历史了。目前主流市场的 FPGA 主要还是 Xilinx 和 Intel altera 两大系列,下面分别来介绍下它们各自的基本结构组成。


Xilinx 的 FPGA 主要由以下单元结构组成:可配置逻辑块(CLB)、时钟管理模块(CMT)、存储器(RAM/FIFO)、数字信号处理模块(DSP)和一些专用模块。以 Virtex-5 为例,简单介绍下各模块的功能。

 

1、可配置逻辑块(CLB)

CLB 是 FPGA 中组成设计逻辑的主要资源,也是电路设计中工作的主要对象,下面对 CLB 的内外结构做一个简单介绍。FPGA 的逻辑就是由阵列排布的 CLB 实现的,每个 CLB 单元都和一个开关阵列相连,并受其控制以实现逻辑,如下图所示: 

 

 

每一个 CLB 中包含有两个基本结构(Slice),每个基本结构中包含 4 个查找表(LUT)、4 个存储单元、广函数多路器(Wide_function Multiplexer)和进位逻辑,这种基本结构(Slice)称为 SLICEL。另外,有些基本结构(Slice)中还包含使用 RAM 存储数据的功能和使用 32 位寄存器移位的功能,支持这些功能的基本结构称为 SLICEM。

 

2、时钟管理模块(CMT)

时钟管理模块(CMT)用于产生高质量的时钟,以 Virtex-5 系列器件为例,CMT 包括两个 数字时钟管理单元(DCM)和一个锁相环电路(PLL)。

 

3、存储器(RAM/FIFO)

现代 Xilinx 的 FPGA 都有内部的存储器块,以 Virtex-5 为例,内部包含若干块 RAM,每一块 36KB,并且 RAM 的大小可以灵活配置。Virtex-5 内的 RAM 是同步的双口 RAM,并且可以配置为多速率的 FIFO 存储器,极大地提高了设计的灵活性。

 

4、数字信号处理模块(DSP)

大多数的 FPGA 产品都提供了 DSP。

 

5、其他专用模块

除了上述模块外,在现代的 Xilinx 的 FPGA 产品中还有一些其他专用模块,例如:Rocket IO 千兆位级收发器、PCI Express 端点模块和三态以太网 MAC 模块等。


Intel altera 的产品一般包括如下单元结构:逻辑阵列模块(LAB)、TriMatrix 存储器模块(RAM)、数字信号处理模块(DSP)和锁相环模块(PLL)。下面以 Startix II 器件为例说明 Intel altera 公司产品的结构。

 

1、逻辑阵列模块(LAB)

逻辑阵列模块(LAB)的主要结构是 8 个适应逻辑模块(ALM),还包括一些进位链和控制逻辑等结构。适应逻辑模块(ALM)是 Stratix II 器件的基本模块,其结构如下图。

 

 

每个 ALM 中都包含了两个可编程的寄存器、两个专用全加器、一个进位链、一个共享算术链和一个寄存器链。需要注意的是,在上图所示的组合逻辑块(Combinational Logic)中包含了两个 4 输入 4 查找表(LUT)和 4 个三输入的查找表。

 

2、 存储器模块(RAM)

Stratix II 器件具有 TriMatrix 存储结构,它包括 3 种大小的嵌入式 RAM 块。TriMatrix 存储器包括 512 位的 M512 块、4Kb 的 M4K 块和 512Kb 的 M-RAM 块,每个都可以配置支持各种特性。

 

3、 数字信号处理模块(DSP)

DSP 块结构是为实现多种 最大性能和最小逻辑资源利用率的 DSP 功能而优化的。

 

4、 锁相环(PLL)

Stratix II 器件具有多达 12 个锁相环(PLL)和 48 个独立系统时钟,可以作为中央时钟管理器满足系统时序需求。


以上可以看出,Xilinx 与 Intel altera 的 FPGA 的结构最大不同还是其逻辑单元部分:Xilinx 的逻辑单元基本组成为可配置逻辑模块(CLB),而 Intel altera 的为 LAB,但更深一层讲,CLB 和 LAB 里面也都是由 LUT、触发器等构成的。两个公司的 FPGA 组成各有特点,这也决定了它们的 FPGA 产品在功能上各有特点。

 

总的来说,Xilinx 家独有 可配置逻辑块(CLB)/Slice,Intel altera 家独有逻辑阵列模块(LAB),可以这么理解。简单聊聊,希望对各位大侠学习理解有所帮助。