第2章FPGA与CPLD的结果原理_第1页
第2章FPGA与CPLD的结果原理_第2页
第2章FPGA与CPLD的结果原理_第3页
第2章FPGA与CPLD的结果原理_第4页
第2章FPGA与CPLD的结果原理_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2章章 FPGA与与CPLD的结构原理的结构原理 FPGA与与CPLD的结构原理的结构原理 FPGA与与CPLD的结构原理的结构原理 可编程逻辑器件可编程逻辑器件PLDPLD(Programmable Logic DevicesProgrammable Logic Devices)是)是2020世纪世纪7070年代发展起来年代发展起来的一种新的集成器件。是大规模集成电路技术发展的一种新的集成器件。是大规模集成电路技术发展的产物,是一种的产物,是一种半定制半定制的集成电路,的集成电路,结合结合EDAEDA技术技术可以十分便捷地可以十分便捷地构构建数字系统建数字系统。本章主要介绍本章主要介绍

2、几类常用几类常用大规模可编程逻辑器件的结构和工作原理大规模可编程逻辑器件的结构和工作原理; 对对CPLDCPLD乘积项原理和乘积项原理和FPGAFPGA査找表原理査找表原理分别进行剖析;分别进行剖析; 简要介绍相关的简要介绍相关的编程下载和测试技术编程下载和测试技术。 2.1 PLD概述概述 数字电路系统都是由基本门构成数字电路系统都是由基本门构成: :与门、或门、非门、传输门等。与门、或门、非门、传输门等。 基本门可构成两类数字电路基本门可构成两类数字电路: : 组合电路:组合电路:在逻辑上输出总是在逻辑上输出总是当前输入状态的函数当前输入状态的函数; 时序电路:时序电路:其输出是其输出是当

3、前系统状态与当前输入状态的函数当前系统状态与当前输入状态的函数,它含有,它含有 存储元件。存储元件。 不是所有的基本门都必需。不是所有的基本门都必需。例如:例如: 用用单一单一“与非与非”基本门就基本门就可构成其他的基本门可构成其他的基本门。 任何的任何的组合逻辑函数都可化为组合逻辑函数都可化为“与与- -或或”表达式表达式。即:任何组。即:任何组 合电路,可用合电路,可用“与门与门- -或门或门”二级电路实现。二级电路实现。 任何任何时序电路时序电路都可由都可由组合电路加上存储元件组合电路加上存储元件(即锁存器、触发(即锁存器、触发 器、器、RAMRAM)构成构成。2.1 PLD概述概述 2

4、. 2.可编程门阵列结构(可编程门阵列结构(Programmable Gate ArrayProgrammable Gate Array):): 是一种是一种基于基于SRAMSRAM査找表的可编程逻辑。査找表的可编程逻辑。从从ROMROM工作原理、地址信号与工作原理、地址信号与输出数据间的关系,以及输出数据间的关系,以及ASICASIC的门阵列结构中获得启发而构造;其逻辑的门阵列结构中获得启发而构造;其逻辑函数发生采用函数发生采用RAM“RAM“数据査找数据査找”的方式,并使用的方式,并使用多个査找表构成一个査找多个査找表构成一个査找表阵列表阵列。 1. 1.乘积项逻辑可编程电路结构:乘积项逻

5、辑可编程电路结构: 是一种是一种“与与- -或或”结构组成的结构组成的PLDPLD器件器件,功能比较简单。,功能比较简单。原理如图原理如图2-12-1所示所示 可编程逻辑电路的结构类型可编程逻辑电路的结构类型2.1 PLD概述概述 可编程逻辑器件的演变过程可编程逻辑器件的演变过程 (1 1)2020世纪世纪7070年代年代,熔丝编程的,熔丝编程的PROMPROM(Programmable Read Only MemoryProgrammable Read Only Memory)和)和 PLA PLA(Programmable Logic ArrayProgrammable Logic Arr

6、ay)是)是最早的可编程逻辑器件最早的可编程逻辑器件。 (2 2)2020世纪世纪7070年代末年代末,AMDAMD公司公司改进改进PLAPLA,推出,推出PALPAL(Programmable Array Programmable Array Logic Logic)器件。)器件。 (3 3)2020世纪世纪8080年代初年代初,LatticeLattice发明发明电可擦写电可擦写GALGAL(Generic Array LogicGeneric Array Logic)器器 件件。 (4 4)2020世纪世纪8080年代中期年代中期,XilinxXilinx公司生产出世界上公司生产出世界上

7、第一片第一片FPGAFPGA器件器件。同一时期,。同一时期, Altera Altera公司公司推出推出EPLDEPLD器件器件,可用,可用紫外线或电擦除紫外线或电擦除。 (5 5)2020世纪世纪8080年代末年代末,LatticeLattice公司又提出公司又提出在系统可编程在系统可编程(In-System In-System Programmability Programmability)技术,并推出一系列具备在系统可编程能力的)技术,并推出一系列具备在系统可编程能力的CPLDCPLD器件器件。 (6 6)2020世纪世纪9090年代后年代后,器件,器件可用逻辑门数超过百万门可用逻辑门数

8、超过百万门,并出现,并出现内嵌复杂功能模内嵌复杂功能模 块块(如加法器、乘法器、(如加法器、乘法器、RAMRAM、CPUCPU核、核、DSPDSP核核PLLPLL等)的等)的SOPCSOPC。 进入进入2121世纪世纪,FPGAFPGA在规模、领域、速度、成本与功能等方面在规模、领域、速度、成本与功能等方面进步更加瞩目进步更加瞩目。2.1 PLD概述概述 2.1.2 PLD2.1.2 PLD分类分类 简单简单PLDPLD。芯片集芯片集成度较低,如成度较低,如PROMPROM、PLAPLA、PALPAL、GALGAL 等,可用的逻等,可用的逻辑门数大约在辑门数大约在500 500 门以门以下;下

