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

下载本文档

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

文档简介

1、,EDA 技术实用教程,第 3 章,FPGA/CPLD 结构与应用,3.1 概,述,组合电路,基本门,时序电路,输 入,输入 缓冲 电路,与 阵 列,或 阵 列,输出 缓冲 电路,输 出,图3-1 基本PLD器件的原理结构图,KX,康芯科技,通信与信息工程学院课件 by keane,3,PLD基本原理与结构,任何数字电路都是由基本门构成。 任何组合逻辑电路可由能提供互补输入的与门-或门二级电路实现。 任何时序电路都可由,组合逻辑电路+存储元件构成。,输入 缓冲,与 阵 列,或 阵 列,输出 缓冲,纯组合/寄存器,互补输入,3.1.1可编程逻辑器件的发展历程,PROM (Programmable

2、 Read Only Memory) PLA (Programmable Logic Array) PAL (Programmable Array Logic) GAL (Generic Array Logic),EPLD,CPLD,FPGA,KX,康芯科技,3.1 概,述,3.1.2 可编程逻辑器件的分类 可编程逻辑器件(PLD),简单 PLD,复杂 PLD,PROM,PLA,PAL,GAL,CPLD,FPGA,图3-2 PLD按集成度分类,KX,康芯科技,PLD器件的分类按集成度,低密度 PROM,EPROM,EEPROM,PAL,PLA,GAL 只能完成较小规模的逻辑电路 高密度,已经有

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

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

5、功耗低。 逐步取代EEPROM。,3.2 简单可编程逻辑器件原理 3.2.1 电路符号表示 图3-3 常用逻辑门符号与现有国标符号的对照,KX,康芯科技,3.2 简单可编程逻辑器件原理 3.2.1 电路符号表示,图3-4 PLD的互补缓冲器,图3-5 PLD的互补输入,图3-6 PLD中与阵列表示 康芯科技 KX,3.2 简单可编程逻辑器件原理 3.2.1 电路符号表示,图3-7 PLD中或阵列的表示,图3-8 阵列线连接表示,KX,康芯科技,PLD中的电路符号,通信与信息工程学院课件 by keane,15,互补输出表示,A B C D,未连接 可编程连接 固定连接,A C D,或阵列表示,

6、与阵列表示,W1,3.2 简单可编程逻辑器件原理 3.2.2 PROM,A0 A1 An1,W0 与阵列 (不可 编程) W p 1,或阵列 (可编程),F0 F1 Fm1,p = 2 n 图3-10 PROM的逻辑阵列结构,KX,康芯科技,3.2 简单可编程逻辑器件原理,3.2.2 PROM,A1,A0,或阵列,(可编程),A1 A1 A0 A0 与阵列(固定) 图3-11 PROM表达的PLD阵列图,F1,F0,KX,康芯科技,3.2 简单可编程逻辑器件原理,3.2.2 PROM,A1,A0,或阵列,(可编程),A1 A1 A0 A0 与阵列(固定),F1,F0,图3-12 用PROM完成

7、半加器逻辑阵列,KX,康芯科技,3.2 简单可编程逻辑器件原理,3.2.3 PLA,A1,A0,或阵列,(可编程) A1 A1 A0 A0,与阵列(可编程),F1,F0,图3-13 PLA逻辑阵列示意图,KX,康芯科技,3.2 简单可编程逻辑器件原理,3.2.3 PLA A2,A1,A0,A2,A1,A0,F2,F1,F0,图3-14 PLA与 PROM的比较,F2,F1 KX,F0 康芯科技,3.2 简单可编程逻辑器件原理 3.2.4 PAL,A1,A0,A0 A1,F0 F1,F1,F0,图3-16 PAL的常用表示,图3-15 PAL结构,KX,康芯科技,通信与信息工程学院课件 by k

8、eane,22,3.2.5 GAL,GAL16V8的结构图,输出逻辑宏单元,逻辑宏单元,输入/输出口,输入口,时钟信 号输入,三态控制,可编程与阵列,固定或阵列,GAL16V8,GAL,通信与信息工程学院课件 by keane,25,“与-或”结构; 输出增加了输出逻辑宏单元(OLMC),可组态为: 寄存器型和组合型输出 可编程输出极性 可编程三台控制,特点:1.可重复编程;2.100%可测试;3.既可以实现组合电路又可以实现时序电路。,3.3 CPLD结构与工作原理,CPLD器件俯视图,3.3 CPLD的结构与工作原理 1逻辑阵列块(LAB) 图3-27 MAX7128S的结构,KX,康芯科

