在21世纪初,有两个系列的FPGA元器件拥有吸引力的实现DSP算法的功能,这是因为这些FPGA具有快速进位逻辑的能力,从而能够以超过50MHz的速度实现32位(非流水线)的加法。
这两个系列就是Xilinx XC4000系列(以及的如Spartan和Virtex系列)和Altera FLEX10K系列(以及的如APEX、ACEX、Mercury、Stratix和Excalibur系列)元器件,其中后者是Altera的8K元器件再加上额外的称作嵌入式阵列模块(embedded array block,EAB)的2KBRAM模块。Xilinx元器件具有FPGA中典型的宽泛的路由选择级,而Altera元器件则是基于Altera的CPLD中使用的宽带总线架构,但是FLEX 10K的基本模块已经不再是CPLD中大规模的PLA。现在取而代之的是FPGA典型的中等颗粒度器件,例如:小规模的查询表(smalllook-up tables,LUT)。
Xilinx XC4000系列的基本逻辑单元称作可配置逻辑模块(configurable logic block,CLB),具有两个独立的4输入1输出的LUT和快速进位,另外一个3输入1输出的LUT将两个独立的LUT连接起来,还有两个触发器,如图1所示。Xilinx元器件具有5层路由,从CLB到CLB,再到跨过整个芯片的长线。每一个CLB都可以用作16×2或32×1位的RAM或ROM。表1列出了Xilinx XC4000系列的部分元器件。
图1 XC4000逻辑单元
表1 Xilinx XC4OOO系列
Altera FLEX 10K元器件的基本逻辑模块使用小规模LUT实现了中等颗粒度。10K元器件是在Altera 8K元器件的基础上再加上被称为嵌入式阵列模块(embedded array block,EAB)的2KB RAM模块。Altera FLEX 10K元器件中的基本逻辑模块称作逻辑元件(logic element,LE)3,如图2所示,包括一个触发器、一个4输入1输出的LUT,或一个3输入1输出的LUT和一个快速进位或者与川|乘积项扩展电路。8个La组成一个逻辑阵列模块(logic array block,LAB)。每一排包括一个嵌入式阵列模块(embedded away block,EAB,例如:2KB的RAM或ROM),可以配置成256×8、512×4、1024×2或2048×1的存储器元器件。这些EAB和LAB通过每列100~300根线的高速宽带总线连接起来,如图3所示。表2给出了Altera FLEX 10K系列的部分元器件。
图2 FLEX逻辑单元
图3 FLEK 10K 元器件内体总体总线结构
表2 FLEX 10K系列
如果将这两种分别来自Altera和Xilinx的路由策略加以比较,就会发现这两种方法都很有价值:Xilinx的方法拥有更多的局部路由资源而全局资源则较少,这对DSP的使用是有促进作用的,因为绝大部分数字信号处理算法都是处理局部数据的。具有宽带总线的Altera方法也有其价值,因为典型的操作不是在“位片(bit slice)”操作中一位一位地处理,更为常见的是必须把16~32位的宽带数据矢量转移到下一个DSP模块中。
欢迎转载,信息来自维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。