《第3章CPLD与FPGA基础_XXXX0308.pdf》由会员分享,可在线阅读,更多相关《第3章CPLD与FPGA基础_XXXX0308.pdf(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章CPLD/FPGA基础基础一、一、复杂可编程逻辑器件简介复杂可编程逻辑器件简介二、二、CPLD的组成与特点CPLD的组成与特点三、三、FPGA的组成与特点FPGA的组成与特点四、四、CPLD与FPGA的异同CPLD与FPGA的异同五、五、主要的主要的PLD厂商厂商作业作业复杂可编程逻辑器件复杂可编程逻辑器件CPLD/FPGA简介简介?概述概述?CPLD/FPGA能做什么能做什么?CPLD/FPGA 的主要特点的主要特点?CPLD/FPGA的命名的命名?如何使用如何使用CPLD/FPGA?如何获得如何获得CPLD软件开发系统软件开发系统?主要的主要的CPLD/FPGA生产厂商生产厂商
2、?国外主要的国外主要的CPLD/FPGA开发系统开发系统一、复杂可编程逻辑器件一、复杂可编程逻辑器件CPLD/FPGA简介简介?CPLD(Complex Programable Logic Device)复杂可编程逻辑器件)复杂可编程逻辑器件两者的功能基本相同,只是实现原理略有不同,两者的功能基本相同,只是实现原理略有不同,故有时可以统称为复杂可编程逻辑器件或故有时可以统称为复杂可编程逻辑器件或CPLD/FPGA。?FPGA(Field Programable Gate Array)现场可编程门阵列现场可编程门阵列概述概述复杂可编程逻辑器件复杂可编程逻辑器件CPLD/FPGA简介简介?CPLD
3、/FPGA是是80年代初期开始发展起来的一种数字电子器件开发与设计技术,是目前电子设计领域中年代初期开始发展起来的一种数字电子器件开发与设计技术,是目前电子设计领域中最具活力和发展前途最具活力和发展前途的一项技术,它的用途和影响甚至的一项技术,它的用途和影响甚至不亚于不亚于70年代单片机的发明和使用年代单片机的发明和使用。?CPLD/FPGA内部具有大量组成数字电路的最小单元内部具有大量组成数字电路的最小单元门电路门电路,而这些门电路,而这些门电路并没有固定怎样连接并没有固定怎样连接,门电路的连接可,门电路的连接可通过编程通过编程的方法加以的方法加以设计设计,同时输入,同时输入/输出脚的连接可
4、自己设置,故这种电路给我们带来了极大的方便。输出脚的连接可自己设置,故这种电路给我们带来了极大的方便。?经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是 Xilinx 公司的公司的 FPGA 器件系列和器件系列和 Altera公司的公司的 CPLD 器件系列,它们开发较早,占用了较大的市场(器件系列,它们开发较早,占用了较大的市场(60%以上)。可以讲以上)。可以讲Altera和和Xilinx共同决定了共同决定了CPLD技术的发展方向技术的发展方向。?其它公司如:其它公司如:Lattice-Vant
5、is,Actel,Atmel、Quicklogic,Lucent等也提供不同相关产品。等也提供不同相关产品。?通常来说,通常来说,在欧洲用在欧洲用Xilinx的人多,在日本和亚太地区用的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。的人多,在美国则是平分秋色。复杂可编程逻辑器件复杂可编程逻辑器件CPLD/FPGA简介(续)简介(续)复杂可编程逻辑器件复杂可编程逻辑器件CPLD/FPGA简介(续)简介(续)?CPLD集成度相对小一点,多用于集成度相对小一点,多用于2万门万门规模规模以下以下的设计,的设计,适合实现较复杂的组合逻辑适合实现较复杂的组合逻辑,如编、译码设计。,如编、
6、译码设计。?FPGA,集成度较高,内部触发器多,多用于,集成度较高,内部触发器多,多用于1万门以上万门以上的大规模系统设计,的大规模系统设计,适合做复杂的时序逻辑设计适合做复杂的时序逻辑设计,如数字信号处理和各种算法。,如数字信号处理和各种算法。?已有基于已有基于FPGA的的SOPC器件问世,并得到广泛关注。器件问世,并得到广泛关注。复杂可编程逻辑器件复杂可编程逻辑器件CPLD/FPGA简介(续)简介(续)?一般认为,复杂可编程逻辑器件一般认为,复杂可编程逻辑器件CPLD/FPGA的单片集成度大于的单片集成度大于1000门门,而简单可编程逻辑器件而简单可编程逻辑器件SPLD 的单片集成度小于的
7、单片集成度小于1000门。门。?SPLD除除GAL外目前已较少使用。外目前已较少使用。目前目前FPGA的单片集成度已超过的单片集成度已超过1千万门,千万门,达到达到Intel公司最新奔腾公司最新奔腾 CPU的集成度的集成度。可以在这种高集成度的。可以在这种高集成度的FPGA芯片上设计芯片上设计CPU/DSP,实现实现SOPC。用用CPLD/FPGA能做什么?能做什么?可以不夸张的讲,可以不夸张的讲,CPLD能完成任何数字器件的功能能完成任何数字器件的功能,直至实现单芯片系统,直至实现单芯片系统SOC。上至高性能的。上至高性能的CPU,下至简单的下至简单的74系列数字电路,都可以用系列数字电路,
8、都可以用CPLD来实现。来实现。CPLD如同一张白纸或是一堆积木如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法或硬件描述语言(,工程师可以通过传统的原理图输入法或硬件描述语言(HDL),来自由的设计一个数字系统。通过,来自由的设计一个数字系统。通过EDA软件仿真,软件仿真,可以事先验证设计的正确性可以事先验证设计的正确性。在。在PCB完成以后,还可以利用完成以后,还可以利用CPLD的在线修改能力,随时修改设计而不必改动硬件电路。使用的在线修改能力,随时修改设计而不必改动硬件电路。使用CPLD来开发数字电路与系统,可以来开发数字电路与系统,可以大大缩短设计时间,减少大大缩短设计时间,
9、减少PCB面积,提高系统的可靠性面积,提高系统的可靠性。CPLD/FPGA 的主要特点的主要特点1、采用、采用LSI/VLSI技术制造,高集成度。技术制造,高集成度。2、支持各种组合逻辑和时序逻辑电路设计,甚至实现、支持各种组合逻辑和时序逻辑电路设计,甚至实现“片上系统片上系统”(SOC)。)。3、可编程改变芯片的逻辑功能,芯片可重复使用,具有、可编程改变芯片的逻辑功能,芯片可重复使用,具有ISP或或ICR特性。(特性。(ISP:In System Programming,在系统编程在系统编程)(ICR:In Circuit Reconfigable,在电路重构)在电路重构)4、有很高的逻辑布
10、线能力,可以、有很高的逻辑布线能力,可以预测信号延迟预测信号延迟,便于使用计算机进行逻辑功能仿真与时序仿真。,便于使用计算机进行逻辑功能仿真与时序仿真。CPLD/FPGA 的主要特点(续)的主要特点(续)5、有良好的设计加密功能,便于保护知识产权、有良好的设计加密功能,便于保护知识产权(IP)。6、有强大的、有强大的EDA开发工具开发工具(软件软件)支持支持,与与ASIC设计相比设计相比,易学易用。易学易用。7、研制、开发时间较短,费用相对少。、研制、开发时间较短,费用相对少。8、必须借助开发系统才能设计、开发、必须借助开发系统才能设计、开发CPLD/FPGA系统。系统。CPLD/FPGA的命
11、名的命名?不同的厂家,对自己生产的可编程逻辑器件叫法不尽相同。不同的厂家,对自己生产的可编程逻辑器件叫法不尽相同。与或阵列技术与或阵列技术FPGA(现场可编程门阵列现场可编程门阵列)是是Xilinx公司发明的。公司发明的。Xilinx公司公司把基于把基于查找表技术查找表技术、SRAM存储工艺存储工艺的可编程逻辑器件叫的可编程逻辑器件叫FPGA;把基于;把基于乘积项技术、乘积项技术、E2PROM(或(或Flash MEM)存储工艺)存储工艺的可编程逻辑器件叫的可编程逻辑器件叫CPLD;CPLD/FPGA的命名(续)的命名(续)通常也把通常也把Altera 的FLEX/ACEX/APEX系列的系列
12、的CPLD产品叫做产品叫做FPGA。Altera公司公司Altera公司把自己生产的可编程逻辑器件都叫作公司把自己生产的可编程逻辑器件都叫作CPLD其中:其中:MAX系列采用系列采用乘积项技术、乘积项技术、E2PROM存储工艺。存储工艺。FLEX/ACEX/APEX系列采用系列采用查找表技术、查找表技术、SRAM存储工艺。存储工艺。如何使用如何使用CPLD/FPGA??开发、使用开发、使用CPLD需要掌握三部分的知识:需要掌握三部分的知识:1、熟悉、了解、熟悉、了解CPLD/FPGA芯片(芯片(硬件硬件););2、掌握、掌握CPLD/FPGA开发系统(开发系统(软件软件););3、能对、能对C
13、PLD/FPGA芯片进行编程配置(芯片进行编程配置(加载设计代码加载设计代码)。)。由于由于CPLD/FPGA开发系统已发展得相当完善,开发系统已发展得相当完善,一般用户一般用户甚至可以甚至可以不用详细了解不用详细了解CPLD/FPGA的内部结构的内部结构,就可以用自己熟悉的,就可以用自己熟悉的方法方法来完成要求的来完成要求的CPLD/FPGA设计。设计。如原理图输入法、如原理图输入法、HDL语言输入法、波形输入法等语言输入法、波形输入法等如何获得如何获得CPLD软件开发系统软件开发系统?许多许多CPLD公司都提供免费的试用版或演示版提供,如公司都提供免费的试用版或演示版提供,如Maxplus
14、II(Baseline版或版或E+MAX版),从版),从?Lattice、Actel等公司也都有类似的免费软件提供。以上免费软件都需要在网上注册申请等公司也都有类似的免费软件提供。以上免费软件都需要在网上注册申请License文件。文件。处下载向代理商索取处下载向代理商索取Foundation从从xilinx网站网站下载下载如何获得如何获得CPLD软件开发系统软件开发系统?(续)(续)?也有许多第三方也有许多第三方EDA软件公司提供软件公司提供CPLD/FPGA开发系统,且性能优良。如开发系统,且性能优良。如CANDENCE公司的公司的SPW系统、系统、Altec公司的公司的ActiveCAD
15、系统。系统。?这些免费软件已经能够满足一般设计的需要,当然,要想软件功能更强大一些,只能购买这些免费软件已经能够满足一般设计的需要,当然,要想软件功能更强大一些,只能购买商业版软件商业版软件。主要的主要的CPLD/FPGA生产厂商生产厂商世界上有多家公司生产世界上有多家公司生产CPLD/FPGA,主要的生产厂商有:,主要的生产厂商有:1、Altera 公司,主要的公司,主要的CPLD生产厂商生产厂商2、Xilinx 公司,主要的公司,主要的FPGA生产厂商生产厂商3、Lattice公司,著名的公司,著名的CPLD生产厂商生产厂商4、ACTEL公司,著名的公司,著名的CPLD生产厂商生产厂商5、
16、Cypress公司,著名的公司,著名的CPLD生产厂商生产厂商6、Atemal公司,著名的公司,著名的IC/MCU公司公司,也设计生产也设计生产PLD产品产品.7、Luccent公司,著名的通讯企业,也设计生产公司,著名的通讯企业,也设计生产PLD产品产品.国外主要的国外主要的CPLD/FPGA开发系统开发系统?Altera:MAX+PlusII、QuartusII?Xilinx:Foundation、ISE、Alliance?Lattice:Synario、ispDesignEXPERT、Vantis?Altec:Active CAD?CPRESS WRAP?OrCAD:OrCAD/2000
17、二、二、CPLD的组成与特点的组成与特点(1)CPLD结构(结构(2)逻辑宏单元()逻辑宏单元(3)可编程内连线()可编程内连线(4)可编程的)可编程的I/O控制块(控制块(5)CPLD的性能特点的性能特点(1)CPLD结构结构?CPLD结构的结构的PLD芯片主要有:芯片主要有:?Altera的的MAX7000,MAX9000,MAX3000系列(系列(E2PROM工艺工艺)?Xilinx的的XC9500系列(系列(Flash工艺工艺)?Lattice,Cypress的大部分产品(的大部分产品(E2PROM/Flash工艺工艺)(1)CPLD结构结构CPLD逻辑块逻辑块(LB)可编程内连线(可
18、编程内连线(PI)可编程)可编程I/O控制块(控制块(I/O B)LBLogic Blocks (逻辑块逻辑块)PIProgrammable Interconnect (可编程内连线可编程内连线)I/O BI/O Block (可编程可编程I/O控制块控制块)MCMacroCells(逻辑宏单元逻辑宏单元)PTAProductTerm Array (乘积项阵列)(乘积项阵列)PTDProductTerm Distribution(乘积项分配)(乘积项分配)以以MAX7000结构为例,其余基本类似结构为例,其余基本类似逻辑宏单元逻辑宏单元1逻辑宏单元逻辑宏单元8(16)(1)CPLD结构结构?逻
19、辑块逻辑块(LB)也称逻辑阵列块(也称逻辑阵列块(LAB)是)是PLD的基础,由它来实现基本的逻辑功能。的基础,由它来实现基本的逻辑功能。一个逻辑块一个逻辑块LB一般由多个(一般由多个(816个)逻辑宏单元构成个)逻辑宏单元构成(MAX7000 系列系列)。不同厂家、不同系列的产品结构略有差异。不同厂家、不同系列的产品结构略有差异。?可编程连线可编程连线PI负责信号传递,连接所有的逻辑宏单元,或负责信号传递,连接所有的逻辑宏单元,或I/O与宏单元的连接。与宏单元的连接。?I/O 控制块控制块(IOB)负责输入输出引脚的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。负责输入输出
20、引脚的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。(1)CPLD结构结构 1998 A ltera C o rp o ratio nM A X 7 0 0 0 S In te rc o n n e c t S tru c tu rePIAI/O C on trol B lockL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A BL A B-L o g ic A rra y B lo ck,h as 16 m ac ro ce lls(1)逻辑阵列块)逻辑阵列块(2)I
21、/O控制块控制块(3)可编程互连阵列)可编程互连阵列Altera公司的MAX 7000S的结构框图Altera公司的MAX 7000S的结构框图CPLD内部结构(内部结构(Altera的的MAX7000S系列)系列)逻辑块逻辑块(LB)也称逻辑阵列块(也称逻辑阵列块(LAB)可编程可编程I/O控制块控制块可编程内连线(可编程内连线(PI)逻辑阵列块中包含多个宏单元逻辑阵列块中包含多个宏单元(2)逻辑宏单元)逻辑宏单元?CPLD的的逻辑宏单元逻辑宏单元主要包括主要包括与或阵列与或阵列、触发器触发器和和多路选择器多路选择器等电路,能独立地配置为组合或时序工作方式。等电路,能独立地配置为组合或时序工
22、作方式。?GAL器件的逻辑宏单元与I/O单元做在一起,称为输出逻辑宏单元(OLMC);?CPLD的逻辑宏单元都做在内部,称为内部逻辑宏单元。(2)逻辑宏单元)逻辑宏单元 1 9 98 A ltera C o rp o ratio nM A X 7 0 0 0 S M a c ro c e ll S tru c tu reP R NC L R NE N AL o g ic A rra yG lo b a lC le a rS h a re d L o g ic E xp a n d e rsC le a rC lo ckC le a r S e le ctR e g iste r B yp a
23、ssP a ra lle l E xp a n d e rsto I/OB lo ckto P IAP ro d u ct-T e rm S e le ct M a trixfrom I/OP inG lo b a lC lo ckQDE N3 6 S ig n a ls F ro m P IAF a s t In p u t S e le c t2(1)逻辑阵列()逻辑阵列(3)可编程触发器()可编程触发器(2)乘积项选择矩阵)乘积项选择矩阵Altera公司MAX 7000S 宏单元结构(2)逻辑宏单元)逻辑宏单元乘积项逻辑阵列乘积项选择矩阵可编程触发器异或门或门?图的左侧是图的左侧是乘积项
24、阵列乘积项阵列,实际就是一个,实际就是一个与阵列与阵列,每个交叉点都是一个,每个交叉点都是一个可编程点可编程点。通过。通过“与阵列与阵列”产生乘积项(最小项)。后面的产生乘积项(最小项)。后面的或门或门把按要求产生的乘积项把按要求产生的乘积项“加加”起来,得到需要的输出组合逻辑函数。起来,得到需要的输出组合逻辑函数。或门乘积项逻辑阵列与门共有362+16=88个输入端?图中的图中的异或门异或门用来控制组合逻辑函数的极性,极性控制端也来自乘积项选择矩阵。用来控制组合逻辑函数的极性,极性控制端也来自乘积项选择矩阵。异或门极性控制端?图右侧是一个图右侧是一个可编程可编程D触发器触发器,它的,它的时钟
25、,清零时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟。输入都可以编程选择,可以使用专用的全局清零和全局时钟。可编程触发器?由图可见,由图可见,CPLD的逻辑宏单元(也可称为的逻辑宏单元(也可称为逻辑单元逻辑单元LE)与)与GAL的的OLMC结构非常类似。结构非常类似。(2)逻辑宏单元)逻辑宏单元?GAL器件一般分配给每个宏单元的乘积项的数量是固定的,一般为8、10、12、14、16个。GAL器件一般分配给每个宏单元的乘积项的数量是固定的,一般为8、10、12、14、16个。?CPLD的宏单元有固定的乘积项(如MAX系列为4个),同时允许一组CPLD的宏单元有固定的乘积项(如MA
26、X系列为4个),同时允许一组扩展乘积项扩展乘积项可单独地分配给一个宏单元或多个宏单元使用,可单独地分配给一个宏单元或多个宏单元使用,扩展乘积项比固定乘积项延时要长扩展乘积项比固定乘积项延时要长。?将乘积项用于特定的宏单元的概念称作将乘积项用于特定的宏单元的概念称作乘积项引导乘积项引导(ProductTerm Steering)。)。?相同的乘积项用于多个宏单元的概念称之为相同的乘积项用于多个宏单元的概念称之为乘积项共享乘积项共享(ProductTerm Sharing)。)。?产品不同,乘积项共享实现方法也不同产品不同,乘积项共享实现方法也不同。乘积项分配乘积项分配(PTDProductTer
27、m Distribution)将与阵列产生的乘积项分配给不同的宏单元。将与阵列产生的乘积项分配给不同的宏单元。(2)逻辑宏单元)逻辑宏单元MAX7000乘积项共享结构乘积项共享结构并联扩展乘积项共享扩展乘积项乘积项共享并联扩展乘积项共享扩展乘积项乘积项共享每个宏单元提供一个共享扩展乘积项共享扩展乘积项(2)逻辑宏单元)逻辑宏单元乘积项共享结构举例由由2个或门实现乘积项共享结构个或门实现乘积项共享结构或门(或门(1)或门(或门(2)(2)逻辑宏单元)逻辑宏单元乘积项共享结构乘积项共享结构归纳:归纳:逻辑宏单元结构和I/O控制结构比GAL有所改进,逻辑宏单元具有如下逻辑宏单元结构和I/O控制结构比
28、GAL有所改进,逻辑宏单元具有如下特点特点:GAL的OLMC只有1个触发器多触发器和“隐埋”触发器结构多触发器和“隐埋”触发器结构?每个逻辑宏单元内含有每个逻辑宏单元内含有两个两个或或两个以上两个以上的触发器。的触发器。?其中其中只有一个只有一个可与I/O引出端相连,其余均为“可与I/O引出端相连,其余均为“隐埋隐埋”触发器,不与输出端相连,但可以反馈到与阵列,构成更复杂的时序电路。”触发器,不与输出端相连,但可以反馈到与阵列,构成更复杂的时序电路。?这种结构可提高内部资源利用率。这种结构可提高内部资源利用率。?提高了各单元或门的使用效率,可实现较复杂的逻辑功能。提高了各单元或门的使用效率,可
29、实现较复杂的逻辑功能。(2)逻辑宏单元)逻辑宏单元?通过对输出触发器编程,可实现4种不同类型触发器结构:D、T、J-K和R-S触发器。通过对输出触发器编程,可实现4种不同类型触发器结构:D、T、J-K和R-S触发器。?它们与逻辑宏单元相配合,可实现多种逻辑电路结构。它们与逻辑宏单元相配合,可实现多种逻辑电路结构。触发器类型可编程结构触发器类型可编程结构(3)可编程内连线)可编程内连线PI?在各个逻辑宏单元之间以及逻辑宏单元与在各个逻辑宏单元之间以及逻辑宏单元与I/O单元之间提供可编程的信号连接网络;单元之间提供可编程的信号连接网络;?分为基于阵列的内连线分为基于阵列的内连线(P47图图3.3)
30、和基于多路选择器内连线和基于多路选择器内连线(P48图图3.4)。?CPLD中一般采用中一般采用固定长度固定长度的线段来进行连接,因此信号传输的延时是固定的,使得信号的线段来进行连接,因此信号传输的延时是固定的,使得信号传输时间延时能够预测传输时间延时能够预测。在在FPGA中基于通道布线方案的布线延时是累加的、可变的,并与路径有关中基于通道布线方案的布线延时是累加的、可变的,并与路径有关延迟不可预测!延迟不可预测!(4)可编程的)可编程的I/O控制块控制块?输入输出单元(I/O单元)要考虑以下一些输入输出单元(I/O单元)要考虑以下一些要求要求:?能够兼容TTL和CMOS多种接口电压和接口标准
31、;能够兼容TTL和CMOS多种接口电压和接口标准;?可配置为可配置为输入输入、输出输出、双向I/O、集电极开路和三态门双向I/O、集电极开路和三态门等各种组态;等各种组态;?能提供适当的驱动电流,以直接驱动发光二极管等器件;能提供适当的驱动电流,以直接驱动发光二极管等器件;?降低功率消耗,防止过冲和减少电源噪声。降低功率消耗,防止过冲和减少电源噪声。?I/O单元分布于器件的四周,提供器件外部引脚与内部逻辑之间的连接。I/O单元分布于器件的四周,提供器件外部引脚与内部逻辑之间的连接。?主要由触发器和缓冲器组成。主要由触发器和缓冲器组成。?每个IOB控制一个外部引脚,可将其编程为每个IOB控制一个
32、外部引脚,可将其编程为输入输入、输出输出或或双向I/O双向I/O功能,或功能,或集电极开路、三态门集电极开路、三态门等。等。(4)可编程的)可编程的I/O控制块控制块1.20.5m5V0.35m3.3V0.25minternal 2.5V,I/O 3.3V0.18minternal 1.8V,I/O 2.5V and 3.3V芯片制造工艺和电压等级芯片制造工艺和电压等级(5)CPLD的性能特点的性能特点(1)(1)可可多次编程多次编程、改写和擦除。、改写和擦除。(2)(2)采用CMOS EPROM、EEPROM、Flash Memory和SRAM等采用CMOS EPROM、EEPROM、Fla
33、sh Memory和SRAM等编程技术编程技术,具有高密度、高速度、高可靠性和低功耗。,具有高密度、高速度、高可靠性和低功耗。(3)(3)I/O端数和内含触发器可多达数百个,I/O端数和内含触发器可多达数百个,集成度集成度远远远远高高于PAL和GAL。于PAL和GAL。(4)(4)有灵活多样的有灵活多样的逻辑结构逻辑结构,可满足各种数字电路系统设计的需要。,可满足各种数字电路系统设计的需要。(5)(5)内部时间延迟与器件结构及逻辑连接等无关,内部时间延迟与器件结构及逻辑连接等无关,可预测可预测,易消除竞争冒险。,易消除竞争冒险。(6)(6)有多位加密位,且器件等效数千个逻辑门以上,因此可杜绝编
34、程数据的非法抄袭。有多位加密位,且器件等效数千个逻辑门以上,因此可杜绝编程数据的非法抄袭。三、三、FPGA的的组成与特点组成与特点(1)FPGA基本结构(2)查找表LUT(3)可编程逻辑块(CLB)(4)输入/输出模块(IOB)(5)可编程互连线(PI)(6)片内RAM(7)FPGA的性能特点(1)FPGA基本结构(2)查找表LUT(3)可编程逻辑块(CLB)(4)输入/输出模块(IOB)(5)可编程互连线(PI)(6)片内RAM(7)FPGA的性能特点三、三、FPGA的的组成与特点组成与特点?FPGA都采用查找表都采用查找表(Look-Up-Table,LUT)来实现逻辑函数。如来实现逻辑函
35、数。如Altera的的FLEX/ACEX/APEX系列器件和系列器件和Xilinx的多数器件。的多数器件。?FPGA的编程配置元件都是的编程配置元件都是SRAM。?由于由于SRAM较易制造,且其可重复编程使用的次数几乎无限,所以目前高集成度的可编程逻辑器件几乎都是较易制造,且其可重复编程使用的次数几乎无限,所以目前高集成度的可编程逻辑器件几乎都是FPGA。?与与CPLD相比,相比,FPGA具有更高的集成度、更强的逻辑功能和更大的灵活性。具有更高的集成度、更强的逻辑功能和更大的灵活性。(1)FPGA基本结构基本结构FPGA可编程逻辑块可编程逻辑块(CLB)Configurable Logic B
36、lock可编程输入输出块(可编程输入输出块(IOB)Input/Output Block可编程连线资源(可编程连线资源(PIR)Programmable Interconnect Resource逻辑单元逻辑单元LE1逻辑单元逻辑单元LE2主要为查找表(主要为查找表(LUT)结构)结构单长线双长线长线单长线双长线长线输入触发器输入缓冲器输出触发锁存器输出缓冲器组成,输入触发器输入缓冲器输出触发锁存器输出缓冲器组成,逻辑函数发生器逻辑函数发生器触发器数据选择器进位链、级联链触发器数据选择器进位链、级联链Xilinx公司公司FPGA基本结构组成图基本结构组成图可编程逻辑块可编程逻辑块CLB可编程连
37、线资源(PIR)IOB(1)FPGA基本结构基本结构?可编程逻辑块可编程逻辑块CLB组成了组成了FPGA的核心门阵列,能完成用户指定的逻辑功能;每个的核心门阵列,能完成用户指定的逻辑功能;每个CLB中包含中包含1个或个或2个逻辑单元(个逻辑单元(LE)。)。LE主要由一个主要由一个组合逻辑函数发生器组合逻辑函数发生器、几个触发器、若干个多路选选择器及控制电路组成。、几个触发器、若干个多路选选择器及控制电路组成。(1)FPGA基本结构基本结构?可编程的输入可编程的输入/输出块输出块IOB位于芯片内部四周,在内部逻辑阵列与外部芯片封装引脚之间提供一个可编程接口,它主要由逻辑门、触发器和控制单元组成
38、。位于芯片内部四周,在内部逻辑阵列与外部芯片封装引脚之间提供一个可编程接口,它主要由逻辑门、触发器和控制单元组成。(1)FPGA基本结构基本结构?可编程连线资源可编程连线资源PIR位于芯片内部的逻辑块之间,经编程后形成连线网络,用于芯片内部逻辑间的相互连接,并在它们之间传递逻辑信息。位于芯片内部的逻辑块之间,经编程后形成连线网络,用于芯片内部逻辑间的相互连接,并在它们之间传递逻辑信息。(2)查找表)查找表LUT查找表(查找表(LUT)就是一个有)就是一个有N根,一般是根,一般是4根根地址线地址线的的16x1的的RAM存储器。存储器。(存储容量取决于输入数量,(存储容量取决于输入数量,N个输入的
39、逻辑函数,需要个输入的逻辑函数,需要2N容量的容量的SRAM来实现。)来实现。)工作原理:工作原理:当用户通过原理图或当用户通过原理图或HDL 语言描述了一个语言描述了一个4输入的逻辑电路后,输入的逻辑电路后,EDA软件就会按设计要求软件就会按设计要求自动计算自动计算逻辑电路的所有可能的结果,逻辑电路的所有可能的结果,并把该结果事先写入这个并把该结果事先写入这个RAM存储器存储器。这样,当输入变量作为。这样,当输入变量作为RAM的地址信号输入时,预期的结果(输出逻辑函数)就作为的地址信号输入时,预期的结果(输出逻辑函数)就作为RAM的存储数据输出了。(的存储数据输出了。(查找表存储组合逻辑值查
40、找表存储组合逻辑值)通过通过CLB的的延时是固定常数延时是固定常数。(Look-Up-Table)例例1:实现一个:实现一个4输入与门组合逻辑函数输入与门组合逻辑函数例例2:用多种门的组合逻辑函数:用多种门的组合逻辑函数CDBAZ+=查找表存储组合逻辑值存储容量取决于输入数量通过查找表存储组合逻辑值存储容量取决于输入数量通过CLB的延时是固定常数的延时是固定常数例例3、查找表级联、查找表级联N个输入的逻辑函数需要2的N次方的容量的SRAM来实现。一个LUT无法完成的N4的多输入电路,就需要通过进位和级联的方法将多个LUT单元相连,这样FPGA就可以实现复杂的逻辑。查找表查找表与门与门查找表查找
41、表与门与门查找表查找表与门与门d3.0d7.4d11.8例例3:实现一个:实现一个12个输入变量的函数。个输入变量的函数。(3)可编程逻辑块)可编程逻辑块(CLB)(CLB)XC4000的的CLB基本结构基本结构?CLB是是FPGA的主要组成部分,是实现逻辑功能的基本结构单元。它主要由的主要组成部分,是实现逻辑功能的基本结构单元。它主要由逻辑函数发生器、触发器、数据选择器逻辑函数发生器、触发器、数据选择器等电路组成。等电路组成。?在在Xilinx 公司的公司的XC4000器件中每个器件中每个CLB由由3个组合逻辑个组合逻辑函数发生器函数发生器、2个个触发器触发器和由和由数据选择器数据选择器组成
42、的内部控制电路构成。组成的内部控制电路构成。XC4000系列系列FPGA的的CLB基本结构基本结构组合逻辑函数发生器组合逻辑函数发生器2个触发器个触发器由数据选择器组成的内部控制电路由数据选择器组成的内部控制电路?在在CLB中有中有三个三个组合逻辑函数发生器,它们分别是组合逻辑函数发生器,它们分别是G、F和和H,对应的输出是,对应的输出是G、F和和H。G和和F有四个输入变量,有四个输入变量,H有有3个输入变量。个输入变量。4变量变量4变量变量3变量变量?利用三个组合逻辑函数发生器,可以实现利用三个组合逻辑函数发生器,可以实现多达多达9个变量个变量的组合逻辑函数。的组合逻辑函数。?XC4000的
43、的CLB中有中有两个两个边沿触发的边沿触发的D触发器,它们共有一个公共的触发器,它们共有一个公共的时钟时钟,共有一个时钟,共有一个时钟使能使能输入端,允许选择时钟信号高或低电平有效。输入端,允许选择时钟信号高或低电平有效。?只要对只要对CLB内部的数据选择器进行编程,逻辑函数发生器内部的数据选择器进行编程,逻辑函数发生器G、F和和H的输出就可以的输出就可以和触发器连接和触发器连接(或者不连接)(或者不连接),实现所需要的,实现所需要的时序逻辑输出时序逻辑输出(或者组合逻辑函数输出)(或者组合逻辑函数输出)。?在在CLB中的不同规格的数据选择器,分别用来选择中的不同规格的数据选择器,分别用来选择
44、触发器激励输入信号、时钟有效边沿、时钟使能信号触发器激励输入信号、时钟有效边沿、时钟使能信号以及以及输出信号输出信号等。等。(4)输入/输出模块(IOB)(4)输入/输出模块(IOB)DQXC4000系列的系列的I/O B 基本结构基本结构(4)输入/输出模块(IOB)(4)输入/输出模块(IOB)?IOB分布于器件的四周,提供器件外部引脚与内部逻辑之间的连接。IOB分布于器件的四周,提供器件外部引脚与内部逻辑之间的连接。?主要由触发器和缓冲器组成。主要由触发器和缓冲器组成。?每个IOB控制一个外部引脚,可将其编程为每个IOB控制一个外部引脚,可将其编程为输入输入、输出输出或或双向I/O双向I
45、/O功能,或功能,或组合组合逻辑、逻辑、寄存器寄存器逻辑、逻辑、三态三态逻辑等。逻辑等。DQ?遍布器件内部,提供高速可靠的内部连线。它将遍布器件内部,提供高速可靠的内部连线。它将CLB之间、之间、CLB和和IOB之间连接起来,构成复杂的逻辑。之间连接起来,构成复杂的逻辑。?主要由纵横分布在主要由纵横分布在CLB阵列之间的金属线网络和位于纵横交叉点上的阵列之间的金属线网络和位于纵横交叉点上的可编程开关矩阵可编程开关矩阵(PSM,Programmable Switch Matrix)组成。)组成。?FPGA使用使用分层分层连线资源结构,提供连线资源结构,提供3种连接结构:种连接结构:单长线连接、双
46、长线连接、长线连接单长线连接、双长线连接、长线连接?FPGA内部延时与器件结构和逻辑布线等有关,故信号传输FPGA内部延时与器件结构和逻辑布线等有关,故信号传输延时不确定延时不确定。CPLD采用固定长度的连线采用固定长度的连线!(5)可编程互连线(PI)(5)可编程互连线(PI)CPLD采用固定长度的连线采用固定长度的连线!(5)可编程互连线(PI)(5)可编程互连线(PI)XC4000系列的可编程连线资源系列的可编程连线资源PIR可分为单长线、双长线和长线。可分为单长线、双长线和长线。单长线单长线双长线双长线长线长线?单长线单长线是指可编程开关矩阵和是指可编程开关矩阵和CLB之间的连线,是贯
47、穿于之间的连线,是贯穿于CLB之间的之间的8条垂直和条垂直和8条水平条水平金属线段,金属线段,可编程开关矩阵的开关可编程开关矩阵的开关位于这些金属线网络的交叉点。位于这些金属线网络的交叉点。?通过编制程序,可控制开关矩阵将通过编制程序,可控制开关矩阵将CLB与与CLB,或者,或者CLB与与I/OB连在一起。连在一起。(5)可编程互连线(PI)(5)可编程互连线(PI)?双长线双长线包括夹在包括夹在CLB之间的之间的4条垂直和条垂直和4条水平条水平金属线段。长度是单长线的两倍,可通过两个金属线段。长度是单长线的两倍,可通过两个CLB。穿过两个。穿过两个CLB之后,这些金属线段才与可编程的开关矩阵
48、相连。之后,这些金属线段才与可编程的开关矩阵相连。?利用双长线可以使两个利用双长线可以使两个相隔(非相邻)相隔(非相邻)的的CLB连接。连接。(5)可编程互连线(PI)(5)可编程互连线(PI)?长线长线是水平或垂直地贯穿于整个芯片的金属线,称为水平长线和垂直长线。是水平或垂直地贯穿于整个芯片的金属线,称为水平长线和垂直长线。?信号不经过开关矩阵(信号不经过开关矩阵(PSM),信号延迟小,),信号延迟小,主要用于长距离或多分支信号(如控制、时钟信号)的传送。主要用于长距离或多分支信号(如控制、时钟信号)的传送。(5)可编程互连线(PI)(5)可编程互连线(PI)(6)片内RAM(6)片内RAM
49、?在进行数字信号处理、数据加密或数据压缩等复杂数字系统设计时,要用到存储器。如果将存储模块在进行数字信号处理、数据加密或数据压缩等复杂数字系统设计时,要用到存储器。如果将存储模块集成到集成到PLD芯片中,可简化设计,提高系统速度,还可减少数据存储的成本,使芯片内外数据交换更可靠。芯片中,可简化设计,提高系统速度,还可减少数据存储的成本,使芯片内外数据交换更可靠。?目前新一代目前新一代FPGA都提供片内都提供片内RAM。这种片内。这种片内RAM的速度非常快,读操作的时间为的速度非常快,读操作的时间为34ns,写操作的时间为,写操作的时间为5ns。(注意不是配置用的(注意不是配置用的SRAM)?F
50、PGA的片内的片内RAM分为两类分为两类:块RAM块RAM 分布式RAM分布式RAM(7)FPGA的性能特点(7)FPGA的性能特点与CPLD的最大区别!与CPLD的最大区别!(1)(1)采用采用SRAMSRAM编程技术,具有高密度、高速度、高可靠性和低功耗。编程技术,具有高密度、高速度、高可靠性和低功耗。(2)(2)丰富的I/O端数和触发器,丰富的I/O端数和触发器,集成度集成度远远远远高高于PAL和GAL。于PAL和GAL。(3)(3)结构灵活结构灵活,内部的CLB、IOB和PI均可编程;强有力的组合逻辑函数发生器,可实现多个变量的任意逻辑。可满足各种数字电路系统设计的需要。,内部的CLB