9、技,CPLD至少包含三种结构: 可编程逻辑宏单元 、 可编程I/O单元、可编程内部连线,(1) 逻辑阵列块(LAB),内部的结构图,这种PLD可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。,PRN,CLRN,ENA,逻辑阵列,全局 清零,共享 逻辑 扩展项,清零,时钟,清零选择,寄存器旁路,并行 扩展项,通往 I/O 模块,通往 PIA,乘积项选择矩阵,来自 I/O引脚,全局 时钟,来自 PIA的 36个信号,快速输入选择,2,逻辑阵列块及宏单元结构,该系列有32个256个宏单元,每16个宏单元组成一个LAB。,编程接点,五个乘积项,3.3 CPLD的结构与工

10、作原理 2宏单元 MAX7000系列中的宏单元,逻辑阵列,乘积项选择矩阵,可编程寄存器,三种时钟输入模式 全局时钟信号 全局时钟信号由高电平有效的时钟信号使能 用乘积项实现一个阵列时钟,KX,康芯科技,3.扩展乘积项,为适应更复杂的逻辑函数的需要,利用其它宏单元的逻辑资源,扩展乘积项。有两种方式,即共享扩展乘积项和并联扩展项馈送方式。,扩展乘积项,每个宏单元中有一个“共享扩展项”,乘积项经非门后回馈到逻辑阵列中;还存在一个“并联扩展项”,乘积项从邻近宏单元借位而来。 虽然大部分逻辑函数能够用在每个宏单元的5个乘积项实现,但更复杂的逻辑函数可以利用其他宏单元,以提供所需的逻辑资源。即利用共享和并

11、联扩展乘积项,直接送到本LAB的任意一个宏单元中。,3.3 CPLD的结构与工作原理,3扩展乘积项,局部连线 共享扩展 项提供的 “与非” 乘积项,宏单元的 乘积项 逻辑 宏单元的 乘积项,逻辑 图3-28 共享扩展乘积项结构,KX,康芯科技,3.3 CPLD的结构与工作原理 3扩展乘积项 图3-29 并联扩展项馈送方式,KX,康芯科技,扩展成积项说明: 共享扩展项:每个LAB有16个共享扩展项,即每个宏单元提供一个单独的乘积项,可被LAB内任何一个或全部宏单元使用和共享。 并联扩展项:宏单元中一些没被使用的乘积项,可分配到邻近的宏单元去。使用扩展项允许最多20个乘积项直接送到宏单元的“或”逻

12、辑。其中5个是本身的,15个并联乘积项是从本LAB中邻近宏单元借用的。,3.3 CPLD的结构与工作原理 4可编程连线阵列(PIA),图3-30 PIA信号布线到LAB的方式,KX,康芯科技,不同的LAB通过在可编程连线阵列(PIA)上布线,以相互连接构成所需的逻辑。,在各个逻辑宏单元之间以及逻辑宏单元与I/O单元之间提供信号连接的网络 CPLD中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得时间性能容易预测。,5.可编程的I/O单元,图2-31-EPM7128S器件的I/O控制块,允许每个I/O引脚单独配置为: 输入、输出和双向。,三态门控接地:I/O引脚为专用输入引脚。

13、 三态门控接Vcc:I/O引脚为普通输出引脚。 优化设计: 1、减缓输出缓冲器的电压摆率(Slow Rate),以降低开关噪声。 2、可编程的速度或功率优化。 注意MAX7000系列的工作电压: E、S系列:5.0VA、AE系列:3.3V B系列:2.5V,3.4 FPGA结构与工作原理,FPGA(现场可编程门阵列)采用另一种可编程逻辑形成方式,即可编程的查找表LUT(Look Up Table)结构。 LUT是可编程的最小逻辑单元。,SRAM查找表逻辑结构是FPGA的原理结构,从ROM的工作原理,地址信号与输出数据的关系,以及ASIC门阵列法中获得启示,构造出另外一种可编程逻辑原理结构SRA

