《CPLD FPGA控制系统设计 教学课件 ppt 作者 周京华第1章》由会员分享,可在线阅读,更多相关《CPLD FPGA控制系统设计 教学课件 ppt 作者 周京华第1章(32页珍藏版)》请在金锄头文库上搜索。
1、CPLD/FPGA控制系统设计,北方工业大学机电工程学院自动化系 周京华,第1章 可编程逻辑器件概述,本章要点 可编程逻辑器件的发展 可编程逻辑器件的基本分类及结构、特点 CPLD和FPGA的选择与应用比较,1.1 可编程逻辑器件的发展,可编程逻辑器件(Programmable Logic Device,PLD)是专用集成电路(Application Specific Integrated Circuit,ASIC)的一个重要分支,是厂家作为一种通用型器件生产的半定制电路,用户可通过对器件编程来实现所需要的逻辑功能。 目前,应用最广泛的PLD主要是现场可编程门阵列(Field Programm
2、able Gate Array,FPGA)和复杂可编程逻辑器件(Camplex PLD,CPLD)。,20世纪70年代中期,出现了可编程逻辑阵列 (Programmable Logic Array,PLA)器件。 20世纪70年代末,美国NMI公司(单片存储器公司)率先推出可编程阵列逻辑(Programmable Array Logic,PAL)器件 。 20世纪80年代初,Lattice公司最先发明了通用阵列逻辑(Generic Array Logic,GAL)器件。,20世纪80年代中期,A1tera公司推出了可擦除可编程逻辑器件(Erasable PLD,EPLD) 现场可编程门阵列(F
3、PGA)是Xilinx公司在1985年首家推出的,它是一种新型的高密度PLD 。 20世纪80年代末,复杂可编程逻辑器件(CPLD)由Lattice公司提出。 20世纪末,出现了片上可编程系统(System On a Programmable Chip,SOPC)器件。,1.2 可编程逻辑器件的基本分类,从可编程逻辑器件的发展过程来看,各大公司的可编程逻辑器件层出不穷,但是可编程逻辑器件的命名十分不规范。 一般来说,设计人员经常按照可编程逻辑器件的配置、原理等来进行分类。,1.2.1 按配置分类 按照芯片断电后信息是否丢失,PLD被划分为非易失性PLD和易失性PLD两大类。 非易失性PLD的内
4、部编程元件是或Flash Memory,它们的显著优点是系统断电后用户定义的芯片功能不会丢失,芯片的编程配置信息仍旧保留在PLD中,上电后芯片能够不受影响地继续可靠工作。 易失性PLD采用SRAM作为其编程元件。基于门阵列组合、通过查找表LUT完成数字逻辑功能、编程元件为SRAM的高密度易失性PLD称为FPGA。,1.2.2 按原理分类 从器件内部构成原理上来看,可以将PLD按结构原理划分为阵列型PLD和现场可编程门阵列FPGA两大类。 (1)阵列型PLD 其逻辑实现功能主要由与门阵列和或门阵列组成,进行编程操作主要通过修改内部电路的逻辑功能来实现。 (2)现场可编程门阵列FPGA FPGA器
5、件的基本结构是一种门阵列,它能够有效地实现各种大规模的逻辑函数。,1.3 CPLD的基本结构及特点,1.3.1 CPLD的基本结构 在CPLD的应用中,Altera公司的MAX7000系列器件具有一定典型性,本章以此为例介绍CPLD的结构。 1MAX7000系列器件结构 MAX7000结构中包含有5个主要部分,即逻辑阵列块(LAB)、宏单元、扩展乘积项(共享和并联)、可编程内连线阵列(PIA)和I/O控制模块。,(1)逻辑阵列块(LAB) 一个LAB由16个宏单元的阵列组成。MAX7000主要是由多个LAB组成的阵列以及它们之间的连线构成,如图1-1所示。,图1-1 MAX7128逻辑阵列块结
6、构图,(2)宏单元 MAX7000系列中的宏单元由3个功能块组成:逻辑阵列、乘积项选择矩阵和可编程寄存器,它们可以被单独地配置为时序逻辑和组合逻辑工作方式。,图1-2 每个宏单元内部结构图,(3)扩展乘积项 大部分逻辑函数能够用每个宏单元中的5个乘积项实现,但更复杂的逻辑函数需要扩展乘积项。 MAX7000系列器件的内部结构中,扩展乘积项可以分为两种形式:一种是共享扩展乘积项,另一种是并联扩展乘积项。,图1-3 共享扩展乘积项,图1-4 并联扩展乘积项,(4)可编程内连线阵列(PIA) 在MAX7000系列器件的内部结构中,可编程逻辑阵列之间的逻辑布线是通过可编程内连线阵列(PIA)来进行实现
7、的。所有MAX7000系列器件的专用输入引脚、I/O引脚和宏单元输出都可以反馈到PIA中,PIA可以把这些信号送到整个器件的任何地方。只有每一个LAB需要信号,才真正地给它提供从PIA到LAB的内部进线,如图1-5所示。,图1-5 PIA与LAB的布线方式,(5)I/O控制模块 I/O控制模块允许I/O引脚单独被配置为输入、输出和双向工作方式,所有I/O引脚都有一个三态缓冲器,它的控制端信号来自一个多路选择器,可以选择用全局输出使能信号其中之一进行控制,或者直接连到地(GND)或电源(VCC)上。,图1-6 I/O口控制模块,2CPLD的配置和编程 MAX7000的输出可以根据不同系统的需要进
8、行配置。MAX7000器件(除44脚封装的器件)支持多电压(MultiVolt)接口,这使得MAX7000器件可以和不同供电电压的系统一起工作。MAX7000可以将I/O引脚设置在3.3V或5V电源电压下工作。 MAX7000系列器件可以通过标准的JTAG接口进行编程。通常用一条编程电缆把准备编程的器件与计算机的并口或是串口相连接,利用开发系统的下载功能对器件进行编程。A1tera公司可以提供BitBlaster串口和ByteBlaster并口两种下载电缆。通常使用的编程电缆是ByteBlaster并口下载电缆。,1.3.2 CPLD的基本特点 A1tera公司的MAX系列产品基本上属于CPL
9、D结构。主要特点如下: 1)高性能可擦除器件,采用第二代多阵列矩阵(MAX)结构。 2)引脚之间的延时为6ns,可达最高151.5MHz的工作频率。 3)集成密度门数可达1000门,可用门数为6005000门。 4)MAX7000系列通过标准的JTAG接口,支持在系统可编程(ISP)技术。 5)高性能的可编程连线阵列(PIA)提供一个高速的、延时可预测的互联资源网络。 6)每个宏单元中可编程扩展乘积项可达32个。 7)具有全面保护设计的可编程保密位。 8)具有独立的全局时钟信号。 9)可支持2.5V(MAX7000B),3.3V(MAX7000A),5.0V(MAX7000S)电源供电。,1.
10、4 FPGA的基本结构及特点,1.4 FPGA的基本结构及特点 FPGA是一种可由用户自定义并进行配置的高密度专用集成电路。FPGA具有阵列型PLD的优点,同时其结构又类似掩模可编程门阵列,因此具有更高的集成度和更强大的逻辑实现能力,使得设计更加灵活和容易实现。,1.4.1 FPGA的基本结构 Altera公司的FPGA器件包括FLEXl0KE、ACEXlK、APEX 20K/20KE、Stratix 、Cyclone/Cyclone 2等。本节以FLEX10K系列为例来说明FPGA器件的基本结构。,1FLEX10K系列器件 (1)FLEX10K系列器件的结构 FLEX10K系列器件是高密度阵
11、列嵌入式可编程逻辑器件系列,最大可达10万个典型门,5392个寄存器;采用0.5mm CMOS SRAM工艺制造;具有在系统可配置特性;在所有I/O端口中有I/O寄存器。 FLEX10K系列器件主要由嵌入式阵列块、逻辑阵列块、快速通道(Fast Track)互连和I/O单元4部分组成,如图1-7所示。,图1-7 FLEX10K器件的结构图,(2)FLEX10K系列器件的配置和编程 FLEX10K 器件的配置分为两大类:主动配置方式和被动配置方式。,表1-1 FLEX10K器件的配置方式,1)主动配置。 主动配置是较为常用的配置方式,电路接口简单,如图1-8所示。nCONFIG引脚接成高电平(V
12、cc)。,图1-8 主动串行配置图,2)被动配置。 被动配置是把FLEX10K芯片作为一个微处理器或编程设备的一个外设,配置所需要的时钟、数据都是由微处理器或编程设备提供的。 3)编程方式。 所有FLEX10K器件都支持联合测试行动组(Joint Test Action Group,JTAG)的IEEE std1149.11990的边界扫描测试(BST)标准。所有FLEX10K器件能够利用串行/并行下载电缆、JTAG编程指令或者使用专门的硬件设备进行配置。,1.4.2 FPGA的基本特点 对于现场可编程门阵列来说,其基本结构是由可编程的逻辑单元和一个用于存储编程数据的静态存储器组成的,可编程逻
13、辑单元的工作状态都是由静态存储器中的数据来设定的。概括起来,FPGA的优点主要体现在: 1)FPGA中可编程逻辑单元的门阵列形式克服了可编程逻辑器件中与或阵列的局限性,这样在组成一些复杂的、特殊的数字系统时显得十分灵活,而且规模可以做得很大。 2)FPGA中由于加大了可编程的I/O端口的门数,从而可方便合理安排其中各引脚信号。 3)FPGA可以反复擦除和重新编程,最适用于大规模专用集成电路的试验阶段,采用FPGA可以节省成本,缩短周期,并加快产品的上市。 在实际的应用过程中,FPGA存在着一定的缺点,而这些缺点限制了FPGA在某些场合中的使用,FPGA的缺点主要体现在: 1)FPGA中信号的传
14、输延时是不确定的。在构成复杂的数字系统时,由于每个信号的传输途径不同,所以传输延时一般是不可能相等的,这样将会限制器件的工作速度。 2)FPGA中的编程数据存储器是静态随机存储器,所以断电后数据便会消失。因此每次上电后都要重新装载编程数据,并需要配备保存编程数据的EPROM或。 3)FPGA中的可编程数据是存放在EPROM或中的,同时上电后需要读出数据并送到FPGA的静态存储器中,不利于保密。,1.5 CPLD与FPGA的选择与应用比较,尽管CPLD和FPGA都是PLD,有很多共同特点,但由于CPLD与FPGA结构上的不同,在使用过程中仍然具有很大的差异。 1CPLD/FPGA的实际选择 在应
15、用开发中一般应考虑以下几个问题。 (1)逻辑资源量的选择 (2)芯片速度的选择 (3)器件功耗的选择,2CPLD与FPGA应用比较 CPLD/FPGA的选择主要看开发项目本身的需要,对于普通规模且产量不是很大的产品项目,通常使用CPLD比较好。主要是因为: 1)在中小规模范围CPLD价格较便宜,能直接用于系统。各系列的CPLD器件的逻辑规模覆盖面属中小规模,有很宽的可选范围,上市速度快,市场风险小。 2)CPLD的结构大多为或Flash ROM形式,编程后即可固定下载的逻辑功能,使用方便,电路简单。,3)目前常用的CPLD多为在系统可编程的硬件器件,编程方式便捷,能够保证所设计的电路系统随时通
16、过各种方式进行硬件修改和硬件升级,且有良好的器件加密功能。 4)CPLD中有专门的布线区和逻辑块,引脚至引脚间的信号延时几乎是固定的,与逻辑设计无关。这种特性使得CPLD的设计调试比较简单,逻辑设计中的毛刺现象比较容易处理,采用廉价的CPLD就能获得比较高速的性能。,综上所述,CPLD与FPGA在应用方面不同主要是以下三方面: 1)FPGA是“时序丰富”型的,更适合于完成时序逻辑,CPLD是“逻辑丰富”型的,更适合于完成各种算法和组合逻辑,即FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。因此,CPLD适合用于设计译码等复杂组合逻辑;FPGA的制造工艺决定了FPGA芯片中包含的LUT和触发器的数量非常多,集成度更高,所以FPGA适用于设计中使用到大量触发器电路的情况。 2)FPGA是门级编程,且LAB之间是采用分布式互连,FPGA主要通过改变内部连线的布线来编程;而CPLD是逻辑块级编程,且其逻辑块互连是集总式,CPLD通过修改具有固定内连电路的逻辑功能来编程,又由于CPLD有专用连线,每个宏单元相连,信号到每个宏单元的延