第3章CPLD与FPGA简介.ppt
第第 三三 章章CPLD/FPGACPLD/FPGA简介简介2021/9/172 2CPLD/FPGA CPLD/FPGA 的主要特点的主要特点nCPLD/FPGACPLD/FPGA是一种半定制的是一种半定制的ASICASIC,属属LSILSI或或VLSIVLSI逻辑器件逻辑器件;其主要特性是:其主要特性是:1 1、采用、采用LSI/VLSILSI/VLSI技术制造,高集成度(最高已达千万门级);技术制造,高集成度(最高已达千万门级);2 2、支持各种组合逻辑和时序逻辑电路设计,、支持各种组合逻辑和时序逻辑电路设计,甚至实现甚至实现“片上系统片上系统”(SOCSOC););3 3、可编程改变芯片的逻辑功能,芯片可重复使用,具有、可编程改变芯片的逻辑功能,芯片可重复使用,具有ISPISP或或ICRICR特特性。(性。(ISPISP:In System Programming,In System Programming,在系统编程在系统编程)(ICRICR:In Circuit Reconfigable,In Circuit Reconfigable,在电路重构)在电路重构)3 3、有很高的逻辑布线能力,可以预测信号延迟,便于使用计算机进、有很高的逻辑布线能力,可以预测信号延迟,便于使用计算机进行逻辑功能仿真与时序仿真。行逻辑功能仿真与时序仿真。4 4、有良好的、有良好的设计设计加密功能,便于保护知识产权(加密功能,便于保护知识产权(IPIP)。)。5 5、有强大的、有强大的EDAEDA开发工具开发工具(软件软件)支持,支持,与与ASICASIC设计设计相比相比,易学易用。易学易用。6 6、研制、开发时间较短,费用相对少。、研制、开发时间较短,费用相对少。7 7、必须借助、必须借助CPLDCPLD开发系统,才能设计、开发开发系统,才能设计、开发CPLDCPLD/FPGA/FPGA系统系统。2021/9/173 3CPLD/FPGA CPLD/FPGA 与与 SPLDSPLDn一一般般认认为为,复复杂杂可可编编程程逻逻辑辑器器件件CPLD/FPGACPLD/FPGA的的单单片片集集成成度度大大于于10001000门门,而而简简单单可可编编程程逻逻辑辑器器 件件 SPLDSPLD(Simple Simple Programable Programable Logic Logic DeviceDevice)的单片集成度小于的单片集成度小于10001000门。门。n目目前前FPGAFPGA的的单单片片集集成成度度已已超超过过1 1千千万万门门,达达到到IntelIntel公公司司最最新新奔奔腾腾 CPUCPU的的集集成成度度。可可以以在在这这种种高高集集成成度度的的FPGAFPGA芯芯片片上上设设计计CPU/DSP,CPU/DSP,实实现现SOPCSOPC。nGAL/PALGAL/PAL芯芯片片属属于于SPLDSPLD,但但目目前前它它们们已已较较少少使用。使用。2021/9/174 4ALTERAALTERA公司的新一代千万门级的公司的新一代千万门级的可编程逻辑器件可编程逻辑器件StratixStratix 该系列芯片采用该系列芯片采用1.5v1.5v内核,内核,0.130.13微米全铜工艺。微米全铜工艺。开发系统是开发系统是QuartusII 2.0QuartusII 2.0版本。版本。该系列中型号为该系列中型号为EP1S120EP1S120的的芯片,内含芯片,内含114,140 114,140 个个LELE(约(约1.1M1.1M个门电路),个门电路),芯片中包含的元件数量已超芯片中包含的元件数量已超过过10M10M个。个。2021/9/175 5ALTERAALTERA的新一代低成本高密度的新一代低成本高密度FPGAFPGA:CycloneCyclone(飓风)(飓风)该该FPGAFPGA芯片集成度达芯片集成度达330330万门,万门,可用于可用于SOPCSOPC设计设计2021/9/176 6一块一块SOPCSOPC板板2021/9/177 7一块一块SOPCSOPC板的应用:用作电视解码器板的应用:用作电视解码器2021/9/178 8n经经过过了了最最近近2020年年的的发发展展,许许多多ICIC设设计计公公司司都都开发出了开发出了CPLD/FPGACPLD/FPGA。nAltera Altera 公公司司的的 CPLD CPLD 系系列列和和Xilinx Xilinx 公公司司的的 FPGA FPGA 系系列列,全全球球知知名名度度高高、应应用用面面广广,开开发发系系统成熟,占据了世界统成熟,占据了世界PLDPLD市场的较大分额。市场的较大分额。n全全 球球 CPLD/FPGACPLD/FPGA产产 品品 60%60%以以 上上 是是 由由 AlteraAltera和和XilinxXilinx提提供供的的。可可以以讲讲AlteraAltera和和XilinxXilinx共共同同决决定了定了CPLDCPLD技术的发展方向。技术的发展方向。2021/9/179 9CPLD/FPGACPLD/FPGA的叫法的叫法n不同的厂家,对自己生产的可编程逻辑器件叫法不尽相同。不同的厂家,对自己生产的可编程逻辑器件叫法不尽相同。nPLD(Programmable Logic Device)PLD(Programmable Logic Device)是可编程逻辑器件的总是可编程逻辑器件的总称。称。PALPAL、GALGAL等是早期等是早期的的SPLDSPLD芯片。芯片。nFPGA FPGA(Field Programmable Gate Arry(Field Programmable Gate Arry,现场可编程门阵,现场可编程门阵列列)是是XilinxXilinx公司发明的。公司发明的。XilinxXilinx公司把基于查找表技术、公司把基于查找表技术、SRAMSRAM存储工艺的可编程逻辑器件叫存储工艺的可编程逻辑器件叫FPGAFPGA;把基于乘积项技;把基于乘积项技术、术、E E2 2PROMPROM(或(或Flash MEMFlash MEM)存储工艺的可编程逻辑器件)存储工艺的可编程逻辑器件叫叫CPLDCPLD;nAlteraAltera公司把自己生产的可编程逻辑器件都叫作公司把自己生产的可编程逻辑器件都叫作CPLD,CPLD,即复即复杂杂PLD(Complex PLD),PLD(Complex PLD),但分为但分为 MAXMAX系列系列CPLDCPLD(乘积项技术、(乘积项技术、E E2 2PROMPROM存储工艺)和存储工艺)和FLEX/ACEX/APEXFLEX/ACEX/APEX系列系列CPLDCPLD(查找表技(查找表技术、术、SRAMSRAM存储工艺)。存储工艺)。n由于由于FLEXFLEX等系列是基于查找表技术、采用等系列是基于查找表技术、采用SRAMSRAM存储工艺的存储工艺的器件,其使用方法和器件,其使用方法和XilinxXilinx的的FPGAFPGA一样,所以人们也把一样,所以人们也把FLEX/ACEX/APEXFLEX/ACEX/APEX系列的系列的CPLDCPLD产品叫做产品叫做FPGAFPGA。2021/9/171010如何使用如何使用CPLD/FPGACPLD/FPGA?n开发、使用开发、使用CPLDCPLD需要掌握三部分的知识:需要掌握三部分的知识:1 1、熟悉、了解、熟悉、了解CPLD/FPGACPLD/FPGA芯片;芯片;2 2、掌握、掌握CPLD/FPGACPLD/FPGA开发系统(软件);开发系统(软件);3 3、能对、能对CPLD/FPGACPLD/FPGA芯片进行编程配置(加载设计代码)。芯片进行编程配置(加载设计代码)。n由于由于CPLD/FPGACPLD/FPGA开发系统已发展得相当完善,用户甚至可以不用详细开发系统已发展得相当完善,用户甚至可以不用详细了解了解CPLD/FPGACPLD/FPGA的内部结构,就可以用自己熟悉的方法(如原理图输的内部结构,就可以用自己熟悉的方法(如原理图输入法入法/HDL/HDL语言输入法语言输入法/波形输入法波形输入法)来完成要求的来完成要求的CPLD/FPGACPLD/FPGA设计。设计。n但是若要很好的掌握但是若要很好的掌握CPLD/FPGACPLD/FPGA设计与应用技术,懂得必要的设计与应用技术,懂得必要的CPLD/FPGACPLD/FPGA结构组成、特性参数与基本工作原理还是必要的。另外,结构组成、特性参数与基本工作原理还是必要的。另外,能熟练操作、使用一种能熟练操作、使用一种CPLD/FPGACPLD/FPGA开发系统、至少掌握一种开发系统、至少掌握一种HDLHDL语言语言也是必要的,这将有助于提高设计的效率和可行性。也是必要的,这将有助于提高设计的效率和可行性。n目前主要的目前主要的CPLD/FPGACPLD/FPGA生产商都提供适合自己产品开发、应用的生产商都提供适合自己产品开发、应用的EDAEDA开发软件。也有许多第三方开发软件。也有许多第三方EDAEDA软件公司提供软件公司提供CPLD/FPGACPLD/FPGA开发系统,开发系统,且性能优良。如且性能优良。如CANDENCECANDENCE公司的公司的SPWSPW系统、系统、AltecAltec公司的公司的Active CADActive CAD系统。系统。2021/9/171111CPLD/FPGACPLD/FPGA设计流程设计流程用户输入用户输入开发系统利开发系统利用计算机进用计算机进行处理行处理用户测试用户测试2021/9/171212主要的CPLD/FPGACPLD/FPGA生产厂商n目前世界上有多家公司生产目前世界上有多家公司生产CPLD/FPGACPLD/FPGA,主要,主要的的CPLD/FPGACPLD/FPGA生产厂商有:生产厂商有:1 1、Altera Altera 公司公司,主要的,主要的CPLDCPLD生产厂商生产厂商2 2、Xilinx Xilinx 公司公司,主要的,主要的FPGAFPGA生产厂商生产厂商3 3、LatticeLattice公司,著名公司,著名的的CPLDCPLD生产厂商生产厂商4 4、ACTELACTEL公司公司,著名著名的的CPLDCPLD生产厂商生产厂商5 5、CypressCypress公司公司,著名,著名的的CPLDCPLD生产厂商生产厂商6 6、AtemalAtemal公司公司,著名著名的的I IC/MCUC/MCU公司公司,也设计生产也设计生产PLDPLD产品产品.7 7、LuccentLuccent公司公司,著名著名的的通讯企业,也设计生产通讯企业,也设计生产PLDPLD产品产品.2021/9/171313国外主要的国外主要的CPLD/FPGACPLD/FPGA开发系统有:开发系统有:nAltera:MAX+PlusIIAltera:MAX+PlusII、QuartusIIQuartusII nXilinx:FoundationXilinx:Foundation、ISEISE、AllianceAlliancenLattice:SynarioLattice:Synario、ispDesignEXPERTispDesignEXPERT、VantisVantisnAltec:Altec:Active CADActive CADnCPRESS WRAPCPRESS WRAPnOrCAD:OrCAD/2000OrCAD:OrCAD/20002021/9/171414CPLD/FPGACPLD/FPGA的结构分类的结构分类n对于对于CPLDCPLD产品,产品,按结构一般可分为按结构一般可分为:基于乘积项:基于乘积项(Product-TermProduct-Term)技术、)技术、EEPROMEEPROM(或(或Flash Flash MemoryMemory)存储工艺的)存储工艺的CPLDCPLD,和基于查找表(,和基于查找表(Look-Up Look-Up tabletable)技术、)技术、SRAMSRAM存储工艺的存储工艺的FPGAFPGA。n基于基于EEPROMEEPROM存储工艺的存储工艺的CPLDCPLD集成度相对小一点,多集成度相对小一点,多用于用于2 2万门规模以下的设计,万门规模以下的设计,适合实现适合实现较复杂的较复杂的组合组合逻辑逻辑,如编、译码设计。,如编、译码设计。n基于基于SRAMSRAM工艺的工艺的FPGAFPGA,集成度较高,内部触发器多,集成度较高,内部触发器多,多用于多用于1 1万门以上的大规模系统设计,适合做复杂的万门以上的大规模系统设计,适合做复杂的时序逻辑设计,如数字信号处理和各种算法。时序逻辑设计,如数字信号处理和各种算法。n已有基于已有基于FPGAFPGA的的SOPCSOPC器件问世,并得到广泛关注。器件问世,并得到广泛关注。2021/9/171515n采用这种结构的采用这种结构的PLDPLD芯片有:芯片有:Altera Altera的的MAX7000,MAX9000,MAX3000MAX7000,MAX9000,MAX3000系列系列 (E E2 2PROMPROM工艺)工艺),Xilinx,Xilinx的的XC9500XC9500系列(系列(FlashFlash工艺)和工艺)和Lattice,CypressLattice,Cypress的大部分产品的大部分产品 (E E2 2PROM/FlashPROM/Flash工艺)工艺)n这种这种CPLDCPLD的基本结构如下所示的基本结构如下所示:(以(以MAX7000MAX7000结构组成为例,其他型号结构组成为例,其他型号CPLDCPLD的的结构与此非常相似)。结构与此非常相似)。基于乘积项(基于乘积项(Product-Term)Product-Term)的的CPLDCPLD结构结构2021/9/171616CPLDCPLD内部结构(内部结构(AlteraAltera的的MAX7000SMAX7000S系列)系列)逻辑阵列块中包含多个宏单元逻辑阵列块中包含多个宏单元逻辑阵列块逻辑阵列块(LAB)可编程可编程I/OI/O控制块控制块可编程可编程连线资源连线资源2021/9/171717逻辑宏单元的基本结构逻辑宏单元的基本结构n逻辑宏单元逻辑宏单元是是 PLD PLD 的基本结构,由它来实的基本结构,由它来实现基本的逻辑功能。一般现基本的逻辑功能。一般8 8个个逻辑宏单元逻辑宏单元构构成一个成一个逻辑阵列块逻辑阵列块LABLAB。n上图中的兰色部分就是上图中的兰色部分就是LABLAB。n可编程连线可编程连线PIAPIA负责信号传递,连接所有的负责信号传递,连接所有的逻辑宏单元。逻辑宏单元。nI/O I/O 控制块控制块(IOB)(IOB)负责输入输出引脚的电气负责输入输出引脚的电气特性控制,比如可以设定集电极开路输出,特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。摆率控制,三态输出等。n逻辑宏单元的具体结构见下图:逻辑宏单元的具体结构见下图:2021/9/171818宏单元的内部结构宏单元的内部结构乘积项逻辑阵列乘积项选择矩阵可编程触发器2021/9/171919n上上图图的的左左侧侧是是乘乘积积项项阵阵列列,实实际际就就是是一一个个与与阵阵列列,每每个个交交叉叉点点都都是是一一个个可可编编程程点点。通通过过“与与阵阵列列”产产生生乘乘积积项项(最最小小项项)。后后面面的的或或门门把把按按要要求求产产生生的的乘乘积积项项“加加”起起来来,得得到到需需要要的的输出组合逻辑函数。输出组合逻辑函数。n图图右右侧侧是是一一个个可可编编程程D D触触发发器器,它它的的时时钟钟,清清零零输输入入都都可可以以编编程程选选择择,可可以以使使用用专专用用的的全全局局清零和全局时钟。清零和全局时钟。n图中的异或门用来控制组合逻辑函数的极性。图中的异或门用来控制组合逻辑函数的极性。n由由图图可可见见,CPLDCPLD的的宏宏单单元元(也也可可称称为为逻逻辑辑单单元元LELE)与)与GALGAL的的OLMCOLMC结构非常类似。结构非常类似。2021/9/172020开发系统对开发系统对MAX7064SLABMAX7064SLAB的描述的描述2021/9/172121可编程的可编程的I/OI/O控制块控制块n使引脚能兼容使引脚能兼容TTLTTL和和CMOSCMOS多种接口和电压标准;多种接口和电压标准;n可将引脚配置为输入、输出、双向、集电极开路和可将引脚配置为输入、输出、双向、集电极开路和三态等形式;三态等形式;n能提供适当的驱动电流;能提供适当的驱动电流;n降低引脚接口功耗,防止脉冲过冲和减少电源噪声降低引脚接口功耗,防止脉冲过冲和减少电源噪声n支持多种接口电压(降低芯片功耗)支持多种接口电压(降低芯片功耗)1.21.20.5um,5V0.5um,5V0.35um,3.3V0.35um,3.3V0.25um,internal 2.5V,I/O3.3V0.25um,internal 2.5V,I/O3.3V0.18um,internal 1.8V,I/O2.5V and 3.3V0.18um,internal 1.8V,I/O2.5V and 3.3V2021/9/172222可编程连线阵列可编程连线阵列PIAPIAn在各个逻辑宏单元之间以及逻辑宏单元与在各个逻辑宏单元之间以及逻辑宏单元与I/OI/O单元之间提供可编程的信号连接网络;单元之间提供可编程的信号连接网络;nCPLDCPLD中一般采用固定长度的线段来进行连接,中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得信号传因此信号传输的延时是固定的,使得信号传输时时间延时能够预测。输时时间延时能够预测。2021/9/172323FPGAFPGA的结构与工作原理的结构与工作原理nFPGAFPGA都采用查找表都采用查找表(Look-Up-Table,LUT)(Look-Up-Table,LUT)来实现逻辑函数。来实现逻辑函数。如如AlteraAltera的的FLEX/ACEXFLEX/ACEX/APEX/APEX系列器件和系列器件和 Xilinx Xilinx的多数器件。的多数器件。n FPGA FPGA的编程配置元的编程配置元件都是件都是SRAMSRAM。n 由于由于SRAMSRAM较易制造,较易制造,且其可重复编程使用且其可重复编程使用的次数几乎无限,所的次数几乎无限,所以目前高集成度的可以目前高集成度的可编程逻辑器件几乎都编程逻辑器件几乎都是是FPGAFPGA。2021/9/172424FPGAFPGA基本结构组成图基本结构组成图n FPGAFPGA的内部结构的内部结构称为称为LCALCA(Logic Logic Cell ArrayCell Array),由),由三个基本部分组成三个基本部分组成1 1、可编程逻辑块、可编程逻辑块 (CLBCLB)2 2、可编程输入输、可编程输入输 出块(出块(IOBIOB)3 3、可编程连线资、可编程连线资 源(源(PIRPIR)nCLBCLB中中包含包含1 1个或个或2 2个逻辑单元(个逻辑单元(LELE)CLBCLB包含包含1 1个或个或2 2个逻辑单元个逻辑单元IOB可编程连线可编程连线资源(资源(PIRPIR)2021/9/172525FPGAFPGA的基本组成的基本组成n可编程逻辑块可编程逻辑块CLBCLB组成了组成了FPGAFPGA的核心门阵列的核心门阵列,能完成用户指定,能完成用户指定的逻辑功能;每个的逻辑功能;每个CLBCLB中中包含包含1 1个或个或2 2个逻辑单元(个逻辑单元(LELE)。)。LELE主主要由一个组合逻辑函数发生器、几个触发器、若干个多路选选要由一个组合逻辑函数发生器、几个触发器、若干个多路选选择器及控制电路组成。择器及控制电路组成。n可编程的输入可编程的输入/输出块输出块IOBIOB位于芯片内部四周位于芯片内部四周,在内部逻辑阵列,在内部逻辑阵列与外部芯片封装引脚之间提供一个可编程接口,它主要由逻辑与外部芯片封装引脚之间提供一个可编程接口,它主要由逻辑门、触发器和控制单元组成。门、触发器和控制单元组成。n可编程连线资源可编程连线资源PIRPIR位于芯片内部的逻辑块之间位于芯片内部的逻辑块之间,经编程后形,经编程后形成连线网络,用于芯片内部逻辑间的相互连接,并在它们之间成连线网络,用于芯片内部逻辑间的相互连接,并在它们之间传递逻辑信息。传递逻辑信息。2021/9/1726262021/9/172727基本结构图基本结构图2021/9/172828LELE内部结构内部结构2021/9/172929什么是查找表什么是查找表(Look-Up-Table,LUT)(Look-Up-Table,LUT)?查找表(查找表(LUTLUT)就是一个有)就是一个有N N根(一般是根(一般是4 4根)根)地址线的地址线的16x116x1的的RAMRAM存储器。存储器。当用户通过原理图或当用户通过原理图或 HDL HDL 语言描述了一个语言描述了一个4 4输入的逻辑电输入的逻辑电路后,路后,CPLD/FPGA CPLD/FPGA 开发软件就会按设计要求自动计算逻辑开发软件就会按设计要求自动计算逻辑电路的所有可能的结果,并把该结果事先写入这个电路的所有可能的结果,并把该结果事先写入这个RAMRAM存储存储器。这样,当输入变量作为器。这样,当输入变量作为RAMRAM的地址信号输入时,预期的的地址信号输入时,预期的结果(输出逻辑函数)就作为结果(输出逻辑函数)就作为RAMRAM的存储数据输出了。的存储数据输出了。利用这种查表的方法实现逻辑函数输出是一种简单、高效利用这种查表的方法实现逻辑函数输出是一种简单、高效的方法。这就是存储器可用作逻辑函数发生器的原理。的方法。这就是存储器可用作逻辑函数发生器的原理。N N个输入的逻辑函数,需要个输入的逻辑函数,需要2 2的的N N次方的容量的次方的容量的SRAMSRAM来实现来实现2021/9/173030查找表(查找表(LUT)LUT)的工作原理与组成的工作原理与组成2021/9/173131查找表(查找表(LUT)LUT)的工作原理与组成的工作原理与组成2021/9/173232查找表结构的查找表结构的FPGAFPGA逻辑实现原理逻辑实现原理 以这个电路为例:以这个电路为例:A,B,C,DA,B,C,D由由FPGAFPGA芯片的管脚输入后进入可编程连线,然后作为芯片的管脚输入后进入可编程连线,然后作为地址线连到到地址线连到到LUTLUT,LUTLUT中由于已经事先写入了所有可能的逻辑中由于已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。实现了。该电路中该电路中D D触发器是直接利用触发器是直接利用LUTLUT后面后面D D触发器来实现。时钟信触发器来实现。时钟信号号CLKCLK由由I/OI/O脚输入后进入芯片内部的时钟专用通道,直接连接脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出与到触发器的时钟端。触发器的输出与I/OI/O脚相连,把结果输出到脚相连,把结果输出到芯片管脚。这样芯片管脚。这样PLDPLD就完成了上图所示电路的功能。就完成了上图所示电路的功能。这个电路是一个简单范例,只需要一个这个电路是一个简单范例,只需要一个LUTLUT加上一个触发器就加上一个触发器就可以完成。对于一个可以完成。对于一个LUTLUT无法完成的的电路,就需要通过进位逻无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样辑将多个单元相连,这样FPGAFPGA就可以实现复杂的逻辑。就可以实现复杂的逻辑。2021/9/173333查找表的工作原理查找表的工作原理N N个输入的逻辑函数需要个输入的逻辑函数需要2 2的的N N次方的容量的次方的容量的SRAMSRAM来实现。来实现。一个一个LUTLUT无法完成的无法完成的N4N4的多输入的多输入电路,就需要通过电路,就需要通过进位逻辑进位逻辑和和级连的方法级连的方法将多个将多个LUTLUT单元相连,这样单元相连,这样FPGAFPGA就可以实现复杂的就可以实现复杂的逻辑。逻辑。2021/9/173434XC4000XC4000系列系列FPGAFPGA的的CLBCLB基本结构基本结构 CLBCLB主要由组合逻辑函数发生器、触发器、数据选主要由组合逻辑函数发生器、触发器、数据选择器等电路组成。择器等电路组成。2021/9/173535n在在CLBCLB中有三个组合逻辑函数发生器,它们分别是中有三个组合逻辑函数发生器,它们分别是G G、F F和和H H,对应的,对应的输出是输出是GG、FF和和HH。G G有四个输入变量有四个输入变量G1G1、G2G2、G3G3和和G4G4,F F也有四也有四个输入变量个输入变量F1F1、F2F2、F3F3和和F4F4nG G和和F F这两个逻辑函数发生器是完全独立的,均可实现这两个逻辑函数发生器是完全独立的,均可实现4 4输入变量的任输入变量的任意组合逻辑函数。意组合逻辑函数。n组合逻辑函数发生器组合逻辑函数发生器H H有三个输入信号,分别来自前两个函数发生器有三个输入信号,分别来自前两个函数发生器的输出的输出GG、FF和信号变换电路的输出和信号变换电路的输出H1H1。n组合逻辑函数发生器组合逻辑函数发生器H H能实现能实现3 3输入变量的各种组合函数。利用三个输入变量的各种组合函数。利用三个组合逻辑函数发生器,可以实现多达组合逻辑函数发生器,可以实现多达9 9个变量的组合逻辑函数。个变量的组合逻辑函数。nXC4000XC4000的的CLBCLB中有两个边沿触发的中有两个边沿触发的D D触发器,它们共有一个公共的时触发器,它们共有一个公共的时钟,共有一个时钟使能输入端,允许选择时钟信号高或低电平有效。钟,共有一个时钟使能输入端,允许选择时钟信号高或低电平有效。n可以看出,只要对可以看出,只要对CLBCLB内部的数据选择器进行编程,逻辑函数发生器内部的数据选择器进行编程,逻辑函数发生器G G、F F和和H H的输出就可以触发器连接,实现所需要的时序逻辑输出。的输出就可以触发器连接,实现所需要的时序逻辑输出。n在在CLBCLB中的不同规格的数据选择器,分别用来选择触发器激励输入信中的不同规格的数据选择器,分别用来选择触发器激励输入信号、时钟有效边沿、时钟使能信号以及输出信号等。号、时钟有效边沿、时钟使能信号以及输出信号等。2021/9/173636XC4000XC4000系列的系列的I/OB I/OB 基本结构基本结构 2021/9/173737nXC4000XC4000系列的系列的I/OBI/OB主要由输入触发器、输入缓冲器和主要由输入触发器、输入缓冲器和输出触发锁存器、输出缓冲器组成,它保证了器件输出触发锁存器、输出缓冲器组成,它保证了器件引脚和内部逻辑阵列之间的连接。引脚和内部逻辑阵列之间的连接。n其中输入通道分为寄存器输入和直接输人两种方式。其中输入通道分为寄存器输入和直接输人两种方式。输入信号允许有选择地编程延时。输入寄存器的时钟输入信号允许有选择地编程延时。输入寄存器的时钟极性、置位、复位端及输人上拉或下拉电阻均可由程极性、置位、复位端及输人上拉或下拉电阻均可由程序控制。序控制。n在输出通道中,每个输出端都有一个三态输出缓冲器。在输出通道中,每个输出端都有一个三态输出缓冲器。通过程序控制可选择寄存器输出或直接输出方式。通过程序控制可选择寄存器输出或直接输出方式。n因此,每个因此,每个I/OBI/OB控制一个引脚,通过程序设置它们可控制一个引脚,通过程序设置它们可被配置为输入、输出或双向被配置为输入、输出或双向I/OI/O功能。功能。2021/9/173838XC4000XC4000系列的可编程连线资源系列的可编程连线资源PIRPIR(单长线、双长线和长线单长线、双长线和长线)2021/9/173939n可编程互连资源可编程互连资源PIRPIR通常将通常将FPGAFPGA内部的内部的CLBCLB和和CLBCLB之间、之间、CLBCLB和和I/OBI/OB之之间连接起来,组成各种具有复杂功能的系统。间连接起来,组成各种具有复杂功能的系统。nPIRPIR主要由许多金属线段构成,这些金属线段带有可编程开关,通过主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。自动布线实现各种电路的连接。nXC4000XC4000系列采用分段互连资源结构,如果以线段的相对长度来划分,系列采用分段互连资源结构,如果以线段的相对长度来划分,可分为单长线、双长线和长线三种。可分为单长线、双长线和长线三种。n单长线是指可编程开关矩阵和单长线是指可编程开关矩阵和CLBCLB之间的连线,是贯穿于之间的连线,是贯穿于CLBCLB之间的之间的八条垂直和水平金属线段,可编程开关矩阵位于这些金属线段的交八条垂直和水平金属线段,可编程开关矩阵位于这些金属线段的交叉点。通过编制程序,可控制开关矩阵将某个叉点。通过编制程序,可控制开关矩阵将某个CLBCLB与其它与其它CLBCLB或或I/OBI/OB连在一起。连在一起。n双长线包括夹在双长线包括夹在CLBCLB之间的四条垂直和水平金属线段。双长线双倍于之间的四条垂直和水平金属线段。双长线双倍于单长线,其长度通过两个单长线,其长度通过两个CLBCLB。穿过两个。穿过两个CLBCLB之后,这些金属线段才之后,这些金属线段才与可编程的开关矩阵相连。因此,利用双长线可以实现使两个相隔与可编程的开关矩阵相连。因此,利用双长线可以实现使两个相隔(非相邻)的(非相邻)的CLBCLB连接。连接。n长线是通过特殊缓冲器驱动、贯穿全局的金属连线,用来连接时钟长线是通过特殊缓冲器驱动、贯穿全局的金属连线,用来连接时钟和其它高扇出信号。由长线网构成的金属网络,布满了阵列的全部和其它高扇出信号。由长线网构成的金属网络,布满了阵列的全部长和宽。长和宽。CLBCLB的输入可以由邻近的任一长线驱动,输出可以通过三态的输入可以由邻近的任一长线驱动,输出可以通过三态缓冲器驱动长线。长线通常用于高扇出、关键信号的传播。缓冲器驱动长线。长线通常用于高扇出、关键信号的传播。2021/9/174040AlteraAltera的的FLEX/ACEXFLEX/ACEX等芯片的结构等芯片的结构2021/9/174141Altera FLEX/ACEX Altera FLEX/ACEX 芯片的内部结构芯片的内部结构2021/9/174242ALTERA 10K10ALTERA 10K10器件的内部结构图器件的内部结构图内含内含728728576576个个LELE2021/9/174343FPGAFPGA中的嵌入式阵列(中的嵌入式阵列(EABEAB)n可灵活配置的可灵活配置的RAMRAM块,典型大小是块,典型大小是4KB4KB。n用途用途实现比较复杂的函数的查找表,如正弦、余实现比较复杂的函数的查找表,如正弦、余弦表等。弦表等。可实现多种存储器功能,如可实现多种存储器功能,如RAMRAM,ROMROM,双口,双口RAMRAM,FIFOFIFO,StackStack等等灵活配置方法:可配置成灵活配置方法:可配置成2561625616、51285128、1024410244、2048220482、4096140961。2021/9/174444内部晶振电路内部晶振电路n高速反向放大器用高速反向放大器用于和外部晶体相接,于和外部晶体相接,形成内部晶体振荡形成内部晶体振荡器。器。n提供将振荡波形二提供将振荡波形二分频成对称方波的分频成对称方波的功能。功能。2021/9/174545CPLDCPLD与与FPGAFPGA的类似之处的类似之处nCPLDCPLD与与FPGAFPGA在很大程度上具有类似之处,概括起在很大程度上具有类似之处,概括起来,可以认为它们都是由以下三部分共同组成:来,可以认为它们都是由以下三部分共同组成:(1 1)输入)输入/输出单元。输出单元。(2 2)二维逻辑块阵列,是)二维逻辑块阵列,是PLDPLD器件的逻辑组成的核心器件的逻辑组成的核心(3 3)用于连接逻辑块的互连资源,其中可以是各种)用于连接逻辑块的互连资源,其中可以是各种长度的连线线段,也可以是一些可编程的连接开关,长度的连线线段,也可以是一些可编程的连接开关,通常用来连接逻辑块之间、逻辑块与输入通常用来连接逻辑块之间、逻辑块与输入/输出块输出块之间的连线。之间的连线。n对用户而言,对用户而言,CPLDCPLD与与FPGAFPGA的内部结构虽有不同,的内部结构虽有不同,但使用方法基本一样。所以在多数情况下无需加但使用方法基本一样。所以在多数情况下无需加以区分。以区分。2021/9/174646CPLDCPLD与与FPGAFPGA的区别的区别CPLDCPLDFPGAFPGA内部结构内部结构ProductProducttermtermLookLookup Tableup Table程序存储程序存储内部内部EEPROMEEPROMSRAMSRAM,外挂,外挂EEPROMEEPROM资源类型资源类型组合电路资源丰富组合电路资源丰富触发器资源丰富触发器资源丰富集成度集成度低低高高使用场合使用场合完成控制逻辑完成控制逻辑能完成比较复杂的算法能完成比较复杂的算法速度速度慢慢快快其他资源其他资源EABEAB,锁相环,锁相环保密性保密性可加密可加密一般不能保密一般不能保密2021/9/174747FPGAFPGA与与CPLDCPLD的区别的区别nFPGAFPGA采采用用SRAMSRAM进进行行功功能能配配置置,可可重重复复编编程程,但但系系统统掉掉电电后后,SRAMSRAM中中的的数数据据丢丢失失。因因此此需需在在FPGAFPGA外外加加EPROMEPROM,将将配配置置数数据据写写入其中,系统每次上电自动将数据引入入其中,系统每次上电自动将数据引入SRAMSRAM中。中。nCPLDCPLD器器件件一一般般采采用用EEPROMEEPROM存存储储技技术术,可可重重复复编编程程,并并且且系系统统掉电后,掉电后,EEPROMEEPROM中的数据不会丢失,适于数据的保密。中的数据不会丢失,适于数据的保密。nFPGAFPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个要求实现较复杂的组合电路则需要几个CLBCLB结合起来实现。结合起来实现。nFPGAFPGA的逻辑功能由于是利用的逻辑功能由于是利用LUTLUT来实现,且来实现,且SRAMSRAM编程结构相当编程结构相当较简单,故易于大规模集成。目前较简单,故易于大规模集成。目前2 2万门以上规模集成的万门以上规模集成的PLDPLD,都是,都是FPGAFPGA。nCPLDCPLD的与或阵列结构,使其适宜实现较大规模的组合逻辑功的与或阵列结构,使其适宜实现较大规模的组合逻辑功能,但触发器资源相对较少,实现较大规模的时序逻辑功能能,但触发器资源相对较少,实现较大规模的时序逻辑功能有一定的难度。有一定的难度。nCPLDCPLD的的“与或阵列与或阵列”结构和非易失性编程特性也不适宜超大结构和非易失性编程特性也不适宜超大规模集成。一般其集成度不超过规模集成。一般其集成度不超过2 2万门。万门。2021/9/174848FPGAFPGA与与CPLDCPLD的区别的区别nFPGAFPGA内部有丰富连线资源,内部有丰富连线资源,CLBCLB分块较小,芯片的利用率较分块较小,芯片的利用率较高。高。nCPLDCPLD的宏单元的与或阵列较大,通常不能完全被应用,且的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此制了器件的灵活布线,因此CPLDCPLD的