14、M查找表的逻辑形成方法。 查找表的逻辑函数实现采用RAM数据查找方式,并使用多个查找表构成一个查找表阵列,称为可编程门阵列PGA(Programmable Gate Array),FPGA结构与工作原理,3.4.1 查找表,图2-33 FPGA查找表单元内部结构,图2-32 FPGA查找表单元:,一个N输入查找表 LUT ( Look Up Table)可以实现N个输入变量的任何逻辑功能,如 N输入“与”、 N输入“异或”等。 输入多于N个的函数、方程必须分开用几个查找表( LUT)实现。,什么是查找表?,基于查找表的结构模块,查找表的基本原理,N个输入的逻辑函数需要2的N次方的容量的SRAM

15、来实现,一般多于输入的查找表采用多个逻辑块级连的方式,FPGA结构与工作原理,查找表中的数:就是SRAM阵列中所存逻辑函数的真值;查找表的输入:就是SRAM的地址输入。 用LUT实现逻辑函数的过程: 将逻辑函数的真值表事先存储在LUT的存储单元中,当逻辑函数的输入变量取不同组态时,相应组态的二进制取值构成SRAM的地址,选中相应地址对应的SRAM单元,也就得到了输入变量组合对应的逻辑值。,3.4.2 FLEX10K系列器件,FLEX 10K内部结构,. . .,IOC,IOC,. . .,IOC,IOC,逻辑单元,快速通道互连,逻辑阵列块 (LAB),. . .,IOC,IOC,. . .,I

16、OC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,FLEX 10K系列FPGA结构图,. . .,IOC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,. . .,IOC,IOC,EAB,EAB,嵌入式 阵列块,逻辑阵列是由一系列的逻辑阵列块(LAB)构成的。每个LAB包含8个LE(逻辑单元)和一些连接线,每个LE含有一个4输入查找表(LUT)、一个可编程触发器、进位链和级联链,LE的结构能有效地实现各种逻辑。每个LAB是一个独立的结构,它具有共

17、同的输入、互连与控制信号,LAB的这种“粗粒度”结构有利于布线和实现器件的高性能,每个LAB代表大约相当于96个可用逻辑门,多个LAB组合起来也可以构成更大的逻辑块。,(1) 逻辑阵列LAB是由一系列的相邻LE构成的,图3-38-FLEX10K LAB的结构图,(2) 逻辑单元LE,逻辑单元LE(Logic Element),LE的组成: 一个4输入的LUT 一个带同步使能的可编程触发器 一个进位链 一个级联链 两个输出: 驱动局部互联 驱动快速通道互联,提供LE之间高速的向前进位功能。用来实现高速的计数器、加法器和宽位比较器,可实现多输入逻辑函数。相邻的LUT用来并行地完成部分逻辑功能,级联

18、链把中间结果串联起来。,这两个输出可以单独控制,可实现在一个LE中,LUT驱动一个输出,寄存器驱动另一个输出,这种方式称为寄存器打包。,逻辑单元LE,图2-36 进位链连通LAB中的所有LE,快速加法器, 比较器和计数器,逻辑单元LE,图2-37 两种不同的级联方式,(3) 快速通道(FastTrack),(4) I/O单元与专用输入端口,(5) 嵌入式阵列块(EAB),嵌入式阵列是由一系列的EAB(嵌入式阵列块)构成的。当要实现有关存储器功能时,每个EAB可提供2048比特位,用来构成RAM、ROM、FIFO或双端口RAM。当EAB用来实现乘法器、微控制器、状态机以及DSP等复杂逻辑时,每个

19、EAB可以相当于100到600个逻辑门。EAB可以单独使用,也可以组合起来使用。,FLEX 10K器件内部信号的互连和器件管脚之间的信号互连是由快速通道(Fast Track)连线提供的,它是贯通器件长、宽的快速连续通道。,图3-40 用EAB构成不同结构的RAM和ROM,EAB的大小灵活可变 通过组合EAB 可以构成更大的模块 不需要额外的逻辑单元,不引入延迟, EAB 可配置为深度达2048的存储器,EAB 的字长是可配置的,表3-2 FLEX 10K器件特性,FPGA与CPLD的区别系统的比较,与大家共享: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和F

20、PGA结构上的差异,具有各自的特点: CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。,在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。 FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 CPLD比FPGA使用起来更

21、方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。,CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。 在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可 分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入 SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。,CPLD保密性好,FPGA保密性差。 一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。,选择CPLD还是FPGA? 1.由CPLD的结构和原理可以知道,CPLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至2

温馨提示

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

评论

0/150

提交评论