
第8章 可编程逻辑器件 返回总且录
第8章 可编程逻辑器件 8.1 第8章 可编程逻辑器件 返回总目录

第8章可编程逻辑器件 本章内容 ·可编程逻辑器件概述 ·阵列型可编程逻辑器件 ·现场可编程门阵列FPGA) PLD的编程与测试 本章小结 8.2
第8章 可编程逻辑器件 8.2 •可编程逻辑器件概述 •阵列型可编程逻辑器件 •现场可编程门阵列(FPGA) •PLD的编程与测试 •本章小结 本章内容

人 第8章可编程逻辑器件 可编程逻辑器件概述 可编程逻辑器件发展概述 在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件 存储器用来存储随机信息,微处理器执行软件指令来完成范围广泛的任务,而逻辑器件 提供特定的功能,包括器件与器件间的接口、数据通信、,信号处理、数据显示、时序和 控制操作、以及系统运行所需要的所有其他功能。 逻辑器件又可分为两大类:固定逻辑器件和可编程逻辑器件(Programmable Logic Device©,PLD)。固定逻辑器件具有固定的逻辑功能,器件中的电路是永久性的,一且制 造完成,就无法政变,如74及其政进系列、GD4000系列、74HC系列等。而可编程逻辑器 件是由用户编程实现所需逻辑功能的数字集成电路,而且可在任何时间改变,从而完成 许多种不同的功能。 在20世纪80年代初,LD结构简单,主要用于集成多个分立逻辑器件,还可以用来 实现逻辑代数方程。进入20世纪90年代后,可编程逻辑器件的发展十分迅速,主要表现 为三个方面:一是规模越来越大;二是速度越来越高:三是电路结构越来越灵活,电路 资源更加丰富。目前已经有集成度在300万门以上、系统频率为100MHz以上的PLD供用户 使用,有些可编程逻辑器件中还集成了微处理器、数字信号处理单元和存储器等。这样 一个完整的数字系统甚至仅用一片可编程逻辑器件就可以实现,实现片上系统(Sy3t©m十 0 n Chip,S0C)设计。 83
第8章 可编程逻辑器件 8.3 可编程逻辑器件概述 一、可编程逻辑器件发展概述 在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件。 存储器用来存储随机信息,微处理器执行软件指令来完成范围广泛的任务,而逻辑器件 提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、时序和 控制操作、以及系统运行所需要的所有其他功能。 逻辑器件又可分为两大类:固定逻辑器件和可编程逻辑器件(Programmable Logic Device,PLD)。固定逻辑器件具有固定的逻辑功能,器件中的电路是永久性的,一旦制 造完成,就无法改变,如74及其改进系列、CD4000系列、74HC系列等。而可编程逻辑器 件是由用户编程实现所需逻辑功能的数字集成电路,而且可在任何时间改变,从而完成 许多种不同的功能。 在20世纪80年代初,PLD结构简单,主要用于集成多个分立逻辑器件,还可以用来 实现逻辑代数方程。进入20世纪90年代后,可编程逻辑器件的发展十分迅速,主要表现 为三个方面:一是规模越来越大;二是速度越来越高;三是电路结构越来越灵活,电路 资源更加丰富。目前已经有集成度在300万门以上、系统频率为100MHz以上的PLD供用户 使用,有些可编程逻辑器件中还集成了微处理器、数字信号处理单元和存储器等。这样, 一个完整的数字系统甚至仅用一片可编程逻辑器件就可以实现,实现片上系统(System On Chip,SOC)设计