9、; 复杂复杂PLDPLD。芯片集成度较高,如现在大量使用的芯片集成度较高,如现在大量使用的CPLDCPLD、FPGAFPGA器件器件,PLDPLD规规模的划分并无同一标准,但模的划分并无同一标准,但500500门己远非划界的标准。门己远非划界的标准。 简单简单PLDPLD(PROMPROM、PLAPLA、PALPAL、 GALGAL等)规模小,结构上由简单等)规模小,结构上由简单“与与- -或或”门阵列和输入、输出单元组成,只能实现通用数字逻辑电路(如门阵列和输入、输出单元组成,只能实现通用数字逻辑电路(如7474系列)的一系列)的一些功能。些功能。较常见的有以下三种较常见的有以下三种(1 1

10、)按集成度分类(如图)按集成度分类(如图2-22-2所示)所示)2.1 PLD概述概述 2.1.2 PLD2.1.2 PLD分类分类 (2 2)按结构分类)按结构分类 乘积项结构器件。乘积项结构器件。基本结构为基本结构为“与与- -或或”阵列阵列, 大部分大部分简单简单PLDPLD和和CPLDCPLD属于这个范畴;属于这个范畴; 基于査找表结构的器件。基于査找表结构的器件。由简单的由简单的査找表组成可编程门査找表组成可编程门,再构成阵列再构成阵列形式,多数形式,多数FPGAFPGA属于此类器件。属于此类器件。 (3 3)按编程工艺分类)按编程工艺分类 熔丝(熔丝(FuseFuse)型器件。)型

11、器件。编程是编程是根据设计的熔丝图文件来烧断对应的熔根据设计的熔丝图文件来烧断对应的熔丝丝。早期的。早期的PROMPROM器件器件就是采用熔丝结构。就是采用熔丝结构。 反熔丝(反熔丝(AntifuseAntifuse)型器件。)型器件。在编程处通过在编程处通过击穿漏层使得两点之间获击穿漏层使得两点之间获得导通得导通。如。如ActelActel公司公司早期的早期的FPGAFPGA器件器件就采用此种编程方式。就采用此种编程方式。 无论是熔丝还是反熔丝结构,都只能编程一次无论是熔丝还是反熔丝结构,都只能编程一次,因而又被合称为,因而又被合称为OTPOTP(One Time Programming)O

12、ne Time Programming)器件器件,即一次性可编程器件。,即一次性可编程器件。 2.1 PLD概述概述 (4 4)按可重复编程方式分类)按可重复编程方式分类 EPROMEPROM型。型。紫外线擦除紫外线擦除,较高编程电压编程较高编程电压编程( (烧写烧写) ),可,可多次编程多次编程。 EEPROMEEPROM型。型。即即电可擦写电可擦写编程器件,是对编程器件,是对EPROMEPROM的工艺改进,无需的工艺改进,无需紫外线擦除。现有紫外线擦除。现有部分部分CPLDCPLD及及GALGAL器件仍采用此类结构器件仍采用此类结构。 SRAMSRAM型。型。即即SRAMSRAM查找表结构

13、的器件查找表结构的器件,目前,目前大部分大部分FPGAFPGA器件器件采用采用此种编程工艺,如此种编程工艺,如XilinxXilinx和和AlteraAltera的的FPGAFPGA。这种编程方式。这种编程方式在编程速度、在编程速度、编程要求上要优于前四种器件编程要求上要优于前四种器件,不过,不过SRAMSRAM型器件的型器件的编程信息存放在编程信息存放在RAMRAM中,断电后就丢失中,断电后就丢失,再次上电需要再次编程(配置),因而,再次上电需要再次编程(配置),因而需要专用器需要专用器件来完成配置操作件来完成配置操作。 FlashFlash型。型。现在许多现在许多CPLDCPLD器件采用了

14、器件采用了FlashFlash工艺。采用此工艺的工艺。采用此工艺的器件器件编程次数可达万次编程次数可达万次以上,且以上,且掉电后不需重新配置掉电后不需重新配置。2.1.2 PLD2.1.2 PLD分类分类 2.2 简单简单PLD结构原理结构原理 2.2.1 2.2.1 逻辑元件符号表示逻辑元件符号表示 19841984:矩形图中的符号标志逻辑功能:矩形图中的符号标志逻辑功能(Rectangular Outline SymbolsRectangular Outline Symbols););19911991:国际标准逻辑符号:国际标准逻辑符号(Distinctive Shape SymbolsD

15、istinctive Shape Symbols)。)。 2.2 简单简单PLD结构原理结构原理 2.2.1 2.2.1 逻辑元件符号表示逻辑元件符号表示 2.2 简单简单PLD结构原理结构原理 2.2.2 PROM2.2.2 PROM结构原理结构原理 可编程只读存储器可编程只读存储器PROM PROM 除了除了用作存储器用作存储器外,还可外,还可作为作为PLDPLD使用使用。一个。一个PROMPROM器件主要由器件主要由地址译码地址译码部分、部分、PROMPROM单元阵列单元阵列和和输出缓冲输出缓冲部分构成,如图部分构成,如图2-92-9所示。所示。 图图2-92-9是对是对PROMPROM

