EDA技术与实践教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 大规模可编程逻辑器件

2.2.1 FPGA的结构与工作原理

美国的Xilinx公司于1984年成立,次年推出了世界上第一块FPGA芯片——XC2064,从最初的1200个可用门,发展到目前几百万门的单片FPGA芯片。FPGA是基于查找表(Look-Up Table,LUT)结构技术、SRAM生产工艺的PLD。基于SRAM工艺的,在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作。由于配置时间很短,不会影响系统正常工作。

(1)FPGA的逻辑实现原理

FPGA是基于LUT结构技术的原理来实现逻辑的,其本质是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户描述了一个逻辑电路后,开发软件会自动计算其所有可能的结果,并先行写入RAM,这样,每输入一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

表2-2是一个4输入与门的例子,A、B、C、D由FPGA芯片的引脚输入后进入可编程连线,然后作为地址线连到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据后输出,这样就实现了组合逻辑,PLD完成了电路的功能。

表2-2 4输入与门

对于一个LUT无法完成的电路,需要通过进位逻辑将多个单元相连。

(2)特点

基于LUT技术和SRAM工艺的FPGA器件,下载数据将存入SRAM,而SRAM掉电后所存数据将丢失,有如下5个特点。

①掉电易失性。掉电后信息就会丢失。在FPGA调试期间,由于编程数据改动频繁,没有必要每次改动都将编程数据下载到E2PROM,此时可用下载电缆将编程数据直接下载到FPGA内部查看运行结果,这个过程称为在线重配置(In Circuit Reconfigurable,ICR)。调试完成后,需要将数据固化在一个专用芯片中(称为配置芯片,详见2.2.6节),上电时,先由配置芯片对FPGA加载数据,十几毫秒到几百毫秒后FPGA即可正常工作。

②无限次、快速、动态配置。

③相对容量大,单位LE(逻辑单元)性价比高。

④一般不可以直接加密。

⑤使用方法相对复杂。

(读者可以联想计算机的内存以帮助记忆)

(3)典型器件——FLEX 10K系列

灵活逻辑单元矩阵(Flexible Logic Element Matrix,FLEX)系列是Altera公司推出的基于SRAM编程的现场可编程逻辑器件,具有高密度、在线配置、高速度与连续式布线结构等特点,其集成度达到了10万门级,25万个典型门,5392个寄存器;采用0.22μm CMOS SRAM工艺制造;具有ICR特性;在所有I/O端口中有输入/输出寄存器;采用3.3V或5.0V工作模式,是业界首次集成了嵌入式阵列块EAB的芯片。所谓EAB,实际是一种大规模的SRAM资源,它可以被方便地设置为RAM、ROM、FIFO,以及双口RAM等存储器。FLEX 10K在结构上包括:

①嵌入阵列块(EAB);

②逻辑阵列块(LAB);

③逻辑单元(LE);

④快速通道互连(Fast Track);

⑤I/O单元(IOE)。

由一组LE组成一个LAB。LAB按行和列排成一个矩阵,并且在每一行中放置了一个EAB。在器件内部,信号的互连及信号与器件引脚的连接由Fast Track提供,在每行(或每列)Fast Track互连线的两端连接着若干个IOE。图2-6给出了FLEX 10K的结构。

图2-6 FLEX 10K结构图

FLEX 10K系列的特点包括以下几点:

①高密度,典型门数达10000~250000,逻辑单元数为576~12160;

②功能更强大的I/O引脚,每一个引脚都是独立的三态门结构,具有可编程的速率控制;

③嵌入式阵列块,每个EAB提供2K比特位,可用来作存储器使用或者用来实现逻辑功能;

④逻辑单元采用查找表结构;

⑤采用连续式的快速通道互连,可精确预测信号在器件内部的延时;

⑥实现快速加法器和计数器的专用进位链;

⑦实现高速、多输入逻辑函数的专用级联链。

表2-3列出了FLEX 10K系列器件的基本特性。

2.2.2 CPLD的结构与工作原理

Altera公司于1983年成立并推出第一个演示盒T-bird Tail Lights,次年推出世界上第一个CPLD芯片——EP300。CPLD是基于乘积项(Product-Term)技术,以及E2PROM(或Flash)工艺的PLD。

早期的CPLD主要用来替代PAL器件,所以其结构与PAL、GAL基本相同,采用了可编程的与阵列和固定的或阵列结构,再加上一个全局共享的可编程与阵列,把多个宏单元连接起来,并增加了I/O控制模块的数量和功能。

20世纪90年代CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性。基于乘积项的CPLD基本都是由E2PROM或Flash工艺制造的,一上电就可以工作,无需其他芯片配合。

(1)CPLD的逻辑实现原理

CPLD是基于乘积项结构原理来实现逻辑运算的,CPLD采用了可编程的与阵列和固定的或阵列结构。下面以图2-7所示电路为例,具体说明CPLD是如何利用乘积项结构实现逻辑运算的。

