1、FPGA定义及特点
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。可配置逻辑模块是实现用户功能的基本单元,它们通常排列成一个阵列,散布整个芯片;输入输出模块IOB完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;内部连线包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,构成特定功能的电路。
FPGA的基本特点主要有:
. 采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片;
. FPGA可做其它全定制或半定制ASIC电路的中试样片;
. FPGA内部有丰富的触发器和I/O引脚;
. FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;
. FPGA采用高速CHMOS工艺,功耗低,可以与CMOS,TTL电平兼容。
2、CPLD定义及特点
CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。到90年代,CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性。
CPLD可编程方案的特点如下:
· 逻辑和存储器资源丰富(Cypress De1ta 39K200的RAM超过480 Kb);
· 带冗余路由资源的灵活时序模型;
· 改变引脚输出很灵活;
· 可以装在系统上后重新编程;
· I/O单元数目多;
3、FPGA与CPLD的区别与联系
CPLD是复杂可编程逻辑器件的简称,FPGA是现场可编程门阵列的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。
目前有多家公司生产CPLD/FPGA,最大的三家是:ALTERA,XILINX,LAT-TICE。CPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,CPLD适合用于设计译码等复杂组合逻辑。但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,CPLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于CPLD。所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:
· CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
· CPLD的连续式布线结构决定了它的时序延迟是均匀的、预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
· 在编程上FPGA比CPLD具有更大的灵活性。
· CPLD通过修改具有固定的内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;
· FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。
· FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
· 一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
|