16、通常的认识,也可以从可编程逻辑器件的角度来分析通常的认识,也可以从可编程逻辑器件的角度来分析PROMPROM的基本结构。的基本结构。 2.2 简单简单PLD结构原理结构原理 PROMPROM中的地址译码器中的地址译码器用于完成用于完成PROMPROM存储阵列的存储阵列的行的选择行的选择,其逻,其逻辑函数为:辑函数为: 其中其中 。容易发现,式。容易发现,式(2-1)(2-1)都可以看成是逻辑都可以看成是逻辑“与与”运算,运算,因此因此可以把可以把PROMPROM的地址译码器的地址译码器看成是一个看成是一个“与与” ” 阵列阵列。 2np 2.2.2 PROM2.2.2 PROM结构原理结构原理

17、 2.2 简单简单PLD结构原理结构原理 对于对于存储单元阵列的输出存储单元阵列的输出(如图(如图2-102-10所示),可用下列逻辑函数表所示),可用下列逻辑函数表示(其中示(其中 是存储单元阵列是存储单元阵列第第p-1p-1行行m-1m-1列列单元的值单元的值) ): 1,1pmM2.2.2 PROM2.2.2 PROM结构原理结构原理 显然显然, ,可以认为式可以认为式(2-2)(2-2)是一个是一个“或或”阵列阵列,与上面的,与上面的“与与”阵列不同的是:阵列不同的是:这里这里 是可以编程的,即是可以编程的,即“或或”阵列可编程,阵列可编程,“与与”阵列不可编程阵列不可编程。结合上。结

18、合上述两个分析结果,可以把述两个分析结果,可以把PROMPROM的结构表示为的结构表示为图图2-102-10。,x yM2.2 简单简单PLD结构原理结构原理 为了更清晰直观地表示为了更清晰直观地表示PROMPROM中固定的中固定的“与与”阵列和可编程的阵列和可编程的“或或”阵列,阵列,PROMPROM可以表示为可以表示为PLDPLD阵列图。以阵列图。以4 42 PROM2 PROM为例,如图为例,如图2-112-11所示。所示。 2.2.2 PROM2.2.2 PROM结构原理结构原理 2.2 简单简单PLD结构原理结构原理 PROM PROM的地址线的地址线 是是“与与”阵列(地址译码器)

19、的阵列(地址译码器)的n n个输入变量个输入变量,经,经不可编程的不可编程的“与与”阵列产生的阵列产生的 共共 个最小项(乘积项)个最小项(乘积项) , ,再再经可编程或阵列按编程的结果产生经可编程或阵列按编程的结果产生m m个输出函数个输出函数 , ,这里的这里的m m就是就是PROMPROM的的输出数据位宽输出数据位宽。对应已知的。对应已知的半加器的逻辑表达式:半加器的逻辑表达式: 和和 可用可用4 42 PROM2 PROM编程实现。编程实现。10nAA2n10nAA021nWWm 10FF01SAA01CA A 图图2-122-12的连接结构表达的正是的连接结构表达的正是半加半加器逻辑

20、:器逻辑: 和和 。这。这就是图就是图2-122-12结构的结构的布尔表达式布尔表达式,即所谓,即所谓的的“乘积项乘积项”方式。反之,方式。反之,根据半加器根据半加器的逻辑关系,亦可得到图的逻辑关系,亦可得到图2-122-12的阵列点的阵列点连接关系连接关系,从而形成阵列点文件,即早,从而形成阵列点文件,即早期的期的PLDPLD编程文件:编程文件:熔丝图文件(熔丝图文件(Fuse Fuse MapMap)。)。 11F 0A A0F 1010A AA A2.2.2 PROM2.2.2 PROM结构原理结构原理 2.2 简单简单PLD结构原理结构原理 2.2.3 PLA2.2.3 PLA结构原理

21、结构原理 当输入变量增多时,当输入变量增多时,PROMPROM实现组合逻辑函数,实现组合逻辑函数,其存储单元利用率大大降低。其存储单元利用率大大降低。因因PROMPROM的的“与与”阵阵列是全译码器,产生全部最小项列是全译码器,产生全部最小项。 可编程逻辑阵列可编程逻辑阵列PLAPLA对对PROMPROM进行了改进。由进行了改进。由图图2-112-11可知可知PROMPROM的或阵列可编程,而与阵列不可的或阵列可编程,而与阵列不可编程;编程;PLAPLA是与阵列和或阵列都可编程是与阵列和或阵列都可编程,图图2-132-13是是PLAPLA的阵列图表示。的阵列图表示。 任何组合函数都可采用任何组

22、合函数都可采用PLAPLA来实现来实现, ,但在实现但在实现时,由于与阵列不采用全译码的方式,标准与或时,由于与阵列不采用全译码的方式,标准与或表达式已不适用,表达式已不适用,需把逻辑函数化成最简与或表需把逻辑函数化成最简与或表达式达式,然后用可编程的与阵列构成与项,用可编,然后用可编程的与阵列构成与项,用可编程的或阵列构成与项的或运算。程的或阵列构成与项的或运算。有多个输出时,有多个输出时,要尽量利用公共的与项,以提高阵列的利用率要尽量利用公共的与项,以提高阵列的利用率。2.2 简单简单PLD结构原理结构原理 2.2.3 PLA2.2.3 PLA结构原理结构原理 2.2 简单简单PLD结构原