第8章可编程逻辑器件 可编程逻辑器件概述 对于可编程逻辑器件,设计人员可利用强大的DA软件工具快速开发、仿真和测试 设计。然后将设计编程到器件中进行实际测试。设计中使用的PLD器件与正式生产时壳 使用的PLD完全相同。这样应用PLD进行电子系统设计也比采用定制固定逻辑器件时周期 短、效率高。 采用PLD的另一个优点是在设计阶段中可根据需要修改电路,直到对设计工作感到 满意为止。这是因为PLD基于可重写的存储器技术一一要改变设计,只需要简单地对器 件进行重新编程。一旦设计完成,可立即投入生产,只需要利用最终软件设计文件简单 地编程所需要数量的PLD就可以了。 二、 可编程逻辑器件的分类 目前常用的可编程逻辑器件都是从与一或阵列和门阵列两种基本结构发展起来的, 所以从结构上可将可编程逻辑器件分为两大类:PLD和FPGA。将基本结构为与-或阵列的 器件称为PLD,将基本结构为门阵列的器件称为FPGA。 可编程逻辑器件根据按其集成度分有低密度PLD(LDPLD)和高密度PLD (HDPLD)两类 低密度PLD是早期开发的器件,集成密度约为每片700个等效门以下,主要产品有 PR0M、现场可编程逻辑阵列(Filed Programmable Logic Array,FPLA)、可编程阵列逻 辑(Programmable Array Logic,PAL)、通用阵列逻辑(Generic Array Logic,GAL)。 这些器件结构简单,具有成本低、速度高、设计简便等优点,但其规模小,难以实现复 杂的逻辑。 8.4
第8章 可编程逻辑器件 8.4 可编程逻辑器件概述 对于可编程逻辑器件,设计人员可利用强大的EDA软件工具快速开发、仿真和测试 设计。然后将设计编程到器件中进行实际测试。设计中使用的PLD器件与正式生产时所 使用的PLD完全相同。这样应用PLD进行电子系统设计也比采用定制固定逻辑器件时周期 短、效率高。 采用PLD的另一个优点是在设计阶段中可根据需要修改电路,直到对设计工作感到 满意为止。这是因为PLD基于可重写的存储器技术——要改变设计,只需要简单地对器 件进行重新编程。一旦设计完成,可立即投入生产,只需要利用最终软件设计文件简单 地编程所需要数量的PLD就可以了。 二、可编程逻辑器件的分类 目前常用的可编程逻辑器件都是从与-或阵列和门阵列两种基本结构发展起来的, 所以从结构上可将可编程逻辑器件分为两大类:PLD和FPGA。将基本结构为与-或阵列的 器件称为PLD,将基本结构为门阵列的器件称为FPGA。 可编程逻辑器件根据按其集成度分有低密度PLD(LDPLD)和高密度PLD(HDPLD)两类。 低密度PLD是早期开发的器件,集成密度约为每片700个等效门以下,主要产品有 PROM、现场可编程逻辑阵列(Filed Programmable Logic Array,FPLA)、可编程阵列逻 辑(Programmable Array Logic,PAL)、通用阵列逻辑(Generic Array Logic,GAL)。 这些器件结构简单,具有成本低、速度高、设计简便等优点,但其规模小,难以实现复 杂的逻辑

第8章 可编程逻辑器件 可编程逻辑器件概述 高密度PLD是20世纪80年代中期发展起来的可编程逻辑器件,其产品主要包括可擦 除的可编程逻辑器件(Erasable Programmable Logic Device,EPLD)、复杂的可编程判 辑器件(Complex Programmable Logic Device,CPLD)和现成可编程门阵列(Field Programmable Gate Array,FPGA)等几种类型。其中EPLD和CPLD是在PAL和GAL基础上发 展起来的,其基本结构由与一或阵列组成,因此通常称为阵列型PLD,而FPGA具有门阵列 的结构形式,通常称为单元型PLD。 可编程逻辑器件均采用可编程元件来存储编程信息,常用的可编程器件有五类 (1)熔丝(fuse)或反熔丝(anti fuse)编程器件。 (2)UVEPROM编程器件,即紫外线擦除/电气编程器件。 (3)E2PROM编程器件,即电可擦写编程器件。 (4)f1 ash memory(快闪存储器)编程器件。 (5)SRAM编程器件。 对于第一至四类可编程逻辑器件,在编程后,编程信息就保持在器件上,故称为非 易失性器件。其中基于E2PROM和F1ash存储单元的PLD可编程1O0次以上。这类器件根据 编程特点还可以分为需要在编程器上编程的PLD和在系统可编程(In-System Programmable,ISP)的PLD。ISP器件不需要编程器,可以装配在印制电路板上,通过电 缆进行编程,因而调试和维修都很方便。 对于第五类可编程逻辑器件,存储在SRM中的配置数据在掉电后会丢失,在每次上 电后都要重新进行配置,因此将这类器件称为易失性器件。 8.5
第8章 可编程逻辑器件 8.5 可编程逻辑器件概述 高密度PLD是20世纪80年代中期发展起来的可编程逻辑器件,其产品主要包括可擦 除的可编程逻辑器件(Erasable Programmable Logic Device,EPLD)、复杂的可编程逻 辑器件 (Complex Programmable Logic Device,CPLD)和现成可编程门阵列(Field Programmable Gate Array,FPGA)等几种类型。其中EPLD和CPLD是在PAL和GAL基础上发 展起来的,其基本结构由与-或阵列组成,因此通常称为阵列型PLD,而FPGA具有门阵列 的结构形式,通常称为单元型PLD。 可编程逻辑器件均采用可编程元件来存储编程信息,常用的可编程器件有五类: (1) 熔丝(fuse)或反熔丝(anti_fuse)编程器件。 (2) UVEPROM编程器件,即紫外线擦除/电气编程器件。 (3) E2PROM编程器件,即电可擦写编程器件。 (4) flash memory(快闪存储器)编程器件。 (5) SRAM编程器件。 对于第一至四类可编程逻辑器件,在编程后,编程信息就保持在器件上,故称为非 易失性器件。其中基于E2PROM和Flash存储单元的PLD可编程100次以上。这类器件根据 编程特点还可以分为需要在编程器上编程的PLD和在系统可编程(In-System Programmable,ISP)的PLD。ISP器件不需要编程器,可以装配在印制电路板上,通过电 缆进行编程,因而调试和维修都很方便。 对于第五类可编程逻辑器件,存储在SRAM中的配置数据在掉电后会丢失,在每次上 电后都要重新进行配置,因此将这类器件称为易失性器件