图2-7 示例电路

假设组合逻辑的输出为F,则

CPLD将以图2-8的方式来实现组合逻辑F

图2-8 CPLD工作方式

ABCD由PLD芯片的引脚输入后进入可编程连线阵列(PIA),在内部会产生ABCD八个输出。图中每一个叉表示相连(可编程熔丝导通),所以得到:

这样组合逻辑就实现了。

对于一个复杂的电路,一个宏单元是不能实现的,需要通过并联扩展项和共享扩展项将多个宏单元相连。宏单元的输出也可以连接到可编程连线阵列,再作为另一个宏单元的输入。这样CPLD就可以实现更复杂的逻辑。

(2)特点

基于乘积项结构和E2PROM(或Flash)工艺的CPLD器件,有如下5个特点。

①掉电非易失性。在下载编程时既可以使用专用下载电缆,也可以用编程器编程。通过专用电缆把数据下载到CPLD器件中,这个过程称为在系统编程(In System Programable,ISP)。

②有限次编程,速度较慢。

③相对容量小,单位宏单元性价比低。

④直接加密,保密性好。

⑤无须外部存储器芯片,使用简单方便。

(读者可以联想常用的U盘以帮助记忆)

(3)典型器件——MAX 7000系列

MAX 7000系列是基于Altera公司第二代阵列矩阵MAX乘积项结构,采用了先进的CMOS E2PROM技术制造的CPLD,密度范围为600~10000个可用逻辑门(32~512个宏单元),速度达3.5ns的引脚到引脚延迟,支持ISP,提供5.0V、3.3V、2.5V和1.8V核电压。基于其可预见的性能,即用性能力和大量可选封装形式,MAX 7000是相应密度层次使用最广泛的可编程逻辑解决方案。MAX 7000在结构上包括:

①逻辑阵列块(Logic Array Block,LAB);

②宏单元(Macrocells);

③扩展乘积项(Expender Product Term);

④可编程连线阵列(Programmable Interconnect Array,PIA);

⑤I/O控制块(I/O Control Block)。

MAX 7000的结构如图2-9所示。

图2-9 MAX 7000的结构图

该系列器件主要有以下特点:

①采用第二代多阵列矩阵(MAX)结构;

②MAX 7000系列通过标准的JTAG接口,支持ISP;

③集成密度为600~10000个可用门;

④引脚到引脚之间的延时为6ns,工作频率最高可达151.5MHz;

⑤2.5V、3.3V或者5V电源供电;

⑥在可编程功率节省模式下工作,每个宏单元的功耗可降到原来的50%或更低;

⑦高性能的可编程连线阵列提供一个高速的、延时可预测的互连网络资源;

⑧每个宏单元中可编程扩展乘积项可达32个;

⑨具有可编程保密位,可全面保护用户的设计思想。

表2-4列出了MAX 7000系列器件基本特性。

表2-4 MAX 7000系列器件基本特性

2.2.3 其他类型的FPGA和CPLD

随着技术的发展,2004年以后一些厂家推出了新型的FPGA/CPLD,这些产品模糊了FPGA和CPLD的区别。例如Altera的MAXⅡ系列CPLD,是一种基于FPGA(LUT)结构,集成了配置芯片(CPLD),在本质上是一种在内部集成了配置芯片的FPGA,但配置时间极短,上电就可以工作,对用户来说,感觉不到配置过程,可以与传统的CPLD一样使用,容量和传统FPGA类似,Altera把它归为CPLD。还有像Lattice的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,其容量大,也是LUT架构,Lattice仍把它归为FPGA。

2.2.4 Altera成熟器件及命名规则

(1)成熟器件

表2-5总结了Altera成熟器件。

表2-5 Altera成熟器件

(2)命名规则

Altera使用逻辑单元(LE)来衡量器件拥有的可配置资源(一个小尺寸的NiosⅡ软核占用大约600个LE);Xilinx使用Logic Cell,同时也使用系统门数(system gates)来标志器件的型号。Altera用EP做前缀,Xilinx用XC。后面2S表示SpartanⅡ,2C表示CycloneⅡ,以此类推,VirtexⅡ就是2V,StratixⅡ就是2S。之后跟的数字,Xilinx使用系统门数表示的可用资源,以K作为单位;而Altera使用LE来标志的可用资源,单位是个,不是K。Altera从推出的APEXⅡ系列器件起,采用基于逻辑单元的器件命名方法定义可编程逻辑产品。按照新的器件命名方法,每一器件的型号中都有一个以千为单位的数字代表逻辑单元的近似数目。

PQ208、TQ144等都是封装了。I/C表示工业/经济型。要注意的是Speed Grade,Xilinx的Speed Grade对于CPLD和FPGA是不同的,CPLD的Speed Grade就是延时时间,所以越小越好,而FPGA则相反,越大越好。Altera的Speed Grade是越小越快。