23、理结构原理 2.2.3 PLA2.2.3 PLA结构原理结构原理 图图2-142-14是是6 63 PLA3 PLA与与8 83 PROM3 PROM的比较,的比较,两者在大部分实际应用中,可实两者在大部分实际应用中,可实现相同的逻辑功能现相同的逻辑功能,不过不过6 63 PLA3 PLA只需要只需要6(=26(=23)3)条乘积项线条乘积项线(仅需包含在(仅需包含在逻辑功能中实际要求的最小项),逻辑功能中实际要求的最小项),而不是而不是8 83 PROM3 PROM的的8(= )8(= )条,节省条,节省2 2条条。当当PLAPLA的规模增大时,其相比的规模增大时,其相比PROMPROM的优

24、势更加明显。的优势更加明显。 虽然虽然PLAPLA利用率较高利用率较高,但它需要有逻辑函数的,但它需要有逻辑函数的“与或与或”最简表达式,最简表达式,对于多输出函数对于多输出函数需要提取和利用公共的需要提取和利用公共的“与与”项,这涉及的软件算法较复杂项,这涉及的软件算法较复杂; PLAPLA的的两个阵列均可编程两个阵列均可编程,不可避免地使,不可避免地使编程后器件的运行速度下降编程后器件的运行速度下降,因此因此PLAPLA的使用受到很大的限制,如今,的使用受到很大的限制,如今,现成的现成的PLAPLA芯片已被淘汰芯片已被淘汰。 由于由于PLAPLA资源面积利用率较高资源面积利用率较高,在,在

25、全定制全定制ASICASIC设计设计中获得广泛使用,中获得广泛使用,但这时逻辑但这时逻辑函数的化简则由设计者手工完成函数的化简则由设计者手工完成。322.2 简单简单PLD结构原理结构原理 2.2.4 PAL2.2.4 PAL结构原理结构原理 PLAPLA的利用率高,但的利用率高,但“与、或与、或”阵列都可编程导致软件算法过于复杂,阵列都可编程导致软件算法过于复杂,运行速度下运行速度下降。于是,另一种降。于是,另一种可编程阵列逻辑器件可编程阵列逻辑器件PALPAL开始取而代之。开始取而代之。PALPAL的结构与的结构与PLAPLA相似,也包含相似,也包含“与与”阵列、阵列、“或或”阵列,但是阵

26、列,但是“或或”阵列是固阵列是固定定的,只有的,只有“与与”阵列可编程阵列可编程。PALPAL的结构如图的结构如图2-152-15所示,由于所示,由于PALPAL的的“或或”阵列固定,可用图阵列固定,可用图2-162-16来表示。来表示。 2.2 简单简单PLD结构原理结构原理 2.2.4 PAL2.2.4 PAL结构原理结构原理 上述可编程结构上述可编程结构只能解决组合逻辑只能解决组合逻辑的可编程问题,而的可编程问题,而对时序电路无能为对时序电路无能为力力。由于时序电路。由于时序电路是由组合电路及存是由组合电路及存储单元(锁存器、储单元(锁存器、触发器、触发器、RAMRAM)构成,)构成,所

27、以所以PALPAL加上输出寄加上输出寄存器单元存器单元后,即可后,即可实现时序电路的可实现时序电路的可编程编程,如图如图2-172-17所所示示。2.2.5 GAL2.2.5 GAL结构原理结构原理 PALPAL一般采用熔丝工艺生产,一般采用熔丝工艺生产, 一次可编程,修改很不方便一次可编程,修改很不方便。19851985年年,LatticeLattice在在PALPAL的基础上,的基础上,设计出通用阵列逻辑器件设计出通用阵列逻辑器件GALGAL(Generic Array LogicGeneric Array Logic),首),首次在次在PLDPLD上采用上采用电可擦除重复编电可擦除重复编

28、程程EEPROMEEPROM工艺,彻底解决熔丝型工艺,彻底解决熔丝型可编程器件的一次可编程问题。可编程器件的一次可编程问题。GAL“GAL“与阵列与阵列”可编程、可编程、“或阵或阵列列”固定,输出部分增加了输出固定,输出部分增加了输出逻辑宏单元逻辑宏单元OLMCOLMC(Output Logic Output Logic Macro CellMacro Cell)。)。图图2-182-18所示所示的是的是GAL16V8GAL16V8型号的器件。型号的器件。 2.2 简单简单PLD结构原理结构原理 2.2.5 GAL2.2.5 GAL结构原理结构原理 GALGAL的的OLMCOLMC单元单元设有

29、多种组态,可配置成设有多种组态,可配置成专用组合输出、专用输入、专用组合输出、专用输入、组合输出双向口、寄存器输出、寄存器输出双向口等组合输出双向口、寄存器输出、寄存器输出双向口等,为逻辑电路设计,为逻辑电路设计提供了极大的灵活性。由于提供了极大的灵活性。由于具有结构重构、输出端功能均可移到另一输具有结构重构、输出端功能均可移到另一输出引脚的功能出引脚的功能,在一定程度上,在一定程度上简化电路板的布局布线简化电路板的布局布线,使系统的,使系统的可靠性可靠性进一步提高。进一步提高。 GALGAL能直接替换多种能直接替换多种PALPAL器件器件,方便应用厂商升级现有产品。,方便应用厂商升级现有产品

30、。因此现因此现在在GALGAL器件仍被广泛应用。器件仍被广泛应用。 图图2-182-18中,中,GALGAL的输出逻辑宏单元的输出逻辑宏单元OLMCOLMC中含有中含有4 4个多路选择器个多路选择器,通过,通过不同的选择方式可以不同的选择方式可以产生多种输出结构,分别属于三种模式,一旦确定产生多种输出结构,分别属于三种模式,一旦确定了某种模式,所有的了某种模式,所有的OLMCOLMC都将工作在同一种模式下都将工作在同一种模式下。三种输出模式如下:三种输出模式如下: 2.2 简单简单PLD结构原理结构原理 (1 1)寄存器模式。)寄存器模式。该模式下该模式下OLMCOLMC有如下两种输出结构有如

