第三章FPGA结构_第1页
第三章FPGA结构_第2页
第三章FPGA结构_第3页
第三章FPGA结构_第4页
第三章FPGA结构_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA 技术实用教程第 3 章FPGA/CPLD 结构与应用3.1 概述组合电路基本门时序电路输入输入缓冲电路与阵列或阵列输出缓冲电路输出图3-1 基本PLD器件的原理结构图KX康芯科技通信与信息工程学院课件通信与信息工程学院课件 by keane370年代年代80年代年代90年代年代PROM 和和PLA 器件器件改进的改进的 PLA 器件器件GAL器件器件FPGA器件器件EPLD 器件器件CPLD器件器件内嵌复杂内嵌复杂功能模块功能模块的的SoPC3.1.1可编程逻辑器件的发展历程可编程逻辑器件的发展历程PROM (Programmable Read Only Memory)PLA (Pro

2、grammable Logic Array)PAL (Programmable Array Logic)GAL (Generic Array Logic)EPLDCPLDFPGAKX康芯科技3.1 概述3.1.2 可编程逻辑器件的分类可编程逻辑器件(PLD)简单 PLD复杂 PLDPROMPLAPALGALCPLDFPGA图3-2 PLD按集成度分类按集成度分类KX康芯科技PLD器件的分类按集成度 低密度 PROM,EPROM,EEPROM,PAL,PLA,GAL 只能完成较小规模的逻辑电路 高密度,已经有超过400万门的器件 EPLD ,CPLD,FPGA 可用于设计大规模的数字系统集成度高

3、,甚至可以做到SOC(System On a Chip)PLD器件的分类按结构特点 基于乘积项结构的器件阵列型 PROM,EEPROM,PAL,GAL,CPLD CPLD的代表芯片如:Altera的MAX系列 基于查找表结构的器件单元型 FPGAPLD器件的分类按编程工艺按编程工艺 熔丝熔丝(Fuse)或反熔丝或反熔丝(Antifuse)编程器件编程器件Actel的的FPGA器件。器件。 体积小,集成度高,速度高,易加密,抗干扰,耐高温。体积小,集成度高,速度高,易加密,抗干扰,耐高温。 只能一次编程,在设计初期阶段不灵活,只能一次编程,在设计初期阶段不灵活,称为称为OTP(One Time

4、Programmable)器件。器件。 SRAM ( Static RAM ) 大多数公司的大多数公司的FPGA器件。器件。 可反复编程,且编程速度快。实现系统功能的动态重构可反复编程,且编程速度快。实现系统功能的动态重构 每次上电需重新下载,实际应用时需外挂每次上电需重新下载,实际应用时需外挂EEPROM用于保用于保存程序存程序PLD器件的分类按编程工艺按编程工艺 电擦除可编程只读存储器电擦除可编程只读存储器EEPROM (Electrical EPROM) 大多数早期的大多数早期的CPLD器件器件 可反复编程可反复编程 不用每次上电重新下载,但相对速度慢,功耗较大不用每次上电重新下载,但相

5、对速度慢,功耗较大注:注:EPROM(Erasable Programmable ROM)型)型 称为:称为:可擦除可编程只读存储器可擦除可编程只读存储器。PLD器件的分类按编程工艺 flash大多数目前的大多数目前的CPLD器件器件可反复编程,编程电压低,寿命长。可反复编程,编程电压低,寿命长。不用每次上电重新下载,编程速度快,功耗低。不用每次上电重新下载,编程速度快,功耗低。逐步取代逐步取代EEPROM。3.2 简单可编程逻辑器件原理3.2.1 电路符号表示图3-3 常用逻辑门符号与现有国标符号的对照KX康芯科技3.2 简单可编程逻辑器件原理3.2.1 电路符号表示图3-4 PLD的互补缓