对于内部RAM,Altera将它们分成M512、M4K、M-RAM。Cyclone中的是M4K,而Stratix中同时拥有三种内部RAM块,这样的结构被称之为TriMatrix。Xilinx使用Block RAM。

例如开发板DE2上的芯片是EP2C35F672C6,EP表示是Altera的芯片,2C表示CycloneⅡ,35表示大约有35000个LE,F为FineLine BGA(FBGA)封装,672个I/O脚,C为民用型,速度等级为6。我们可以从器件名称获知器件的基本信息!

图2-10和图2-11分别是Altera和Xilinx器件命名示例。

图2-10 Altera器件命名示例

图2-11 Xilinx器件命名示例

2.2.5 FPGA和CPLD器件选择

在设计电子系统前,应做好包括系统设计、方案论证和器件选择准备等工作。根据所设计项目的功能,初步定义I/O端口;根据器件本身的资源、系统延迟时间、系统速度要求、连线的可布性及成本等方面进行权衡,以选择合适的FPGA/CPLD器件,使器件在资源和速度上能够满足所设计电子系统的需求。

(1)选择FPGA还是CPLD

根据FPGA/CPLD的内部结构和生产工艺,可以知道其不同的特征,表2-6罗列了CPLD与FPGA的主要区别。简而言之,CPLD适合于设计组合逻辑,而FPGA适合于设计时序逻辑。

表2-6 CPLD与FPGA的区别

(2)选型原则

数字系统逻辑功能设计之前的一个重要问题,就是FPGA/CPLD器件的选型,包括厂商的选择,以及器件系列和型号的选择。

每个FPGA/CPLD厂商,都有自己特有的核心技术和相应的产品。对于继承性产品的开发,尽量使用熟悉并一直使用的FPGA/CPLD厂商的产品;对于新产品的开发,则可以根据待设计系统的特点和要求,以及各种FPGA/CPLD器件的特性,初步选择FPGA/CPLD厂商和产品系列。

另外,还可以根据FPGA/CPLD芯片成本,来选择FPGA/CPLD器件厂商和产品系列。比如Altera的Stratix系列和Xilinx的Virtex系列,属于高性能产品;而Altera的Cyclone和Xilinx的Spartan系列,则属于低成本FPGA器件。

(3)型号的选择

选择具体型号的FPGA/CPLD时,需要考虑的因素较多,包括引脚数量、逻辑资源、片内存储器、功耗、封装形式等。另外,为了保证系统具有较好的可扩展性和可升级性,一般应留出一定的资源余量。

(4)外围器件的选择

FPGA/CPLD选定之后,还要根据它的特性,为其选择合适的电源芯片、片外存储器芯片、配置信息存储器等多种器件。在系统设计和开发阶段,应该尽量选择升级空间大、引脚兼容的器件。在产品开发后期,再考虑将这些外围器件替换为其他的兼容器件,以降低成本。

2.2.6 Altera配置芯片简介

基于SRAM工艺的FPGA,具有掉电易失性。需要外加专用芯片,在上电的时候,由这个专用芯片把数据加载到FPGA中,然后FPGA就可以正常工作。称这种芯片为配置芯片。

(1)标准型配置器件

标准型配置器件所提供的功能特性,主要包括ISP、在很广的密度范围内进行MultiVolt I/O操作、小外形封装和高速编程等,为低密度的FPGA提供了低廉的解决方案。标准型配置器件包括EPC2、EPC1、EPC1441、EPC1213、EPC1064和EPC1064V,其中EPC2属于闪存(Flash Memory)器件,具有可擦写功能,而EPC1、EPC1441、EPC1213、EPC1064和EPC1064V基于EPROM结构,是OTP器件。

(2)增强型配置器件

Altera推出的包括EPC4、EPC8和EPC16器件在内的增强型配置器件,拥有高达30Mbit(带压缩)的配置存储器,属于闪存器件,并为大容量FPGA提供单器件一站式的解决方案。拥有丰富功能的增强型配置器件,允许进行远程的系统升级,支持ISP,将未使用的存储器用作通用存储器,可以大幅度降低配置所需时间。增强型配置器件的特性主要包括数据压缩、动态配置、8bit的并行配置、外部闪存接口、ISP、时钟可编程和堆叠式芯片技术。

(3)串行配置器件

Altera公司的串行配置器件容量大,尺寸小,价格低。

Altera公司的串行配置器件是业界低价格的配置器件。串行配置器件的价格传统上总是和低价位FPGA相比较,一般是在FPGA的30%~50%之间,而Altera公司的新型串行配置器件的价格只有对应FPGA的10%左右,其价格甚至比一次性编程的解决方案更便宜。

串行配置器件系列包括EPCS1、EPCS4、EPCS16、EPCS64和EPCS128五个产品,分别提供1Mbit、4Mbit、16Mbit、64Mbit和128Mbit的存储容量。串行配置器件具有包括ISP和Flash存储器访问接口等先进特性,8、16引脚小外形封装,增加了在低价格、小面积应用领域的使用机会。