31、下两种输出结构 寄存器输出结构寄存器输出结构(图(图2-192-19):):异或门输出经异或门输出经D D触发器至三态门触发器至三态门,触发器,触发器的时钟端的时钟端CLKCLK连公共连公共CLKCLK引脚、三态门的使能端引脚、三态门的使能端OEOE连公共连公共OEOE引脚,引脚, 信号信号反馈来自反馈来自触发器触发器。 寄存器模式组合输出双向口结构寄存器模式组合输出双向口结构(图(图2-202-20):输出):输出三态门受控,输出反三态门受控,输出反馈至本单元馈至本单元, ,组合输出无触发器组合输出无触发器。2.2.5 GAL2.2.5 GAL结构原理结构原理 2.2 简单简单PLD结构原理

32、结构原理 (2 2)复合模式。)复合模式。该模式下该模式下OLMCOLMC有有两种结构两种结构 组合输出双向口结构组合输出双向口结构(图(图2-212-21):):大致与寄存器模式组合输出双向大致与寄存器模式组合输出双向口结构相同,区别是引脚口结构相同,区别是引脚CLKCLK、OEOE在寄存器模式下为专用公共引脚在寄存器模式下为专用公共引脚,不可它,不可它用。用。 组合输出结构组合输出结构(图(图2-222-22):):无反馈,其他同组合输出双向口结构无反馈,其他同组合输出双向口结构。2.2.5 GAL2.2.5 GAL结构原理结构原理 2.2 简单简单PLD结构原理结构原理 (3 3)简单模

33、式。)简单模式。该模式下该模式下OLMCOLMC可定义三种输出结构可定义三种输出结构 反馈输入结构反馈输入结构(图(图2-232-23):输出):输出三态门被禁止三态门被禁止,该单元的,该单元的“与与- -或或”阵列无输出功能阵列无输出功能, , 但可作为但可作为相邻单元的信号反馈输入端相邻单元的信号反馈输入端,该单元反,该单元反馈输入端的信号来自另一个相邻单元馈输入端的信号来自另一个相邻单元 。 输出反馈结构输出反馈结构(图(图2-242-24):输出):输出三态门被恒定打开三态门被恒定打开,该单元的,该单元的“与与- -或或”阵列具有组合输出(包括输出和输出反馈)功能。该单元的阵列具有组合

34、输出(包括输出和输出反馈)功能。该单元的反馈输入端的信号亦可来自另一个相邻单元。反馈输入端的信号亦可来自另一个相邻单元。2.2.5 GAL2.2.5 GAL结构原理结构原理 2.2 简单简单PLD结构原理结构原理 输出结构输出结构(图(图2-252-25):异或):异或门门输出不经过触发器输出不经过触发器,直接通过使,直接通过使能的三态门输出。该单元的能的三态门输出。该单元的输出通输出通过相邻单元反馈过相邻单元反馈,此单元信号反馈此单元信号反馈无效无效。 OLMCOLMC的所有这些输出结构和工作模式的选择和确定的所有这些输出结构和工作模式的选择和确定(即对其中的多路选(即对其中的多路选择器的控

35、制)择器的控制) 均由计算机根据均由计算机根据GALGAL的逻辑设计文件的逻辑关系自动形成控制的逻辑设计文件的逻辑关系自动形成控制文件。文件。即在即在编译工具编译工具(如(如ABEL3.0ABEL3.0)的帮助下,计算机用)的帮助下,计算机用ABELABEL或其他或其他硬件语言硬件语言描述的文件描述的文件综合成可下载于综合成可下载于GALGAL的的JEDECJEDEC标准格式文件标准格式文件(即熔丝图文件),(即熔丝图文件),该该文件中包含了对文件中包含了对OLMCOLMC输出结构、工作模式以及图输出结构、工作模式以及图2-182-18左侧可编程与阵列各连左侧可编程与阵列各连线线“熔丝点熔丝点

36、”的选择信息。的选择信息。 2.2.5 GAL2.2.5 GAL结构原理结构原理 2.3 CPLD的结构原理的结构原理 如今,如今,PLDPLD以大规模、超大规模集成电路工艺制造的以大规模、超大规模集成电路工艺制造的CPLDCPLD、FPGAFPGA为主。多为主。多种简单种简单PLDPLD器件已在实用中被淘汰,大致原因如下:器件已在实用中被淘汰,大致原因如下: (1 1)阵列规模较小,资源不够用于设计数字系统。)阵列规模较小,资源不够用于设计数字系统。 (2 2)片内寄存器资源不足且结构限制多,难以构成丰富的时序电路。)片内寄存器资源不足且结构限制多,难以构成丰富的时序电路。 (3 3)编程不

37、便,需用专用的编程工具。)编程不便,需用专用的编程工具。 早期早期CPLDCPLD:是对是对GALGAL进行结构扩展和缺点改进而来,如进行结构扩展和缺点改进而来,如LatticeLattice的的ispLSI1032ispLSI1032器件等。器件等。 流行的流行的CPLDCPLD:AlteraAltera的的MAX7000MAX7000和和MAX3000AMAX3000A系列器件具有一定典型性。系列器件具有一定典型性。 MAX3000AMAX3000A包含包含3232512512个个宏单元宏单元OLMCOLMC,单个,单个OLMCOLMC结构结构如图如图2-262-26所示。所示。每每161