第8章 可编程逻辑器件 可编程逻辑器件概述 由于熔丝或反熔丝编程器件只能编程一次,所以又将这类器件称为一次性编程器, 即0TP(One Time Programmable)器件。 除以上几种分类方法外,可编程逻辑器件还有其他的一些分类方法。如:按照制造 工艺,可分为双极型和M0S型。 在各类可编程逻辑器件中,目前广泛应用的是以CPLD和FPCA为代表的高密度可编程 逻辑器件,大多是SRAM或E2PROM编程工艺、CMOS制造工艺, 8.6
第8章 可编程逻辑器件 8.6 可编程逻辑器件概述 由于熔丝或反熔丝编程器件只能编程一次,所以又将这类器件称为一次性编程器件, 即OTP(One Time Programmable)器件。 除以上几种分类方法外,可编程逻辑器件还有其他的-些分类方法。如:按照制造 工艺,可分为双极型和MOS型。 在各类可编程逻辑器件中,目前广泛应用的是以CPLD和FPGA为代表的高密度可编程 逻辑器件,大多是SRAM或E2PROM编程工艺、CMOS制造工艺

第8章可编程逻辑器件 阵列型可编程逻辑器件 阵列型可编程逻辑器件内部主体部分采用与一或阵列结构的PLD,分为简单 4 PLD(SPLD)、EPLD南cPDE失类. 一、简单PLD的基本结构 1.PLD表示方法 由于PLD内部电路结构十分复杂,为便于画图,本章首先介绍目前国际、国内通行 的逻辑图形符号画法,图8.1是PLD连接的表示方法,其中图8.1@)表示固定连接,图 8.1(6)表示编程连接,图8.1(c)表示不连接。 米一 (a)固定连接(b)编程连接(c)不连接 图8.1PLD连接的表示方法 图8.2是图8.1的基本逻辑门的PLD表示法。其中8.2(a)是缓冲器的表示法。图8.2(6) 和图8.2(c)是三态输出反相器。图8.2(d)表示的是一个输入的与门,根据连接关系可 知,与门输出P=AC;当一个与门的所有输入变量都连接时,可以像图8,2(©)那样表示, 这时,P=ABC。图8.2()表示的是一个三输入的或门,或门输出P=A十B十C。 8.7
第8章 可编程逻辑器件 8.7 阵列型可编程逻辑器件 阵列型可编程逻辑器件内部主体部分采用与-或阵列结构的PLD,分为简单 PLD(SPLD)、EPLD和CPLD三大类。 一、简单PLD的基本结构 1. PLD表示方法 由于PLD内部电路结构十分复杂,为便于画图,本章首先介绍目前国际、国内通行 的逻辑图形符号画法。图8.1是PLD连接的表示方法,其中图8.1(a)表示固定连接,图 8.1(b)表示编程连接,图8.1(c)表示不连接。 (a) 固定连接 (b) 编程连接 (c) 不连接 图8.1 PLD连接的表示方法 (a) (b) (c) 图8.2是图8.1的基本逻辑门的PLD表示法。其中8.2(a)是缓冲器的表示法。图8.2(b) 和图8.2(c)是三态输出反相器。图8.2(d)表示的是一个三输入的与门,根据连接关系可 知,与门输出P=AC;当一个与门的所有输入变量都连接时,可以像图8.2(e)那样表示, 这时,P=ABC。图8.2(f)表示的是一个三输入的或门,或门输出P=A+B+C

第8章可编程逻辑器件 阵列型可编程逻辑器件 A之二A EN A区。一A。一 (a) ☒- (d) (e) (f) 图8.2基本逻辑门的PLD表示法 与一或阵列是用多个与门和或门构成的一种阵列结构。从理论上来讲,任何一个组 合逻辑电路都可以表示成与二或阵列的形式。如图8.3(@)所示的电路具有不可编程的与 阵列和可编程的或阵列。从图可以看出输出变量的逻辑表达式为 Y(A,B)=2m(0,1,3) Y,(A,B)=2m(0,2,3) 有时为了方便,可以将阵列中的逻辑门省略掉,简化成图8.3(6)的形式 8.8
第8章 可编程逻辑器件 8.8 阵列型可编程逻辑器件 与-或阵列是用多个与门和或门构成的一种阵列结构。从理论上来讲,任何一个组 合逻辑电路都可以表示成与-或阵列的形式。如图8.3(a)所示的电路具有不可编程的与 阵列和可编程的或阵列。从图可以看出输出变量的逻辑表达式为 有时为了方便,可以将阵列中的逻辑门省略掉,简化成图8.3(b)的形式。 图8.2 基本逻辑门的PLD表示法 (a) A A A A EN A A A EN (b) A B C P A B C P A B C P (c) (d) (e) (f ) 1 2 Y (A,B) m(0,1,3) Y (A,B) (0,2,3) m = =

