1、FPGA/CPLDFPGA/CPLD硬件基础硬件基础武武 斌斌FPGA/CPLD芯片的出现芯片的出现n什么什么CPLD/FPGA?nFPGA/CPLD发展历史发展历史 通用固定数字逻辑通用固定数字逻辑 PROM、PAL、GAL、PLD 20世纪世纪80年代中期:年代中期:Xilinx -FPGA;Altera-E/CPLDn20世纪世纪90年代中期:年代中期:ISP技术的高密度器件技术的高密度器件 CPLD/FPGA器件的优点器件的优点n集成度高、功耗低、可靠性高、硬件资源丰富集成度高、功耗低、可靠性高、硬件资源丰富 nFPGA/PLDFPGA/PLD开发周期短、投入小、风险小开发周期短、投入
2、小、风险小 满足用户多样性需求,避免满足用户多样性需求,避免ASICASIC风险风险n具有完善先进的开发工具具有完善先进的开发工具n可以反复擦除、编程,方便设计的修改和升级可以反复擦除、编程,方便设计的修改和升级n灵活地定义管脚功能灵活地定义管脚功能n保密性较好保密性较好CPLD/FPGA的发展趋势的发展趋势n向高集成度、高速度向高集成度、高速度n向低电压和低功耗向低电压和低功耗5V3.3V2.5V1.8V1.5V 1.2Vn内嵌多种功能模块内嵌多种功能模块nRAM,ROM,PLL,差分接口,硬件乘法器,差分接口,硬件乘法器n其他可编程其他可编程IP:cpu,通信接口等,通信接口等n向数、模混
3、合可编程方向发展向数、模混合可编程方向发展FPGA/CPLD分类分类集成度集成度度度低密度:低密度:1万门万门 中密度:中密度:1-10万门万门高密度:高密度:100以上以上种类种类FPGACPLD内部结构内部结构基于基于乘积项乘积项(Product-Term)技术)技术基于基于查找表查找表(Look-Up table)技术)技术基于基于反熔丝反熔丝(Anti-fuse)技术)技术 OTPOTPActelActel器件器件FPGA/CPLD分类分类n基于基于查找表查找表 1,SRAM 工艺的大规模工艺的大规模FPGA(10,000门以门以上上),可反复在线编程,每次上电需重新下载,可反复在线编
4、程,每次上电需重新下载,实际应用时需外挂实际应用时需外挂EEPROM用于保存程序。用于保存程序。2,EEPROM 或或Flash工艺的中小规模工艺的中小规模FPGA(5,000门以下门以下),反复编程,不用每次上电重新,反复编程,不用每次上电重新下载。下载。FPGA基本原理基本原理用用RAM实现组合逻辑实现组合逻辑0000010100111001011101110 0 1 1 1 1 0 0多多路路器器A B CFAddr:A B C(查找表(查找表 结构结构 look up table)SRAMn例:用组合逻辑实现例:用组合逻辑实现”表决逻辑表决逻辑”乘积项乘积项多路器实现多路器实现LUT实
5、现实现查找表的地址译码查找表的地址译码N个输入的逻辑函数需要个输入的逻辑函数需要2的的N次方的容量的次方的容量的SRAM来实现,一般多个输入的查找表采用多个来实现,一般多个输入的查找表采用多个逻辑块逻辑块级连级连的方式的方式逻辑元件符号表示逻辑元件符号表示PLDPLD的逻辑符号表示方法的逻辑符号表示方法与门乘积项PROM结构结构n与阵列为全译码阵与阵列为全译码阵列,列,2 2n n最小项。最小项。n因此因此PROMPROM一般只用一般只用于数据存储器,也于数据存储器,也可实现逻辑函数。可实现逻辑函数。nEPROMEPROM和和EEPROMEEPROM用用PROM实现组合逻辑实现组合逻辑实现的函
6、数为:实现的函数为:BABAF1BABAF2BAF3固定连接点固定连接点(与)(与)编程连接点编程连接点(或)(或)n与阵列为全译码阵列。与阵列为全译码阵列。n或阵列为可编程阵列。或阵列为可编程阵列。nEPROM和和EEPROMnnnnnnnnnnnnnnnnnnnnCBCABACCBACBACBACBAS1AnBnCnAnBnCnAnBnCnAnBnCnAnBnAnCnBnCn例:用例:用PROM实现全加器实现全加器PAL结构结构原理原理与与PROM区别区别GAL结构结构GAL器件:器件:用可编程的用可编程的输出逻辑宏输出逻辑宏单元单元(OLMC)代替固定的代替固定的或阵列,可或阵列,可实现
7、时序电实现时序电路路。逻辑宏单元OLMCCPLD内部结构(内部结构(Altera的的MAX7000S系列系列)逻辑阵列模块I/O单元连线资源逻辑阵列模块中包含逻辑阵列模块中包含16宏单元宏单元宏单元内部结构宏单元内部结构乘积项逻辑阵列乘积项选择矩阵可编程触发器扩展乘积项扩展乘积项 可编程互连线可编程互连线FPGA的可编程互连线的可编程互连线n采用一次性的反熔丝采用一次性的反熔丝n和采用多路开关实现逻辑。和采用多路开关实现逻辑。ABField OxideDiffusionPolysiliconPLICE DielectricAB+AB 可编程连线阵列可编程连线阵列PIA I/O控制块控制块 FP
8、GA结构原理图结构原理图三个部分组成:三个部分组成:n可编程逻辑块可编程逻辑块(LAB)n可编程输入输可编程输入输出模块(出模块(IOB)n可编程内部连可编程内部连线(线(PIC)IOBLAB包含多个包含多个逻辑单元(逻辑单元(LE)PICEach LAB consists of the fo 16 LEs,LAB control signals,LE carry chains Register chains,Local interconnectLE(logic element)内部结构内部结构CYCLONE的两种模式的两种模式LE in Normal ModeLE in Arithmetic
9、 Mode查找表的逻辑扩展原理查找表的逻辑扩展原理N个输入的逻辑函数需要个输入的逻辑函数需要2的的N次方的容量的次方的容量的SRAM来实现,一般多于输入的查找表采用多来实现,一般多于输入的查找表采用多个逻辑块个逻辑块级连级连的方式的方式查找表查找表与门与门查找表查找表与门与门查找表查找表与门与门d3:0d7:4d11:8可编程互连线可编程互连线FPGA的可编程互连线的可编程互连线n采用一次性的反熔丝采用一次性的反熔丝n和采用多路开关实现逻辑。和采用多路开关实现逻辑。ABField OxideDiffusionPolysiliconPLICE DielectricAB+AB编程后的逻辑连接示例编
10、程后的逻辑连接示例ABAB+AB可编程的可编程的I/O单元单元n能兼容能兼容TTL和和CMOS多种接口和电压标准多种接口和电压标准n可配置为输入、输出、双向、集电极开路和三可配置为输入、输出、双向、集电极开路和三态等形式态等形式n能提供适当的驱动电流能提供适当的驱动电流n降低功耗,防止过冲和减少电源噪声降低功耗,防止过冲和减少电源噪声n支持多种接口电压(降低功耗)支持多种接口电压(降低功耗)n1.20.5um,5Vn0.35um,3.3Vn0.25um,internal 2.5V,I/O3.3Vn0.18um,internal 1.8V,I/O,2.5V and 3.3V差分接口差分接口可编程
11、连线阵列可编程连线阵列n在各个逻辑宏单元之间以及逻辑宏单元在各个逻辑宏单元之间以及逻辑宏单元与与I/OI/O单元之间提供信号连接的网络单元之间提供信号连接的网络nCPLDCPLD中一般采用固定长度的线段来进行中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,连接,因此信号传输的延时是固定的,使得时间性能容易预测。使得时间性能容易预测。FPGA中的嵌入式阵列中的嵌入式阵列(EAB)nEmbedded Memoryn用途用途n实现比较复杂的函数的查找表,如正弦、余实现比较复杂的函数的查找表,如正弦、余弦等。弦等。n可实现多种存储器功能,如可实现多种存储器功能,如RAM,ROM,双口双
12、口RAM,FIFO,Stack等等n灵活配置方法:灵活配置方法:2568,也可配成,也可配成5124 Phase-Locked Loops(PLL)Embedded Multipliersnembedded multiplier blocks optimized for Embedded multiplier-intensive digital signal processing(DSP)functions CPLD与与FPGA的区别的区别CPLDFPGA内部结构内部结构ProducttermLookup Table程序存储程序存储内部内部EEPROM、掉电数掉电数据不丢失据不丢失SRAM,外
13、挂,外挂EEPROM、掉电重、掉电重配置配置资源类型资源类型组合电路资源丰富组合电路资源丰富触发器资源丰富触发器资源丰富集成度集成度粗粒度结构,密度粗粒度结构,密度低低芯片的利用率较高芯片的利用率较高细粒度结构,密度细粒度结构,密度高高芯片的利用率较低芯片的利用率较低使用场合使用场合完成控制、组合逻辑完成控制、组合逻辑时序逻辑、复杂的算法,时序逻辑、复杂的算法,速度速度慢慢快快其他资源其他资源少少多、多、EAB,锁相环、乘法器等,锁相环、乘法器等保密性保密性可加密可加密保密性不强(可抄)保密性不强(可抄)FPGA与与CPLD的区别的区别nFPGA为非连续式布线,为非连续式布线,CPLD为连续式
14、布线。为连续式布线。FPGA器件在每次编程时实现的逻辑功能一样,器件在每次编程时实现的逻辑功能一样,但但走的路线不同走的路线不同,因此,因此延时不易控制延时不易控制,要求开,要求开发软件允许工程师对关键的路线给予限制。发软件允许工程师对关键的路线给予限制。nCPLD每次布线路径一样,每次布线路径一样,CPLD的连续式互的连续式互连结构利用具有同样长度的一些金属线实现逻连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连。辑单元之间的互连。连续式互连结构连续式互连结构消除了分消除了分段式互连结构在定时上的差异,并在逻辑单元段式互连结构在定时上的差异,并在逻辑单元之间提供快速且具有固定延时的通
15、路。之间提供快速且具有固定延时的通路。CPLD的延时较小。的延时较小。CPLD/FPGA的编程与配置的编程与配置n在系统编程技术在系统编程技术(ISP(ISPIn System In System Program),Program),对对CPLD/FPGACPLD/FPGA的逻辑功能可在线的逻辑功能可在线随时进行修改随时进行修改,由由LatticeLattice公司率先发明公司率先发明n优点:优点:n方便硬件的调试方便硬件的调试n方便硬件版本的升级,类似于软件升级方便硬件版本的升级,类似于软件升级In System Program芯片安装与下载芯片安装与下载1.将将PLD/FPGA焊在焊在PC
16、B板上板上 2.接好编程电缆接好编程电缆 3.现场烧写现场烧写PLD芯片芯片编程引脚编程引脚边界扫描测试技术边界扫描测试技术BSTBoundary Scan Testn据据IEEE1149.1标准标准JTAG,用于解决大,用于解决大规模集成电路的测试问题。规模集成电路的测试问题。n现在新开发的可编程器件都支持边界扫现在新开发的可编程器件都支持边界扫描技术,并将其作为描技术,并将其作为ISP接口。接口。n在在DSP开发和嵌入式处理器的开发中应开发和嵌入式处理器的开发中应用得非常广泛。用得非常广泛。边界测试原理边界测试原理主要主要CPLD/FPGA产品介绍产品介绍 Xilinx公司器件公司器件 1
17、.Virtex-6系列系列FPGA 2.Spartan-6器件系列器件系列 3.XC9500/XC9500XL系列系列CPLD 4.Xilinx Spartan-3A系列器件系列器件 5.Xilinx的的IP核核 1.Stratix 4/6 系列系列FPGA 2.Cyclone 4系列系列FPGA 3.Cyclone系列系列FPGA(低成本(低成本FPGA)4.Cyclone II系列系列FPGA 5.Cyclone III系列系列FPGA 6.MAX系列系列CPLD 7.MAX II系列器件系列器件 8.Altera宏功能块及宏功能块及IP核核 Altera公司的器件公司的器件 Xilinx
18、 的的SOPC概况概况Virtex-II Pro 20030.13m深亚微米深亚微米CMOS工艺工艺 Power PC405处理器硬核处理器硬核 3.125Gb/s极速极速双向串行传送器双向串行传送器 Virtex-II FPGA Virtex-4FX 200490nm深亚微米深亚微米CMOS工艺工艺 9层铜布线层铜布线 Power PC405处理器硬核处理器硬核 10Gb/s极速极速双向串行传送器双向串行传送器 Virtex-4FPGA 2-4个三模式以个三模式以太网管理器太网管理器 大量大量DSP逻辑资源逻辑资源 例例:ALTERA1K100C208n管脚数目:管脚数目:n208个个n电源:电源:n3.3V(I/O)n2.5V(内核)(内核)n速度(速度(P-P)n250MHzn内部资源内部资源n4992个逻辑单元个逻辑单元n10万个逻辑门万个逻辑门n49152 bit的的RAM芯片安装焊接与安装芯片安装焊接与安装