38、6个个OLMCOLMC组成一个逻辑阵列块组成一个逻辑阵列块LABLAB(Logic Array Block)Logic Array Block);每个;每个OLMCOLMC含有含有1 1个个可编程的与阵列和固定的或阵列,以及可编程的与阵列和固定的或阵列,以及1 1个可配置寄存器;且每个个可配置寄存器;且每个OLMCOLMC含含共享共享扩展乘积项扩展乘积项和和高速并联扩展乘积项高速并联扩展乘积项,它们可向每个宏单元提供多达,它们可向每个宏单元提供多达3232个乘积个乘积项项, ,以构成复杂的逻辑函数。另外,以构成复杂的逻辑函数。另外,MAX3000AMAX3000A结构中还有结构中还有可编程连线

39、阵列可编程连线阵列PIAPIA(Programmable Interconnect ArrayProgrammable Interconnect Array)、)、I/OI/O控制块控制块等。等。2.3 CPLD的结构原理的结构原理 2.3 CPLD的结构原理的结构原理 1. 1. 逻辑阵列块逻辑阵列块LAB LAB 一个一个LABLAB由由1616个宏单元个宏单元的阵列组成。的阵列组成。MAX3000AMAX3000A结构主要是由多个结构主要是由多个LABLAB组成的阵列组成的阵列以及它们之间的连线构成。多个以及它们之间的连线构成。多个LABLAB通过可通过可编程连线阵编程连线阵PIAPIA

40、和和全局总线全局总线连接在一起(图连接在一起(图2-272-27),全局总线从所有的专用输入、),全局总线从所有的专用输入、I/OI/O引脚和宏单元馈入信号。对于引脚和宏单元馈入信号。对于每个每个LABLAB有下有下列输入信号:列输入信号:(1) (1) 作为通用逻辑输入的作为通用逻辑输入的PIAPIA的的3636个信号个信号。(2) (2) 全局控制信号全局控制信号,用于寄存器辅助功能。,用于寄存器辅助功能。(3) (3) 从从I/OI/O引脚到寄存器的引脚到寄存器的直接输入通道直接输入通道。 2.3 CPLD的结构原理的结构原理 2. 2. 宏单元宏单元 宏单元由三个功能块组成:宏单元由三

41、个功能块组成:逻辑阵列、乘积项选择矩阵和可编程寄存器逻辑阵列、乘积项选择矩阵和可编程寄存器(图(图2-262-26)。)。 (1 1)逻辑阵列:)逻辑阵列:实现组合逻辑,可以给每个宏单元提供五个乘积项。实现组合逻辑,可以给每个宏单元提供五个乘积项。 (2 2)乘积项选择矩阵:)乘积项选择矩阵:分配乘积项作为到或门和异或门的主要逻辑输入,分配乘积项作为到或门和异或门的主要逻辑输入,以以实现组合逻辑函数实现组合逻辑函数;或者,把这些乘积项作为宏单元中;或者,把这些乘积项作为宏单元中寄存器的辅助输入寄存器的辅助输入:清零(清零(ClearClear)、置位()、置位(PresetPreset)、时钟

42、()、时钟(Clock)Clock)和时钟使能控制(和时钟使能控制(Clock Clock Enable)Enable)。 OLMCOLMC共享扩展乘积项:共享扩展乘积项:经非门后回馈到逻辑阵列中,以便实现更复经非门后回馈到逻辑阵列中,以便实现更复杂的逻辑函数。杂的逻辑函数。 OLMCOLMC并行扩展乘积项:并行扩展乘积项:从邻近宏单元借位而来。从邻近宏单元借位而来。 (3 3)可配置寄存器:)可配置寄存器:可单独被配置为可单独被配置为带有可编程时钟控制的带有可编程时钟控制的D D、T T、JKJK或或RSRS触发器触发器工作方式,亦可将寄存器旁路掉,实现组合逻辑工作方式。工作方式,亦可将寄存

43、器旁路掉,实现组合逻辑工作方式。 可编程寄存器的三种时钟输入工作模式:可编程寄存器的三种时钟输入工作模式:2.3 CPLD的结构原理的结构原理 全局时钟信号。全局时钟信号。该模式能该模式能实现最快的时钟到输出实现最快的时钟到输出(Clock to Output(Clock to Output)性能,这时全局时钟输入直接连向每一个寄存器的性能,这时全局时钟输入直接连向每一个寄存器的CLKCLK端。端。 全局时钟信号由高电平有效的时钟信号使能。全局时钟信号由高电平有效的时钟信号使能。这种模式提供每个触发这种模式提供每个触发器的时钟使能信号,由于仍使用全局时钟,器的时钟使能信号,由于仍使用全局时钟,

44、输出速度较快输出速度较快。 用乘积项实现一个阵列时钟。用乘积项实现一个阵列时钟。在这种模式下,触发器由来自隐埋在这种模式下,触发器由来自隐埋(Embedded)Embedded)的宏单元或的宏单元或I/OI/O引脚的信号进行钟控,引脚的信号进行钟控,其速度稍慢其速度稍慢。 可编程寄存器的清零、置位、复位:可编程寄存器的清零、置位、复位: 支持异步清零和异步置位功能。支持异步清零和异步置位功能。乘积项选择矩阵分配,并控制这些操乘积项选择矩阵分配,并控制这些操作。虽然乘积项驱动作。虽然乘积项驱动寄存器的置位和复位寄存器的置位和复位信号是信号是高电平有效高电平有效,但在逻辑阵列,但在逻辑阵列中中将信

