可编程逻辑器件64第2章CPLD和FPGA2.1PLD介绍可编程逻辑器件PLD(ProgramableLogicDevice)是允许用户编程(配置)实现所需逻辑功能的电路,它与分立元件相比,具有速度快、容量大、功耗小和可靠性高等优点。由于集成度高,设计方法先进、现场可编程,可以设计各种数字电路,因此,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域内得到了广泛应用。不久的将来将全部取代分立数字元件,目前一些数字集成电路生产厂商已经停止了分立数字集成电路的生产。因此应该学会PLD的设计技术。PLD电路早期代表产品由XLINX公司推出的门阵列,称为FPGA(FieldProgramableGateArray),随后ALTERA公司推出以并行走线的PLD产品,称为CPLD(ComplexProgramableLogicDevice),这些早期产品价格高达万元,其开发软件价格高达几十万元。但是随着生产技术水平的提高,现在PLD产品的价格已大大降低,一片5000门、具有5KX8的SRAM电路作配置、84脚封装、速度达40—200MHz的PLD的价格已经下降到一百元以下。每一片这样的PLD可以设计成单片机、或者是CPU等,并且可以在外部接线完成以后还可以重新进行设计多次。目前在我国常见的PLD生产厂家有XILINX、ALTERA、ACTEL、LATTIC、ATMEL、MICROCHIP和AMD等等,其中XILINX和ALTERA为两个主要生产厂,XILINX的产品为FPGA,ALTERA的产品称为CPLD,各有优缺点,但比较起来ALTERA的产品略有长处:1.同样具有EPROM和SRAM的结构2.对于SRAM结构的产品,ALTERA公司PLD的输出电流可达25MA,而XILINX的FPGA只有16MA3.ALTERA公司的PLD延时时间可预测,弥补了FPGA的缺点4.XILINX公司的开发软件FOUNDATION功能全,但是不如ALTERA公司的MAX+PLUS软件使用简单,特别是对于学校的学生学习VHDL语言和PLD设计。5.ALTERA公司的产品价格稍微便宜6.ALTERA公司新推出的FLEX10K10E系列的产品具有更大的集成度PLD的结构分为两类:逻辑单元阵列(LCA),包括逻辑快、互连阵列和I/O块复合PLD结构,包括逻辑块和互连矩阵开关XLINIX、ACTEL公司的产品采用LCA结构,而ALTERA、AMD的MACH系列采用的是复合PLD结构。可编程逻辑器件652.2ALTERA公司MAX7000系列(1)特点该系列是以第二代多阵列结构为基础,高性能的CMOS器件高密度,600—5000个可用门的EPLD系列MAX7128E:提供5000个门,其中可用门数2500,128个宏单元,最大I/O引脚104,引脚到引脚的时延6ns,计数器工作频率151MHz可配置的扩展乘积项,允许向每个宏单元提供52个乘积项44到208个引脚的各种封装,引线塑料载体(PLCC)、针栅阵列(PGA)扁平封装(QFP)3.3V或5V的电源电压可编程保密位ALTERAMAX+PLUS软件提供开发支持该系列型号:EPM7032,EPM7032V,EPM7064,EPM7096,EPM7128E,EPM7160,EPM7192,EPM7256(2)结构MAX7000的结构图2.1.1,其中I/O为输入输出模块,FB为逻辑阵列模块(LAB),这些模块由可编程互连矩阵相互连接。图2.1.1可编程逻辑器件66专用输入信号包含4个专用输入信号,它们能用作专用输入或每一个宏单元和I/O引脚的全局控制信号:时钟,清除和输出使能逻辑阵列块(LAB)每个LAB由16个宏单元组成,多个LAB通过可编程连线阵列互连,每一个LAB有来自PIA的36个信号、用于寄存器辅助功能的控制信号和I/O引脚到寄存器的直接通道宏单元宏单元可以单独配置为组合逻辑和时序逻辑工作方式,它由三个功能块组成:逻辑阵列、乘积项选择矩阵和可编程触发器扩展乘积项扩展乘积项可以使一个宏单元实现更复杂的逻辑函数,而不使使用两个宏单元可编程连线阵列该阵列将各个LAB互连在一起,构成所需的逻辑功能I/O控制块允许每个I/O引脚可以单独配置为输入、输出或是双向工作方式2.3FLEX8000系列FLEX是FlexibleLogicElementMatrix的缩写,该系列采用0.8μmCMOSSRAM或0.65μmCMOSSRAM集成电路制造工艺制造。(1)特点最大门数32000,具有2500—16000个可用门和282—1500个触发器在线可重配置可预测在线时间延迟的布线结构实现加法器和计数器的专用进位通道3.3V和5V电源MAX+PLUS软件支持自动布线和布局84到304个引脚的各种封装常用型号:EPF8282,EPF8452,EPF8636,EPF8820,EPF81188,EPF815002.4FLEX10K10系列该系列采用0.5μmCMOSSRAM或0.25μmCMOSSRAM(10K10E系列)集成电路制造工艺制造。(1)特点具有7000—31000个可用门、6144位RAM、720个触发器和最大I/O数150在线可重配置可编程逻辑器件67可预测在线时间延迟的布线结构实现加法器和计数器的专用进位通道3.3V和5V电源MAX+PLUS软件支持自动布线和布局84到562个引脚的各种封装常用型号:EPF10K10,EPF10K20,EPF10K30,EPF10K40,EPF10K50,EPF10K70,EPF10K100等2.5PLD的配置(1)MAX7000系列由于MAX7000系列的配置程序是固化在芯片内的EEPROM中,所以该器件不需要专用的配置存储器,所有MAX7000系列产品都由ALTERA公司提供的编程硬件和软件进行编程。编程硬件:编程卡、主编程部件(MPU—MasterProgrammingUnit)和配套的编程适配器编程软件:MAX+PLUSⅡ(2)FLEX8000系列和FLEX10K10系列该系列产品的配置信息是存放在芯片内的SRAM中,当掉电后,配置信息将全部丢失,所以这些配置信息需要存放在其它EPROM中,ALTERA公司提供了与该系列芯片配套使用的EPROM。所以对芯片的编程就是对EPROM的编程,芯片开始工作时,进入命令状态,在该状态将配置信息从EPROM中读到自己的SRAM中,然后进入用户状态,在用户状态器件就可以按照配置的功能进行工作,整个配置过程全部自动进行,也可以靠外部逻辑控制进行,时钟可由器件自己提供,也可由外部时钟控制。所以整个器件只要更换EPROM中的配置信息就可以更换功能,其灵活性是不言而喻的。该器件有如下配置方式:主动串行配置(AS)主动并行升址和降址配置(APU/APD)被动并行同步配置(PPS)被动并行异步配置(PPA)被动串行配置(PS)1)主动串行配置(AS)该配置使用ALTERA公司提供的配置EPROM(如EPC1213)作为器件的配置数据源,配置EPROM以串行位流(bit-stream)方式向器件提供数据,见典型电路图2.5.1.可编程逻辑器件68图2.5.1在图中,FLEX8000的nCONFIG引脚接电源,使该器件有开机自动配置能力,2)主动并行升址和降址配置(APU/APD)在该方式,FLEX8000提供驱动外部PROM地址输入的连续地址,PROM则在数据引脚DATA[7。。。0]上送回相应的字节数据,FLEX8000器件产生连续地址直至加载完成。对于APU方式,计数顺序是上升的(00000H到3FFFFH)对于APD方式,计数顺序是下降的。使用并行EPROM以APU或APD方式配置FLEX8000的一般电路图2.5.2.图2.5.2可编程逻辑器件69所有FLEX8000芯片通过自己的18条地址线向EPROM提供地址。3)被动串行配置(PS)被动串行配置方式采用外部控制器,通过串行位(BIT)流来配置FLEX8000,FLEX8000以从设备的方式通过5条线与外部控制器连接。外部控制器有如下几种:ALTERA公司的PL-MPU编程部件和FLEX卸栽电缆(DOWNLOADCABLE)智能主机(微机或单片机)ALTERA公司的BitBlaster电缆,该电缆与RS232接口兼容使用ALTERA的FLEX卸栽电缆进行被动串行配置图2.5.3.图2.5.3FLEX的卸栽电缆一端接MPU主编程部件的EPROM适配器,另一端与要编程的目的板中待配置FLEX器件连接起来,向FLEX器件提供5个信号,配置数据取自MAX+PLUSⅡ软件编译形成的SRAM目标文件(*。SOF)4)在线重新配置FLEX8000进入用户状态后,随时都可以置换器件内的配置数据,这个过程叫做在线重新配置,(in-circuit-configuration)或在系统编程(isp—insystemprogrammable)5)MAX+PLUSⅡ配置与编程支持可编程逻辑器件70该软件可以产生4种不同的类型的编程文件:SRAM文件该文件(SRAMObjectFile)(*.SOF)用于被动串行配置,可使用MAX+PLUSⅡ编程器、FLEX卸栽电缆和ALTERA编程部件将数据直接装入系统中的FLEX8000,利用该文件可以生成POF、TTF和HEX文件编程目标文件该文件(ProgramerObjectFile)(*.POF)用于主动串行配置(AS)ALTERA的配置EPROM,MAX+PLUSⅡ软件为每一个设计自动生成一个POF文件。十六进制文件(Inter格式文件)该文件(HexadecimalFile)(*.HEX)是InterHEX格式的ASCⅡ文件,使用APU或APD方式配置FLEX8000时需使用标准的并行EPROM,通用烧录器可以完成此项工作,列表文本文件该文件(TabularTextFile)(*.TTF)是一个表格式的文件,它提供的是逗号分割开的文件,可以用于PPA、PPS和一位宽的PS方式配置数据。6)配置过程见MAX+PLUSⅡ软件一章