第8章可编程逻辑器件 阵列型可编程逻辑器件 2.PLD的基本结构 简单PLD电路由输入电路、与阵列、或阵列和输出电路四部分组成,如图8,4所示 其中,与阵列和或阵列是PLD的主体部分,用来实现逻辑函数。与阵列的每一个输入端 (包括内部反馈输入)都有输入缓冲电路,从而使输入信号具有足够的驱动能力,并且产 生原变量和反变量两个互补信号。有些PLD的输入电路还含有锁存器,甚至是一些可以 组态的输入宏单元(micro cel1),可以实现对输入信号的预处理。PLD有多种输出方式, 可以由或阵列直接输出(组合方式),也可以通过寄存器输出(时序方式);输出可以是高 电平有效,也可以是低电平有效。无论采用哪种输出方式,输出信号一般最后都是经过 三态结构或集电极开路结构的输出缓冲器送到PL的输出引脚:输出信号还可以通过内 部通路反馈到与阵列的输入端。新开发LD都将输出电路做成了输出宏单元,使用者可 根据需要方便地通过编程选择各种输出方式。 不可编 图83与-或阵列 8.9
第8章 可编程逻辑器件 8.9 阵列型可编程逻辑器件 2. PLD的基本结构 简单PLD电路由输入电路、与阵列、或阵列和输出电路四部分组成,如图8.4所示。 其中,与阵列和或阵列是PLD的主体部分,用来实现逻辑函数。与阵列的每一个输入端 (包括内部反馈输入)都有输入缓冲电路,从而使输入信号具有足够的驱动能力,并且产 生原变量和反变量两个互补信号。有些PLD的输入电路还含有锁存器,甚至是一些可以 组态的输入宏单元(micro cell),可以实现对输入信号的预处理。PLD有多种输出方式, 可以由或阵列直接输出(组合方式),也可以通过寄存器输出(时序方式);输出可以是高 电平有效,也可以是低电平有效。无论采用哪种输出方式,输出信号一般最后都是经过 三态结构或集电极开路结构的输出缓冲器送到PLD的输出引脚;输出信号还可以通过内 部通路反馈到与阵列的输入端。新开发PLD都将输出电路做成了输出宏单元,使用者可 根据需要方便地通过编程选择各种输出方式。 图8.3 与-或阵列 或阵列 (可编程) 与阵列 (不可编程 ) Y1 Y2 (b) AA BB A B 或阵列 (可编程) 与阵列 (不可编程) Y1 Y2 (a)

第8章可编程逻辑器件 阵列型可编程逻辑器件 输入项 乘积项 图8.4简单PLD的基本结构 由于任何组合逻辑函数都可以表示成“与=或”表达式,从希用“与门一或门”这种 二级电路来实现;而任何时序电路又都是由组合电路和存储器件(触发器)构成的。因此 简单PLD的这种结构对实现数字电路具有普遍意义。 依据可编程的电路资源,简单PLD又可分成PROM、PLA、PAL和GAL四种,其结构特点 如表8-1所示。 表8-1四种简单PLD的结构特点 器件类型 与阵列 或阵列 输出电路 PROM 固定 可编程 固定 PLA 可编程 可编程 固定 PAL 可编程 固定 固定 8.10 GAL 可编程 固定 可编程
第8章 可编程逻辑器件 8.10 阵列型可编程逻辑器件 由于任何组合逻辑函数都可以表示成“与-或”表达式,从而用“与门-或门”这种 二级电路来实现;而任何时序电路又都是由组合电路和存储器件(触发器)构成的。因此 简单PLD的这种结构对实现数字电路具有普遍意义。 依据可编程的电路资源,简单PLD又可分成PROM、PLA、PAL和GAL四种,其结构特点 如表8-1所示。 表8-1 四种简单PLD的结构特点 图8.4 简单PLD的基本结构 输 入 输入 电路 输入项 与 阵 列 或 阵 列 输出 电路 乘积项 或项 … … 输 出 器件类型 与阵列 或阵列 输出电路 PROM 固定要 可编程 固定要 PLA 可编程 可编程 固定要 PAL 可编程 固定要 固定要 GAL 可编程 固定要 可编程