45、号取反可得到低电平有效将信号取反可得到低电平有效的效果。的效果。 寄存器的复位。寄存器的复位。复位端可由低电平有效的复位端可由低电平有效的全局复位专用引脚全局复位专用引脚 GCLRnGCLRn信信号来驱动号来驱动。2. 2. 宏单元宏单元 2.3 CPLD的结构原理的结构原理 3. 3. 扩展乘积项扩展乘积项 大部分逻辑函数能够用在每个宏单元中的五个乘积项实现,但大部分逻辑函数能够用在每个宏单元中的五个乘积项实现,但更复杂的逻辑函数需要附加乘积项更复杂的逻辑函数需要附加乘积项。 利用其他宏单元利用其他宏单元, ,以提供所需的逻辑资源。以提供所需的逻辑资源。 利用其结构中具有的共享和并联扩展乘积

46、项,即扩展项。利用其结构中具有的共享和并联扩展乘积项,即扩展项。例如:例如:MAX3000AMAX3000A系列。系列。 这两种扩展项作为附加的乘积项这两种扩展项作为附加的乘积项直接送到直接送到LABLAB的任意一个宏单的任意一个宏单元元中。利用扩展项可保证在实现逻辑综合时,中。利用扩展项可保证在实现逻辑综合时,用尽可能少的逻辑资用尽可能少的逻辑资源,得到尽可能快的工作速度。源,得到尽可能快的工作速度。2.3 CPLD的结构原理的结构原理 4.4.可编程连线阵列可编程连线阵列PIA PIA 不同的不同的LABLAB通过在可编程连线阵列通过在可编程连线阵列PIAPIA上布线,可相互连接构成所需的

47、逻上布线,可相互连接构成所需的逻辑辑。这个全局总线是一种可编程的通道,可把器件中任何信号连接到其目的。这个全局总线是一种可编程的通道,可把器件中任何信号连接到其目的地。地。所有所有MAX3000AMAX3000A器件器件的专用输入、的专用输入、I/OI/O引脚和宏单元输出都连接到引脚和宏单元输出都连接到PIAPIA,而而PIAPIA可把这些信号送到整个器件内的各个地方可把这些信号送到整个器件内的各个地方,只有只有LABLAB需要的信号才布置需要的信号才布置从从PIAPIA到该到该LABLAB的连线。的连线。 图图2-282-28可看出:可看出:PIAPIA信信号布线到号布线到LABLAB,是通

48、过是通过EEPROMEEPROM单元控制与门的一单元控制与门的一个输入端,以选择驱动个输入端,以选择驱动LABLAB的的PIAPIA信号。信号。由于由于MAX3000AMAX3000A的的PIAPIA有固定的有固定的延时延时,因此使得器件,因此使得器件延时延时性能容易预测性能容易预测。 2.3 CPLD的结构原理的结构原理 5. I/O5. I/O控制块控制块 I/O I/O控制块:控制块:每个每个I/OI/O引脚允许单独引脚允许单独被配置为被配置为输入、输出和双向工作输入、输出和双向工作方式。方式。所有所有I/OI/O引脚都有一个引脚都有一个三态缓冲器三态缓冲器,控制控制端信号端信号来自一个