6、冲器的互补缓冲器图3-5 PLD的互补输入的互补输入图3-6 PLD中与阵列表示中与阵列表示康芯科技KX3.2 简单可编程逻辑器件原理3.2.1 电路符号表示图3-7 PLD中或阵列的表示中或阵列的表示图3-8 阵列线连接表示KX康芯科技通信与信息工程学院课件通信与信息工程学院课件 by keane15W13.2 简单可编程逻辑器件原理3.2.2 PROMA0A1An1W0与阵列(不可编程) W p 1或阵列(可编程)F0F1Fm1p = 2 n图3-10 PROM的逻辑阵列结构的逻辑阵列结构KX康芯科技3.2 简单可编程逻辑器件原理3.2.2 PROMA1A0或阵列(可编程)A1 A1 A0

7、 A0与阵列(固定)图3-11 PROM表达的表达的PLD阵列图阵列图F1F0KX康芯科技3.2 简单可编程逻辑器件原理3.2.2 PROMA1A0或阵列(可编程)A1 A1 A0 A0与阵列(固定)F1F0图3-12 用PROM完成半加器逻辑阵列KX康芯科技3.2 简单可编程逻辑器件原理3.2.3 PLAA1A0或阵列(可编程)A1 A1 A0 A0与阵列(可编程)F1F0图3-13 PLA逻辑阵列示意图逻辑阵列示意图KX康芯科技3.2 简单可编程逻辑器件原理3.2.3 PLAA2A1A0A2A1A0F2F1F0图3-14 PLA与与 PROM的比较的比较F2F1KXF0康芯科技3.2 简单

8、可编程逻辑器件原理3.2.4 PALA1A0A0A1F0F1F1F0图3-16 PAL的常用表示的常用表示图3-15 PAL结构结构KX康芯科技通信与信息工程学院课件通信与信息工程学院课件 by keane223.2.5 GAL2071 90 34 781 21 11 51 61 92 02 32 42 72 83 11381 51 8O L M CO L M C41 62 31 752 43 11 6O L M CO L M C63 23 91 574 04 71 4O L M CO L M C84 85 51 395 66 31 2O L M CO L M C1 1I / C L KIII

9、IIIIII / O EI / O / QI / O / QI / O / QI / O / QI / O / QI / O / QI / O / QI / O / QC L KO EGAL16V8的结构图的结构图输出逻辑宏单元逻辑宏单元输入/输出口输入口时钟信号输入三态控制可编程与阵列固定或阵列GAL16V8 GAL通信与信息工程学院课件通信与信息工程学院课件 by keane25“与与-或或”结构;结构;输出增加了输出逻辑宏单元(输出增加了输出逻辑宏单元(OLMC),可组态为:),可组态为:寄存器型和组合型输出寄存器型和组合型输出可编程输出极性可编程输出极性可编程三台控制可编程三台控制特点