49、来自一个多路选择器多路选择器。 多路选择器可选用多路选择器可选用全局输出使能信全局输出使能信号之一进行控制号之一进行控制,或者,或者直接连接地(直接连接地(GND)GND)或电源(或电源(VCCVCC)。图图2-292-29所示为所示为EPM3032AEPM3032A器件的器件的I/OI/O控制块,共有控制块,共有6 6个全局输出使个全局输出使能信号。能信号。 6 6个使能信号可以来自:个使能信号可以来自: 2 2个输出使个输出使能信号能信号(OE1(OE1、OE2)OE2)、I/OI/O引脚的子集或引脚的子集或I/OI/O宏单元的子集,并且也可是这些信号宏单元的子集,并且也可是这些信号取反后

50、的信号取反后的信号。2.3 CPLD的结构原理的结构原理 5. I/O5. I/O控制块控制块 当三态缓冲器的控制端接地(当三态缓冲器的控制端接地(GND)GND)时,其时,其输出为高阻态输出为高阻态,这时,这时I/OI/O引脚引脚可作为专用输入引脚可作为专用输入引脚使用。当三态缓冲器控制端使用。当三态缓冲器控制端接电源接电源VCCVCC时,时,输出被一直输出被一直使能,作为普通输出引脚使能,作为普通输出引脚。 MAX3000AMAX3000A结构结构提供双提供双I/OI/O反馈反馈,其宏单元和,其宏单元和I/OI/O引脚的反馈是独立的。引脚的反馈是独立的。当当I/OI/O引脚被配置成输入引脚

51、时,与其相连的宏单元可以作为隐埋逻辑使用。引脚被配置成输入引脚时,与其相连的宏单元可以作为隐埋逻辑使用。 为降低为降低CPLDCPLD的功耗,减少其工作时的发热量,的功耗,减少其工作时的发热量,MAX3000AMAX3000A系列系列提供可编提供可编程的速度或功率优化程的速度或功率优化,使得在应用设计中,让,使得在应用设计中,让影响速度的关键部分影响速度的关键部分工作在高工作在高速或全功率状态,而其余部分则工作在低速或低功率状态速或全功率状态,而其余部分则工作在低速或低功率状态。允许用户配置一。允许用户配置一个或多个宏单元工作在个或多个宏单元工作在50%50%或更低的功率下,而仅需增加一个微小

52、的延时。或更低的功率下,而仅需增加一个微小的延时。对于对于I/OI/O工作电压,工作电压,MAX3000AMAX3000A器件为器件为3.3V3.3V工作电压,但工作电压,但I/OI/O口可通过一个限口可通过一个限流电阻与流电阻与5V TTL5V TTL系统直接相连。系统直接相连。 2.4 FPGA的结构原理的结构原理 2.4 FPGA的结构原理的结构原理 2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 Cyclone 3 系列器件是Altera公司的一款低功耗、高性价比的FPGA,它的结构和工作原理在FPGA器件中具有典型性,下面以此

53、类器件为例,介绍FPGA的结构与工作原理。Cyclone 3器件构成主要包含:逻辑阵列块LAB(Logic Array Block)、嵌入式存储器块、嵌入式硬件乘法器、I/O单元和嵌入式锁相环PLL(Phase-Locked Loop)等模块,在各个模块之间存在着丰富的互连线和时钟网络。 Cyclone 3器件的可编程资源:主要来自逻辑阵列块LAB,而每个LAB都由多个逻辑宏单元LE(Logic Element),即LC(Logic Cell)构成。LE是Cyclone3 FPGA器件的最基本的可编程单元,图2-32显示了Cyclone3 FPGA的LE的内部结构。观察图2-32可以发现,LE

54、主要由一个4输入的查找表LUT、进位链逻辑、寄存器链逻辑和一个可编程的寄存器构成。4输入的LUT可以完成所有的4输入1输出的组合逻辑功能。每一个LE的输出都可以连接到行、列、直连通路、进位链、寄存器链等布线资源。 2.4 FPGA的结构原理的结构原理 2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 2.4 FPGA的结构原理的结构原理 Cyclone3 Cyclone3 的的LELE可工作在可工作在两种操作模式:两种操作模式:普通模式普通模式和和算术模式算术模式。 在不同的在不同的LELE操作模式下,操作模式下,LELE的内部结构和的内部结构和LELE之间的互连有些差异

55、,图之间的互连有些差异,图2-2-3333和图和图2-342-34分别是分别是Cyclone3 Cyclone3 的的LELE在普通模式和算术模式下的结构和连接图。在普通模式和算术模式下的结构和连接图。 普通模式:普通模式:适合通用逻辑应用和组合逻辑的实现适合通用逻辑应用和组合逻辑的实现。该模式下,。该模式下,来自来自LABLAB局部互连的四个输入局部互连的四个输入将作为一个将作为一个4 4输入输入1 1输出的输出的LUTLUT的输入端口的输入端口。可以选择。可以选择进位输入(进位输入(cin)cin) 信号或者信号或者data3data3信号信号作为作为LUTLUT中的中的一个输入信号一个输

56、入信号。每个每个LELE都都可以通过可以通过LUTLUT链直接连接到下一个链直接连接到下一个LELE( (在同一个在同一个LABLAB中的中的) )。普通模式下,。普通模式下,支持支持寄存器打包与寄存器反馈。寄存器打包与寄存器反馈。 算术模式:算术模式:可以可以更好地实现加法器、计数器、累加器和比较器更好地实现加法器、计数器、累加器和比较器。此。此时单个时单个LELE内内有两个有两个3 3输入输入LUTLUT,可被配置成一位全加器和基本进位链结构,可被配置成一位全加器和基本进位链结构。其。其中中一个一个3 3输入输入LUTLUT用于计算用于计算,另一个另一个3 3输入输入LUTLUT用来生成进

57、位输出信号用来生成进位输出信号coutcout。在。在算术模式下,算术模式下,LELE支持寄存器打包与寄存器反馈。支持寄存器打包与寄存器反馈。2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 2.4 FPGA的结构原理的结构原理 2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 2.4 FPGA的结构原理的结构原理 2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 2.4 FPGA的结构原理的结构原理 逻辑阵列块逻辑阵列块LAB

58、LAB由一系列相邻的由一系列相邻的LELE构成构成的。每个的。每个Cyclone3 Cyclone3 的的LABLAB包含包含1616个个LELE,在,在LABLAB中、中、LABLAB之间存在着之间存在着行互连、列互连、直连通路互连、行互连、列互连、直连通路互连、LABLAB局部互连、局部互连、LELE进位链和进位链和LELE寄存器链寄存器链。 LABLAB局部互连:局部互连:可在同一个可在同一个LABLAB的的LELE之间传输信号,之间传输信号,连接行与列互连和连接行与列互连和在同一个在同一个LABLAB中的中的LELE。 LELE进位链:进位链:用来连接用来连接LELE的的进位输出进位输

59、出和下一个和下一个LE(LE(在同一个在同一个LABLAB中)的中)的进进位输入位输入。 LELE寄存器链:寄存器链:用来连接下一个用来连接下一个LE(LE(在同一个在同一个LABLAB中)的中)的寄存器输出寄存器输出和下和下一个一个LELE的的寄存器数据输入寄存器数据输入。 Cyclone3 LABCyclone3 LAB的结构如图的结构如图2-352-35所示。所示。 相邻的相邻的LABLAB、PLL(PLL(锁相环)、锁相环)、M9K RAMM9K RAM块嵌入式乘法器、块嵌入式乘法器、IOEIOE输出的直流输出的直流通路互联:通路互联:也可以也可以驱动一个驱动一个LABLAB的局部互连

60、(如图的局部互连(如图2-362-36所示)。所示)。2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 2.4 FPGA的结构原理的结构原理 2.4.2 2.4.2 Cyclone IIICyclone III系列器件的系列器件的结构原理结构原理 2.4 FPGA的结构原理的结构原理 2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 2.4 FPGA的结构原理的结构原理 2.4.2 Cyclone III2.4.2 Cyclone III系列器件的结构原理系列器件的结构原理 嵌入式存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论