10、:特点:1.可重复编程;可重复编程;2.100%可测试;可测试;3.既可以实现组既可以实现组合电路又可以实现时序电路。合电路又可以实现时序电路。 3.3 CPLD结构与工作原理结构与工作原理CPLD器件俯视图3.3 CPLD的结构与工作原理的结构与工作原理1逻辑阵列块逻辑阵列块(LAB)图3-27 MAX7128S的结构的结构KX康芯科技CPLD至少包含至少包含三种结构:三种结构: 可编程逻辑宏单可编程逻辑宏单元元 、可编程可编程I/O单元、单元、可编程内部连线可编程内部连线(1) 逻辑阵列块逻辑阵列块(LAB)内部的结构图内部的结构图这种这种PLD可分为三块结构:可分为三块结构:宏单元(宏单

11、元(Marocell),可编程连,可编程连线(线(PIA)和和I/O控制块。控制块。 PRNCLRNENA逻辑阵列全局清零共享逻辑扩展项清零时钟清零选择寄存器旁路并行扩展项通往 I/O模块通往 PIA乘积项选择矩阵来自 I/O引脚全局时钟QDEN来自来自 PIA的的 36个信号个信号快速输入选择快速输入选择23.3 CPLD的结构与工作原理的结构与工作原理2宏单元宏单元MAX7000系列中的宏单元系列中的宏单元逻辑阵列乘积项选择矩阵可编程寄存器三种时钟输入模式全局时钟信号全局时钟信号由高电平有效的时钟信号使能用乘积项实现一个阵列时钟KX康芯科技 扩展乘积项 每个宏单元中有一个“共享扩展项”,乘

12、积项经非门后回馈到逻辑阵列中;还存在一个“并联扩展项”,乘积项从邻近宏单元借位而来。 虽然大部分逻辑函数能够用在每个宏单元的5个乘积项实现,但更复杂的逻辑函数可以利用其他宏单元,以提供所需的逻辑资源。即利用共享和并联扩展乘积项,直接送到本LAB的任意一个宏单元中。3.3 CPLD的结构与工作原理的结构与工作原理3扩展乘积项扩展乘积项局部连线共享扩展项提供的“与非”乘积项宏单元的乘积项逻辑宏单元的乘积项逻辑图3-28 共享扩展乘积项结构KX康芯科技3.3 CPLD的结构与工作原理的结构与工作原理3扩展乘积项扩展乘积项图3-29 并联扩展项馈送方式KX康芯科技扩展成积项说明:共享扩展项:每个LAB

13、有16个共享扩展项,即每个宏单元提供一个单独的乘积项,可被LAB内任何一个或全部宏单元使用和共享。并联扩展项:宏单元中一些没被使用的乘积项,可分配到邻近的宏单元去。使用扩展项允许最多20个乘积项直接送到宏单元的“或”逻辑。其中5个是本身的,15个并联乘积项是从本LAB中邻近宏单元借用的。 3.3 CPLD的结构与工作原理的结构与工作原理4可编程连线阵列可编程连线阵列(PIA)图3-30 PIA信号布线到信号布线到LAB的方式的方式KX康芯科技不同的不同的LAB通过在可编程连线阵列通过在可编程连线阵列(PIA)上布线,上布线,以相互连接构成所需的逻辑。以相互连接构成所需的逻辑。 在各个逻辑宏单元

14、之间以及逻辑宏单元与在各个逻辑宏单元之间以及逻辑宏单元与I/O单单元之间提供信号连接的网络元之间提供信号连接的网络 CPLD中一般采用固定长度的线段来进行连接,中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得时间性能因此信号传输的延时是固定的,使得时间性能容易预测。容易预测。5.可编程的I/O单元图2-31-EPM7128S器件的I/O控制块 允许每个I/O引脚单独配置为:输入、输出和双向。三态门控接地:I/O引脚为专用输入引脚。三态门控接Vcc:I/O引脚为普通输出引脚。优化设计:1、减缓输出缓冲器的电压摆率(Slow Rate),以降低开关噪声。2、可编程的速度或功率优

15、化。注意MAX7000系列的工作电压:E、S系列:5.0VA、AE系列:3.3VB系列:2.5V3.4 FPGA结构与工作原理结构与工作原理 FPGA(现场可编程门阵列)采用另一种可编程逻辑形成方式,即可编程的查找表LUT(Look Up Table)结构。LUT是可编程的最小逻辑单元。 SRAM查找表逻辑结构是查找表逻辑结构是FPGA的原理结构的原理结构 从从ROM的工作原理,地址信号与输出数据的关的工作原理,地址信号与输出数据的关系,以及系,以及ASIC门阵列法中获得启示,构造出另外一门阵列法中获得启示,构造出另外一种可编程逻辑原理结构种可编程逻辑原理结构SRAM查找表的逻辑形查找表的逻辑

16、形成方法。成方法。 查找表的逻辑函数实现采用查找表的逻辑函数实现采用RAM数据查找方式,数据查找方式,并使用多个查找表构成一个查找表阵列,称为可编并使用多个查找表构成一个查找表阵列,称为可编程门阵列程门阵列PGA(Programmable Gate Array) FPGA结构与工作原理结构与工作原理3.4.1 查找表0000010100000101161RAM输入A输入B输入C输入D查找表输出多路选择器图2-33 FPGA查找表单元内部结构查找表LUT输入1输入2输入3输入4输出图2-32 FPGA查找表单元:q一个N输入查找表 LUT ( Look Up Table)可以实现N个输入变量的任

17、何逻辑功能,如 N输入“与”、 N输入“异或”等。q输入多于N个的函数、方程必须分开用几个查找表( LUT)实现。输出输出查黑查黑找盒找盒表子表子输入输入1输入输入2输入输入3输入输入4什么是查找表什么是查找表?基于查找表的结构模块基于查找表的结构模块 查找表的基本原理 N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多于输入的查找表采用多个逻辑块级连的方式查找表与门查找表与门查找表与门d3. . 0d7. . 4d11. . 0FPGA结构与工作原理结构与工作原理 查找表中的数:查找表中的数:就是就是SRAM阵列中所存逻辑函数的真值;阵列中所存逻辑函数的真值;查找表的输入:查找表

18、的输入:就是就是SRAM的地址输入。的地址输入。 用用LUT实现逻辑函数的过程实现逻辑函数的过程: 将逻辑函数的将逻辑函数的真值表真值表事先存储在事先存储在LUT的存储单元中的存储单元中,当,当逻辑函数的输入变量逻辑函数的输入变量取不同组态时取不同组态时,相应组态的二进制取值,相应组态的二进制取值构成构成SRAM的地址的地址,选中相应地址对应的,选中相应地址对应的SRAM单元单元,也就,也就得到了输入变量组合对应的逻辑值。得到了输入变量组合对应的逻辑值。3.4.2 FLEX10K系列器件系列器件FLEX 10K内部结构内部结构.IOCIOCIOCIOC.IOCIOC.IOCIOC.IOCIOC

19、.IOCIOC逻辑单元逻辑单元.IOCIOC.IOCIOCIOCIOC.快速通道互连快速通道互连逻辑阵列块逻辑阵列块 (LAB)IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOCFLEX 10K系列FPGA结构图.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOC.IOCIOCEABEAB嵌入式嵌入式阵列块阵列块 逻辑阵列是由一系列的逻辑阵列块(逻辑阵列是由一系列的逻辑阵列块(LAB)构成的。每个)构成的。每个LAB包含包含8个个LE(逻辑单元)和一些连接线,每个(逻辑单元)和一些连接线,每个LE含有一个含有一个4输入查找表(输入

20、查找表(LUT)、一个)、一个可编程触发器、进位链和级联链,可编程触发器、进位链和级联链,LE的结构能有效地实现各种逻辑。每个的结构能有效地实现各种逻辑。每个LAB是一个独立的结构,它具有共同的输入、互连与控制信号,是一个独立的结构,它具有共同的输入、互连与控制信号,LAB的这种的这种“粗粒度粗粒度”结构有利于布线和实现器件的高性能,每个结构有利于布线和实现器件的高性能,每个LAB代表大约相当于代表大约相当于96个可用逻辑门,多个个可用逻辑门,多个LAB组合起来也可以构成更大的逻辑块。组合起来也可以构成更大的逻辑块。(1) 逻辑阵列逻辑阵列LAB是由一系列的相邻是由一系列的相邻LE构成的构成的

21、图图3-38-FLEX10K LAB的的结构图结构图(2) 逻辑单元逻辑单元LE数据1Lab 控制 3LE 输出进位链级联链查找表 (LUT)清零和预置逻辑时钟选择进位输入级联输入进位输出级联输出Lab 控制 1CLRNDQ数据2数据3数据4Lab 控制 2Lab 控制 4逻辑单元逻辑单元LE(Logic Element) LE的组成: 一个4输入的LUT一个带同步使能的可编程触发器一个进位链一个级联链两个输出: 驱动局部互联 驱动快速通道互联提供LE之间高速的向前进位功能。用来实现高速的计数器、加法器和宽位比较器可实现多输入逻辑函数。相邻的LUT用来并行地完成部分逻辑功能,级联链把中间结果串

22、联起来。这两个输出可以单独控制,可实现在一个LE中,LUT驱动一个输出,寄存器驱动另一个输出,这种方式称为寄存器打包。逻辑单元逻辑单元LE图2-36 进位链连通LAB中的所有LE快速加法器, 比较器和计数器DFF进位输入(来自上一个逻辑单元)S1LE1查找表查找表LUT进位链进位链DFFS2LE2A1B1A2B2进位输出(到 LAB中的下一个逻辑单元)进位链进位链查找表查找表LUT逻辑单元逻辑单元LE图图2-37 两种不同的级联方式两种不同的级联方式“与与”级联链级联链“或或”级联链级联链LUTLUTIN 3.0IN 4.7LUTIN (4n-1).4(n-1)LUTLUTIN 3.0IN 4

23、.7LUTIN (4n-1).4(n-1)LE1LE2LEnLE1LE2LEn0.6 ns2.4 ns16位地址译码速度可达位地址译码速度可达 2.4 + 0.6x3=4.2 ns(3) 快速通道快速通道(FastTrack)(4) I/O单元与专用输入端口单元与专用输入端口(5) 嵌入式阵列块嵌入式阵列块(EAB) 嵌入式阵列是由一系列的EAB(嵌入式阵列块)构成的。当要实现有关存储器功能时,每个EAB可提供2048比特位,用来构成RAM、ROM、FIFO或双端口RAM。当EAB用来实现乘法器、微控制器、状态机以及DSP等复杂逻辑时,每个EAB可以相当于100到600个逻辑门。EAB可以单独

24、使用,也可以组合起来使用。 FLEX 10K器件内部信号的互连和器件管脚之间的信号互连是由快速通道(Fast Track)连线提供的,它是贯通器件长、宽的快速连续通道。图图3-40 用用EAB构成不同结构构成不同结构的的RAM和和ROM 输出时钟DRAM/ROM256x8512x41024x22048x1DDD写脉冲电路输 出 宽 度8 , 4 , 2 , 1 数 据 宽 度8 , 4 , 2 , 1地址宽度 8,9,10,11 写使能输 入时 钟EAB的大小灵活可变的大小灵活可变通过组合通过组合EAB 可以构成更大的模块可以构成更大的模块不需要额外的逻辑单元,不引入延迟,不需要额外的逻辑单元

25、,不引入延迟, EAB 可配置为深度达可配置为深度达2048的存储器的存储器EAB 的字长是可配置的256x8512x41024x22048x1256x8256x8512x4512x4256x16512x8特性特性EPF 10K 10EPF 10K 30EPF 10K 50EPF 10K 100EPF 10K 130EPF 10K 250可用的门可用的门7000310002200069000360001160006200015800082000211000149000310000逻辑单元(逻辑单元(LE)576172828804992665612160逻辑阵列块逻辑阵列块(LAB)722163

26、606248321520嵌入式阵列嵌入式阵列块(块(EAB)3610121620总的总的RAM位位61141228820480245763276840960用户用户I/O管脚管脚134246310406470470表3-2 FLEX 10K器件特性FPGA与CPLD的区别系统的比较,与大家共享: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 CPLD的连续式布线结

27、构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA

28、是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。 在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可 分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入 SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 CPLD保密性好,FPGA保密性差。 一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。 选择选择CPLD还是还是FP

29、GA? 1.由由CPLD的结构和原理可以知道,的结构和原理可以知道,CPLD分解组合逻辑的功能很强,一分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至个宏单元就可以分解十几个甚至2030多个组合逻辑输入。而多个组合逻辑输入。而FPGA的一个的一个 LUT只能处理只能处理4输入的组合逻辑,因此,输入的组合逻辑,因此,CPLD适合用于设计译码等复杂组合适合用于设计译码等复杂组合逻辑。逻辑。 2.FPGA的制造工艺确定了的制造工艺确定了FPGA芯片中包含的芯片中包含的LUT和触发器的数量非常多,和触发器的数量非常多,往往都是几千上万,往往都是几千上万,CPLD一般只能做到一般只能做到512个逻

30、辑单元,而且如果用芯片价个逻辑单元,而且如果用芯片价 格除以逻辑单元数量,格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于的平均逻辑单元成本大大低于PLD。 所以如果设所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是就是一个很好选择。一个很好选择。 3. 同时同时PLD拥有上电即可工作的特性,而大部分拥有上电即可工作的特性,而大部分FPGA需要一个加载过程,需要一个加载过程,所以,如果系统要可编程逻辑器件上电就要工作,那么就应该选择所以,如果系统要可编程逻辑器件上电就要工作,那么就应该选择PLDFPGA/CPLD生产商 ALTERAFPGA: FLEX系列:10K、10A、10KE,EPF10K30E APEX系列:20K、20KE EP20K200E ACEX系列:1K系列 EP1K30、EP1K100 STRA

温馨提示

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

最新文档

评论

0/150

提交评论