数字电路逻辑设计白静版第8章课件_第1页
数字电路逻辑设计白静版第8章课件_第2页
数字电路逻辑设计白静版第8章课件_第3页
数字电路逻辑设计白静版第8章课件_第4页
数字电路逻辑设计白静版第8章课件_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

第八章 可编程逻辑器件 第八章 可编程逻辑器件 8.1 可编程逻辑器件(PLD)概述 8.2 可编程逻辑阵列器件(PLA) 8.3 可编程阵列逻辑器件(PAL) 8.4 通用阵列逻辑器件(GAL) 8.5 复杂可编程逻辑器件(CPLD) 8.6 现场可编程门阵列器件(FPGA) 8.7 可编程逻辑器件的编程 本章小结 习题 第八章 可编程逻辑器件 8.1 可编程逻辑器件(PLD)概述 可编程逻辑器件(Programmable Logic Device,PLD)是在PROM基础 上发展起来的新型大规模数字逻辑集成器件,是现代设计数字系统的基 础之一。 前面几章讲到的中、小规模数字集成电路,如74系列及其改 进系列、74HC系列的各种门电路、触发器、计数器等,都属于通用器 件,它们所实现的逻辑功能是固定不变的,任何数字系统都可使用。 用这些通用的MSI、SSI可以组成任何复杂的数字系统,但系统的体积、 重量、功耗会随之增加,而且可靠性也大为降低。 PLD的研制成功有效 地解决了上述问题,它是一种半成品性的、集成度很高的通用型逻辑器 件,它的功能不再是单一的存储信息,而是可以通过用户对器件的编程 来实现包括组合逻辑、时序逻辑在内的数字电路系统的各种复杂逻辑功 能。 第八章 可编程逻辑器件 8.1.1 PLD的基本结构 我们知道,无论是组合电路还是时序电路,都可以用“与-或”表达式 或者真值表、状态转移表来表示,因此可以用与门和或门实现,PLD的 内部结构就是建立在此基础上的。 图8.1为基于与-或阵列结构的PLD基本结构,这类PLD由输入电路 、与阵列、或阵列、输出电路以及反馈电路组成。 如同ROM的阵列结 构,PLD结构主体是与阵列和或阵列。 为了适应各种输入情况,与阵列 的输入端(包括内部反馈信号的输入端)都设置有输入缓冲电路,主要作 用是使输入信号有足够的驱动能力,并产生一组互补的原变量和反变量 。 这些外部输入变量或内部反馈变量根据地址变量从与门阵列输入,产生 与项;这些与项输出又成为或门阵列的输入,最后,或门阵列的输出就 是与-或表达式形成的逻辑函数。 在输出电路中,有多个按一定规律排 列的寄存器以便输出时序电路,还有多路选择器、三态逻辑输出门以便 控制芯片的操作,它们的输入来自或阵列的输出。 第八章 可编程逻辑器件 图8.1 基于与-或阵列结构的PLD基本结构 第八章 可编程逻辑器件 PLD内部设置有内部反馈通路,可把输出信号反馈到输 入端。 这样,在增加了输入、输出缓冲电路、内部反馈电 路等之后,就可以构成不同类型、不同规模的PLD器件。 由于PLD内部电路庞大而规则、紧凑,用传统的绘制逻 辑图方法不方便,因而常采用一些简化的表示方法。 图8.2 为PLD输入缓冲电路的简化表示。 图8.3为PLD中一个多输 入与门和多输入或门的简化表示。 竖线为一组输入信号, 用它与横线相交叉的点的状态表示相应的输入信号是否接到 了该门的输入端上。 交叉点上一般用符号“”表示可编程的 连接点,可以通过编程将其断开;用“”表示是固定连接, 不能通过编程改变(不可编程);无任何标记,则表示是不连 接的。 第八章 可编程逻辑器件 图8.3 PLD的与阵列、或阵列简化表示 图8.2 PLD的输入电路简化表示 第八章 可编程逻辑器件 8.1.2 PLD的分类 早期的PLD属于低集成密度可编程逻辑器件,也是简单 的可编程逻辑器件(Simple PLD,SPLD)。 根据其可编程情 况,可分为可编程只读存储器PROM、可编程逻辑阵列 (Programmable Logic Array,PLA)、可编程阵列逻辑 (Programmable Array Logic,PAL)和通用阵列逻辑(Generic Array Logic,GAL)4种类型,它们在结构上主要都是一个“ 与阵列”和一个“或阵列”,不同之处如表8.1所示。 第八章 可编程逻辑器件 表8.1 SPLD的分类与结构比较 第八章 可编程逻辑器件 7.3节讨论的PROM、EPROM和EEPROM等可编程ROM 属于用户编程的逻辑器件,它们可实现组合逻辑函数,其与 阵列(地址译码器)是不可编程的,或阵列(存储矩阵)是可编 程的,ROM存储了组合逻辑的真值表,或者说,ROM按标 准的与-或表达式编程。 PROM由于其阵列规模大,速度低 ,因而它的基本用途是用作存储器,如软件固化、显示查寻 等。 可编程逻辑阵列PLA是按照最简与-或表达式编程的器 件,它的与阵列和或阵列都是可编程的。 利用率比PROM 高得多,使用灵活方便,但其集成度较低,又由于缺少好的 支持软件和编程工具,价格较贵,器件的资源利用率也不够 高,现在已经不常使用。 第八章 可编程逻辑器件 可编程阵列逻辑PAL是与阵列可编程而或阵列不可编程 的器件。 PAL具有多种输出结构形式,但输出结构固定。 应用不同的输出结构,需选用不同型号的PAL器件。 若存 储单元采用熔丝结构,就如同PROM一样,一旦编程后不能 再改写。 通用阵列逻辑GAL是在PAL基础上产生的新一代器件。 大部分GAL同PAL一样,有一个可编程的与阵列和一个不可 编程的或阵列,仅有GAL39V8的与、或阵列均可编程。 但 为了通用,GAL在或阵列之后接一个输出逻辑宏单元 (Output Logic Macrocell,OLMC),为逻辑设计提供了很大 的灵活性。 GAL器件采用CMOS工艺,是可多次编程的器件 。 第八章 可编程逻辑器件 上述几种可编程逻辑器件易于编程,对开发软件的要求 低,在20世纪80年代得到了广泛的应用,但随着技术的发展 ,其在集成密度和性能方面的局限性也暴露出来。 由于其 寄存器、I/O引脚、时钟资源的数目有限,没有内部互连, 使其设计的灵活性受到明显限制。 近代的PLD属于高集成密度可编程逻辑器件,有复杂的 可编程逻辑器件(Complex PLD,CPLD)和现场可编程门阵 列(Field Programmable Gate Array,FPGA)两类。 第八章 可编程逻辑器件 复杂的可编程逻辑器件CPLD的每一个逻辑单元类似一 个GAL,它利用连续式的连线结构把各个逻辑单元连接在 一起,构成一个器件。 这类PLD主要产品有Lattice公司的 ispLSI 系列,Altera公司的MAX5000/7000系列,AMD公司 的MACH系列等。 CPLD的主要特点是延迟与连接情况无关 ,工作速度的可预测性好。 但其集成密度低于FPGA。 第八章 可编程逻辑器件 现场可编程门阵列FPGA器件顾名思义是一种可以现场进行编程的 门阵列。 20世纪80年代由Xilinx公司首先提出并制作出世界上第一片 FPGA器件。 FPGA在结构上由逻辑功能块排列为阵列,并由可编程的 内部连线连接这些功能块来实现一定的逻辑功能。 这类PLD主要产品有 Xilinx公司的LCA系列,Actel公司的ACT系列和Ti公司的TPC系列等。 其特点是集成密度相当大,可集成各种逻辑功能的单元,结构灵活,可 满足各种应用场合的需要。 由于其内部结构与诸多因素如逻辑分割、 布局布线、逻辑单元结构、以及互连资源的种类、数量、分布等密切相 关,因此其速度的可预测性差,在设计前难以预测最终结果能否满足时 序上的要求。 另外,这类PLD的多数典型应用能达到的速度低于CPLD 。 下面就每一种器件的结构及应用作一些介绍。 更为详细的了解请 参考专门的PLD书籍。 第八章 可编程逻辑器件 8.2 可编程逻辑阵列器件(PLA) 8.2.1 PLA的基本结构 图8.4为3输入、3输出PLA的基本结构,它同ROM的结 构类似,是由与阵列和或阵列组成,因两个阵列都可编程, 所以用户编程控制的程度很高。 与ROM实现逻辑函数相比 ,PLA的与阵列不需要产生全部最小项,与阵列可进行简化 ,从而或阵列也得到简化。 第八章 可编程逻辑器件 图8.4 PLA基本结构 第八章 可编程逻辑器件 8.2.2 PLA的应用 用PLA实现组合逻辑函数时,首先需要把逻辑函数化为 最简与-或表达式,式中的每一个乘积项用与阵列中的一个 与门来实现。 从或阵列的输出得到所要求的逻辑函数。 【例8-1】 用PLA实现4位二进制码转换成循环码的代 码转换电路。 解:表8.2为4位二进制码B3B2B1B0转换成循环码G3G2 G1G0的真值表。 B3、B2、B1、B0为输入变量,G3、G2、G1 、G0为输出变量。 用PLA实现时,需4个输入端,4个输出 端。 将G3、G2、G1、G0 4个输出函数用卡诺图化简后,得 到如下最简的与-或表达式: 第八章 可编程逻辑器件 第八章 可编程逻辑器件 用PLA实现的编程连接图如图8.5所示。 第八章 可编程逻辑器件 图8.5 例8-1用PLA实现图 第八章 可编程逻辑器件 【例8-2】 试用PLA和JK触发器实现模4可逆计数器。 当X=0时,进行加法计数;当X=1时,进行减法计数。 解:由第五章式(5-16)可知,模4可逆计数器的激励方 程和输出方程为 用PLA实现时,外部输入信号X和内部反馈信号Q2和Q1 作为PLA的3个输入端,J2、K2、J1、K1和Z为5个输出端。 其PLA器件实现的编程连接图如图8.6所示。 第八章 可编程逻辑器件 图8.6 例8-2用PLA实现图 第八章 可编程逻辑器件 8.3 可编程阵列逻辑器件(PAL) 8.3.1 PAL的基本结构 PAL器件是20世纪70年代末期由MMI公司推出的一种低 密度、一次性可编程逻辑器件,它采用双极型工艺制作、熔 丝编程方式。 这是在可编程逻辑阵列PLA器件之后,第一 个具有典型实际意义的可编程逻辑器件。 随着MOS工艺的 广泛应用,后来又出现了以叠栅MOS管作为编程单元的 PAL器件。 第八章 可编程逻辑器件 PAL器件的基本结构是可编程的与阵列和固定的或阵列 ,如图8.7所示。 这是一个3输入、3输出的PAL阵列,在未 编程之前,与阵列的所有交叉点上均有熔丝接通,编程时将 有用的熔丝保留,将无用的熔丝熔断,即得到所需的电路。 图8.8是经过编程后的一个PAL器件的结构图。 第八章 可编程逻辑器件 图8.7 PAL基本结构 第八章 可编程逻辑器件 图8.8 编程后的PAL电路 第八章 可编程逻辑器件 需要注意的是,对于每一条与线,如果该线上的熔丝全 部保留,表示编程时没有利用,则这条与线始终为逻辑0电 平,且与输入值无关,图中简化表示为在相应的与门上画 “”(见图8.8),所有交叉点上的“”就不用画了;如果该线上 的熔丝全部烧断,则这条与线始终为逻辑1电平,也与输入 值无关。 它产生的逻辑函数为 第八章 可编程逻辑器件 为了扩展电路的功能,增加使用的灵活性,在许多型号 的PAL器件中还增加了各种形式的输出电路。 不同型号的 PAL器件有不同的输出结构和反馈结构,可适用于不同的组 合逻辑电路和时序逻辑电路的设计。 第八章 可编程逻辑器件 1. 专用输出结构 专用输出结构的输出端是一个与或门,图8.7所示的 PAL电路就属于这种输出结构。 有些PAL器件输出端还采 用与或非门或者互补输出结构。 图8.9给出了互补输出的电 路结构。 这种专用输出结构的PAL器件无输出反馈信号, 只能用来产生组合逻辑函数。 PAL10H8、PAL14H4等器件 的输出端是与或门结构,输出信号高电平有效;PAL10L8、 PAL14L4的输出端是与或非门结构,输出信号低电平有效; PAL16C1的输出端是互补输出的或门结构,同时输出一对 互补的信号。 第八章 可编程逻辑器件 图8.9 具有互补输出的专用输出结构 第八章 可编程逻辑器件 2. 可编程输入/输出(I/O)结构 PAL器件的可编程输入/输出电路结构图如图8.10所示。 这种输出结构的特点是具有一个可编程控制端的三态缓冲器 和输出反馈缓冲器。 三态缓冲器的控制端由与阵列最上面 一个与门所对应的乘积项(即第一乘积项,也称为专用乘积 项)给出,具有互补输出的反馈缓冲器可使三态输出反馈到 与阵列的输入端,因而可构成简单的触发器,使输出具有记 忆功能。 第八章 可编程逻辑器件 如果在编程时,使第一乘积项为0,则三态缓冲器被禁 止,呈高阻态,这时可以将I/O作为变量输入端使用,互补 输出的反馈缓冲器作为输入缓冲门使用;相反,如果在编程 时,该乘积项为1,则三态缓冲器被选通,I/O处于输出工作 状态,同时输出数据又通过反馈缓冲器反馈到与阵列。 PAL16L8、PAL20L10等器件属于这种输出结构。 第八章 可编程逻辑器件 图8.10 PAL的可编程输入/输出结构 第八章 可编程逻辑器件 3. 寄存器输出结构 PAL器件的寄存器输出结构如图8.11所示。 与可编程输 入/输出电路结构相比,它在或阵列的输出和输出三态缓冲 器之间增加了由D触发器组成的寄存器。 同时触发器的 端 又经互补输出的缓冲器反馈到与阵列的输入端。 在系统时 钟CP上升沿作用下,将或门的输出存入D触发器,在输出使 能控制信号OE有效时,Q端的信号经三态缓冲器反相后输 出,输出为低电平有效。 这样PAL具有记忆功能,且整个 器件只有一个共用时钟脉冲CP和一个输出使能信号OE,从 而可实现计数器、移位寄存器等同步时序逻辑电路。 PAL16R4、PAL16R6、PAL16R8等器件属于该结构。 第八章 可编程逻辑器件 图8.11 PAL的寄存器输出结构 第八章 可编程逻辑器件 除了以上3种输出结构外,PAL器件还有异或输出结构 ,其电路结构与寄存器输出结构类似,只是在或阵列的输出 端又增加了一级异或门。 另外还有能实现快速的加、减、 大于、小于等算术逻辑操作的运算选通反馈结构等。 第八章 可编程逻辑器件 8.3.2 PAL的应用 PAL器件可根据其型号的命名方式来确定它的结构。 例如,PAL16L8,其中“PAL”说明它是一个PAL器件;“16” 表示它的与阵列最多可以有16个输入;“L”表示输出信号低 电平有效;“8”表示该器件最多可有8个输出。 第八章 可编程逻辑器件 图8.12为PAL16L8器件完整的内部逻辑图。 从图中可知,PAL16L8 器件为可编程输入/输出结构的PAL器件。 它有20个引脚,10号和20号 引脚在图中没有给出,它们分别是“地”和+5 V电源的引脚;包括反馈输 入在内最多可有16个输入端;而输出端最多为8个,输出为低电平有效 ;每个输出中有8个乘积项,共有88=64个乘积项,其中每个输出中第 一个乘积项为专用乘积项,用于控制三态输出缓冲器的输出;19以及 11号引脚只能作为输入引脚;12和19号引脚只能用作输出引脚;1318 号引脚由它们的输出三态缓冲器的状态决定其工作情况,当三态缓冲器 处于高阻态时,对应的引脚只能作为输入引脚;当三态缓冲器正常工作 时,对应的引脚用作输出引脚,并将输出信号反馈到与阵列,作为与阵 列的一个输入信号。 第八章 可编程逻辑器件 图8.12 PAL16L8逻辑图及例8-3连接图 第八章 可编程逻辑器件 【例8-3】 试用PAL器件实现一个带使能控制输出的2 线-4线译码器。 解:2线-4线译码器真值表如表8.3所示。 由表可知,当 输出使能控制端 为0时,2线-4线译码器的输出表达式为 (8-1) 第八章 可编程逻辑器件 因为输出表达式为带非号的组合逻辑函数,并且要求有 使能控制输出,故选用输出低电平有效的、带输出三态控制 的PAL16L8器件实现,连接示意图在图8.12标出。 在目前常见的PAL器件中,输入变量最多可达到20个, 与阵列输出的乘积项最多的有80个,或阵列的输出端最多有 10个,每个或门的输入端最多的达到16个。 第八章 可编程逻辑器件 PAL和SSI、MSI通用标准器件相比有许多优点: 提 高了功能密度,节省了空间。 通常一片PAL可以代替 412 片 SSI或 24 片MSI。 PAL只有20多种型号,但可以代替 90%的通用SSI、MSI器件,因而进行系统设计时,可以大 大减少器件的种类。 提高了设计的灵活性,且编程和使 用都比较方便。 PAL的主要缺点是由于它采用了双极型熔丝工艺 (PROM结构),只能一次性编程,因而使用者仍要承担一定 的风险。 另外PAL器件输出电路结构的类型繁多,因此也 给设计和使用带来一些不便。 第八章 可编程逻辑器件 8.4 通用阵列逻辑器件(GAL) GAL是Lattice公司于1985年首先推出的另一种新型低密度可编程逻 辑器件。 它采用了电擦除、电可编程的EECMOS工艺制作,可以用电 信号擦除并反复编程上百次。 为了通用,GAL器件的输出端设置了可 编程的输出逻辑宏单元OLMC,通过编程可以将OLMC设置成不同的输 出方式。 这样,同一型号的GAL器件就可以实现PAL器件所有的各种输 出电路工作模式,即取代了大部分PAL器件,因此称为通用可编程逻辑 器件。 GAL器件分为两大类:一类为普通型GAL,其与或阵列结构与PAL 相似,如GAL16V8、ispGAL16Z8、GAL20V8都属于这一类;另一类为 新型GAL,其与或阵列均可编程,与PLA结构相似,主要有GAL39V8 。 第八章 可编程逻辑器件 8.4.1 GAL的基本结构 图8.13是常见的GAL16V8的电路结构图。 它在结构上 继承了PAL器件与阵列可编程和或阵列固定的基本结构,在 输出电路中采用了OLMC。 OLMC结构可通过编程,确定 可编程器件各单元的输出和反馈结构,既可满足组合逻辑设 计,又可满足时序逻辑设计,大大增加了数字系统设计的灵 活性。 第八章 可编程逻辑器件 图8.13 GAL16V8逻辑图 第八章 可编程逻辑器件 由图8.13可知,GAL16V8器件有8个输入缓冲器,8个 三态输出缓冲器,8个输出反馈/输入缓冲器,1个系统时钟 CP输入缓冲器和1个三态输出使能OE输入缓冲器;与阵列 由88个与门构成,共形成64个乘积项,每个乘积项有32个 输入,对应图中32条列线;含8个输出逻辑宏单元OLMC(或 阵列包含在OLMC中),其中前3个(引脚17、18、19)和后3个 (引脚12、13、14)OLMC输出端都有反馈线连接到相邻单元 的OLMC。 第八章 可编程逻辑器件 GAL16V8器件有8个引脚(引脚29)固定作为输入端,另 外8个输入/输出引出端也可配置为输入模式。 因此, GAL16V8器件最多可有16个输入端,输出端最多为8个。 这也是器件型号中16和8两个数字的含义。 时钟输入是1脚 ,使能控制输入是11脚。 第八章 可编程逻辑器件 8.4.2 GAL的输出逻辑宏单元(OLMC) 1. OLMC的结构和结构控制字 OLMC内部结构如图8.14所示。 每个OLMC包含或阵列 中的一个或门、一个可编程异或门、一个D触发器和四个可 编程数据选择器(多路开关)及一些门电路组成的控制电路。 图中AC0、AC1(n)、XOR(n)都是结构控制字中的一位数 据,其中n(n=1219)为输出宏单元的引脚号。 AC0为各 OLMC共用,AC1(n)为第n个OLMC专用。 设计者通过对结 构控制字编程,便可设定OLMC的工作模式。 GAL16V8结 构控制字的组成如图8.15所示。 第八章 可编程逻辑器件 图8.14 GAL器件输出逻辑宏单元(OLMC) 第八章 可编程逻辑器件 图8.15 GAL16V8结构控制字的组成 第八章 可编程逻辑器件 (1) 图8.14中的或门G1有 8 个输入端,和来自与阵列的8 个乘积项相对应。 其中7个直接相连,第一个乘积项(图中 最上边的一项)通过可编程极性多路选择器(PTMUX)后同或 门相连,或门输出为有关乘积项之和。 在或门的输出端能 产生不超过8项的与-或逻辑函数。 (2) 异或门G2的作用是选择输出信号的极性。 当XOR(n) 为1时,异或门起反相器作用,否则起同相器作用。 (3) D触发器(寄存器)对异或门的输出状态起记忆作用, 使GAL器件适用于时序逻辑电路。 第八章 可编程逻辑器件 (4) 4个多路选择器(MUX)在结构控制字段作用下设定输 出逻辑宏单元的组态,即输出电路结构的形式受4个多路选 择器控制。 PTMUX是可编程乘积项多路选择器(是一个2选1数据选 择器),用于控制第一乘积项。 即在 控制下,选 择第一乘积项或地(0)送至或门输入端。 TSMUX是可编程三态多路选择器(是一个4选1数据选择 器),用于选择三态输出缓冲器的使能信号。 即在AC1(n)和 AC1控制下从VCC、地、OE或第一乘积项中选择一个作为 输出缓冲器的使能信号。 第八章 可编程逻辑器件 OMUX是可编程输出类型多路选择器(是一个2选1数据 选择器),用于选择输出信号是经异或门直接输出还是经D 触发器输出。 即在 控制下选择组合型(异或门输 出)或寄存型(经D触发器存储后输出)逻辑运算结果送到输出 缓冲器。 第八章 可编程逻辑器件 FMUX是可编程反馈多路选择器,它是一个8选1数据选择器,但输 入信号只有4个。 它的作用是选择不同的信号反馈给与阵列的输入端。 即在AC1(n)、AC0控制下选择D触发器的 、本级OLMC输出、邻级 OLMC的输出或地电平作为反馈信号送回与阵列作为输入信号。 这里的 (m)是相邻OLMC的编号。 由图8.13所示GAL16V8的逻辑图可知, OLMC(16)、OLMC(17)、OLMC(18)的相邻OLMC分别为OLMC(17)、 OLMC(18)、OLMC(19);OLMC(13)、 OLMC(14)、OLMC(15)的相邻 OLMC分别为OLMC(12)、OLMC(13)、OLMC(14)。 OLMC(12)和 OLMC(19)的邻级输入分别由引脚11和引脚1的输入代替,同时这两个单 元的AC0和AC1(m)又被 和SYN所取代。 SYN是结构控制字中的一位 。 第八章 可编程逻辑器件 控制字中,SYN和AC0是一个GAL的所有OLMC共有的 。 AC1(n)和XOR(n)是每一个OLMC独立的可编程位。 同步位SYN 决定GAL器件是具有寄存器型(时序型)输出 (SYN=0),还是纯粹组合型输出(SYN=1)。 在OLMC(12)和 OLMC(19)中,SYN还替代AC1(n), 替代AC0作为 FMUX的选择输入,以维护与PAL器件的兼容性。 AC0、AC1(n)是结构控制位。 8 个OLMC公用1位AC0。 AC1(n)共8位,每个OLMC(n)有1位,(n为1219)。 AC0、 AC1(n)两者配合控制各MUX的工作。 第八章 可编程逻辑器件 XOR(n)是极性控制位,共8位,每个OLMC(n)有 1 位, 它通过异或门来控制输出极性。 当XOR(n)= 0时,输出低有 效;当XOR(n)=1 时,输出高有效。 PT(n)是乘积项禁止位,共64位,和与阵列中64个乘积 项(PT0PT63)相对应,用以禁止(屏蔽)某些不用的乘积项。 第八章 可编程逻辑器件 2. OLMC的配置 在SYN、AC0、AC1(n)组合控制下,OLMC(n)可组态配 置成5种工作模式,即专用输入、专用组合输出、反馈组合 输出、时序电路中的组合输出和寄存器型输出模式,表8.4 列出了各种模式下对控制位的配置和选择。 图8.16(a)(e)分 别表示不同配置模式下OLMC 5种工作模式的简化电路图。 第八章 可编程逻辑器件 第八章 可编程逻辑器件 图8.16 OLMC 5种工作模式下的简化电路图 第八章 可编程逻辑器件 GAL器件由于采用了OLMC,所以使用更加灵活,只要 写入不同的结构控制字,就可以得到不同类型的输出电路结 构。 这些电路结构完全可以取代PAL器件的各种输出电路 结构。 上述可编程结构控制字SYN、AC0、AC1(n)和XOR(n)的 具体设置以及各OLMC的具体配置是由PLD开发软件根据具 体设计要求自动完成的,无需人工设置。 第八章 可编程逻辑器件 3. GAL的行地址结构 GAL的逻辑功能、工作模式都是靠编程来实现的。 编 程时写入的数据按行安排,GAL16V8 共分64行,供用户使 用的有36行。 图8.17表示GAL16V8 编程单元的地址分配和 功能划分情况,因为它并不是实际的空间布局图,所以称为 行地址映射图。 第八章 可编程逻辑器件 图8.17 GAL16V8行地址分配 第八章 可编程逻辑器件 第031行对应与阵列的编程单元,编程后可产生063 共 64 个乘积项。 用户定义的逻辑功能在这里实现。 第32行是电子标签(ES),供用户存放各种备查的信息, 如器件的编号、电路的名称、编程日期、编程次数等。 电 子标签不受下述加密位的控制,随时都可访问读出。 第3359行是生产厂家保留的地址空间,用户不能利用 。 第60行是一个82位的结构控制字,用于设定8个OLMC 的工作模式和64个乘积项的禁止。 第八章 可编程逻辑器件 第61行是一位加密单元。 这一位被编程以后,与阵列 中的编程数据不能被更改或读出,从而使设计结果得以保护 。 只有在与阵列被整体擦除时,才能将加密单元同时擦除 。 但是电子标签的内容不受加密单元的影响,在加密单元 被编程后电子标签的内容仍可读出。 第62行是一位保留位,为厂商保留,用户不能利用。 第63行是一个整体擦除位,编程系统对这一位进行擦除 将导致整个芯片中所有的编程单元都被擦掉,器件返回到编 程前的初始状态。 第八章 可编程逻辑器件 对GAL编程时是逐行进行的,被编程的数据从SDIN以串 行方式送入64位移位寄存器,寄存器装满一次,就对GAL 阵列写一行。 校验时,指定行的已编程数据并行装入该移 位寄存器,然后从SDOUT以串行方式送出。 第八章 可编程逻辑器件 8.4.3 GAL的应用 GAL的逻辑设计和开发过程与PAL基本类似。 不同之 处在于需设置结构控制字的状态和配置OLMC的工作模式。 【例8-4】 试用GAL16V8器件实现1位全加器。 解:一位全加器的逻辑函数表达式为 由此可知,该组合逻辑电路有3个信号输入,有2个输出 ,且高电平有效,故需用2个OLMC,根据表8.4和图8.16, 相应的GAL开发软件具体设置的结构控制字和各OLMC的具 体配置如表8.5所示。 第八章 可编程逻辑器件 第八章 可编程逻辑器件 【例8-5】 试用GAL16V8器件实现一个带使能控制输 出的2线-4线译码器。 解:由式(8-1)可知,该组合逻辑电路有4个输出端,且 低电平有效,故需用4个OLMC,并有一个使能控制端,根 据表8.4和图8.16,相应的一种配置如表8.6所示。 第八章 可编程逻辑器件 第八章 可编程逻辑器件 综上所述,GAL器件在性能上主要有以下特点: (1) 采用电擦除工艺,可重复编程,逻辑功能可重新配置。 编 程改写方便、快速,整个芯片擦除改写只需数秒钟,一般 GAL的改写次数都在100次以上,将设计风险降到最低。 (2) 采用高性能的EECMOS工艺,保证了GAL的高速度 和低功耗。 存取速度为1240 ns, 功耗仅为双极性PAL器件 的1/2或1/4(90 mA或 45 mA),编程数据可保存20年以上。 (3) 采用可编程的输出逻辑宏单元OLMC,使GAL器件 结构灵活,通用性强,可配置成多种工作模式。 GAL16V8 可以仿真或代替20脚的PAL器件约21种。 第八章 可编程逻辑器件 (4) 具有加密功能,可防止他人非法抄袭设计电路。 (5) 具有电子标签,便于文档管理,提高了生产效率。 (6) 具有寄存器预置和加电复位功能,器件可测性100% 。 GAL器件利用OLMC改进了PAL的输出电路,使得GAL 比PAL更加灵活,在简单PLD中是应用最广泛的一种。 GAL的缺点同PAL一样,属于低密度PLD,逻辑阵列规模较 小,每片相当于几十个等效门电路,只能代替24片MSI器 件,远达不到LSI和VLSI专用集成电路的要求。 功能相对简 单,不适用于较复杂的逻辑电路的设计。 这些不足之处, 都在高密度PLD中得到了较好的解决。 第八章 可编程逻辑器件 8.5 复杂可编程逻辑器件(CPLD) 8.5.1 CPLD的基本结构 随着集成工艺的发展,当前PLD的集成规模越来越大, 已从简单的低密度可编程器件(PAL和GAL器件)发展到万门 以上的复杂可编程(CPLD)系列。 多数的CPLD采用EEPROM编程工艺制作,也有采用 CMOS EPROM、Flash Memory和SRAM等编程技术的, 这样 构成的CPLD具有高密度、高速度和低功耗的特点,因此, 采用CPLD设计的数字系统体积小、功耗低、可靠性高,具 有更大的灵活性。 第八章 可编程逻辑器件 目前生产CPLD的厂家有很多,各种型号的CPLD在结构上也都有各 自的特点和长处,但概括起来,它们都是由三大部分组成的,即若干个 可编程逻辑块(构成CPLD的主体部分)、输入/输出(I/O)块和可编程内部 互连通道(用于逻辑块之间以及逻辑块与输入/输出块之间的连接)。 Lattice公司在20世纪90年代初率先推出了一种新型的可编程逻辑器 件在系统可编程(In System Programmability,ISP)逻辑器件ispLSI系 列,所谓“在系统编程”ISP是指采用编程电缆或自动测试设备ATE在用 户电路板PCB上对器件直接进行编程,而器件无需从电路板上取下来。 支持ISP技术的可编程逻辑器件称为在系统可编程逻辑器件(ispPLD)。 ispPLD不需要使用编程器,只需要通过计算机接口和编程电缆,直接在 目标系统或电路板上进行编程。 ispPLD可以先装配,后编程。 因此ISP 技术有利于提高系统的可靠性,便于系统板的调试和维修。 第八章 可编程逻辑器件 Lattice公司的ispLSI系列器件具有CPLD典型的结构和特 性,是目前功能较强、性能优良、方便易用的CPLD器件之 一。 而且由于ispLSI系列器件具有在系统可编程能力,使其 得到了广泛的应用。 下面我们以Lattice公司的在系统可编程器件ispLSI1032 为例,来了解一下CPLD的具体结构。 图8.18为ispLSI1032 的电路结构图,它主要由32个通用逻辑块(Generic Logic Block, GLB)、64个输入/输出单元(Input/Output Cell,IOC)、 全局布线区(Global Routing Pool, GRP)、输出布线区(Output Routing Pool,ORP)和时钟分配网络(Clock Distribution Network,CDN)组成。 第八章 可编程逻辑器件 全局布线区GRP是ispLSI器件中的一种专用的内部互连 结构,它提供高速的内部连线。 GRP位于器件的中心,可 连接任何一个I/O单元到任何一个通用逻辑块GLB,也可连 接任何一个GLB输出到其他GLB,即它可将所有器件内的逻 辑连接起来。 GRP的传输延迟时间可预知。 第八章 可编程逻辑器件 图8.18 ispLSI1032的电路结构图 第八章 可编程逻辑器件 通用逻辑块GLB位于全局布线区GRP的四周,形成了4 个结构相同的大模块。 GLB由可编程与阵列、乘积项共享 的或阵列和输出逻辑宏单元(OLMC)三部分构成,每个GLB 相当于一个GAL器件。 输出布线区ORP的作用是把GLB的输出信号接到IOC上 ,它是介于GLB和IOC之间的可编程互连阵列。 ORP与其他 可编程互连阵列的区别是,IOC与GLB之间没有一一对应 关系,因而可以将对GLB的编程和对外部引脚的排列分开进 行,赋予外部引脚分配更大的灵活性。 第八章 可编程逻辑器件 输入/输出单元IOC位于器件的最外层,它由三态输出缓 冲器、输入缓冲器、输入寄存器和几个可编程的数据选择器 组成,IOC可以编程为输入、输出、双向输入/输出3种模式 。 各部分之间的关系和实现的功能如图8.19所示。 第八章 可编程逻辑器件 图8.19 ispLSI1032的逻辑功能划分图 第八章 可编程逻辑器件 8.5.2 CPLD的通用逻辑块(GLB) ispLSI1032器件的GLB结构图如图8.20所示。 GLB主要 用于实现逻辑功能,在结构上类似于GAL,但又在GAL的 基础上做了一些改进,在组态时有更大的灵活性和多样性。 图8.20是GLB的标准组态,4个或门输入按4、4、5、7 配置,或阵列采取了乘积项共享的结构形式。 它的输入和 输出关系是可编程的,F0F3中的任何一个都可以送到4个D 触发器中的任何一个的输入端,每个Fi又可以同时送给多个 触发器,F0F3 还可以再组合成更大规模的与-或逻辑函数送 到任何一个触发器的输入端。 第八章 可编程逻辑器件 图8.20 ispLSI1032器件的GLB结构 第八章 可编程逻辑器件 4输出逻辑宏单元中4个触发器的置0、时钟是连在一起 的,因此同一GLB中的触发器必须同步工作。 根据设计需 要,可编程触发器也可配置为JK、T触发器形式。 此外,通过编程还可以将GLB设置成其他连接模式,以 适应不同的设计要求。 【例8-6】 画出ispLSI1032器件产生4乘积项、8乘积项 、16乘积项GLB的配置。 解:图8.21为产生4乘积项、8乘积项、16乘积项GLB的 配置结构图。 其中4乘积项由一个或门产生,8乘积项由2个 共享或门产生,16乘积项由三个共享或门产生。 第八章 可编程逻辑器件 综上所述,CPLD器件与低密度PAL和GAL器件相比, 主要有以下性能特点: (1) 可进行多次编程、改写和擦除。 (2) 具有高密度、高速度、高可靠性和低功耗的特点。 (3) I/O端数和内含触发器可多达数百个,集成度远远高 于PAL和GAL器件。 (4) 有灵活多样的逻辑结构,可满足各种数字电路系统 设计的需要。 第八章 可编程逻辑器件 (5) 内部时间延迟与器件结构和逻辑连接无关,各模块 之间提供了具有固定延时的快速互连通道,可预测时间延迟 ,易于消除竞争冒险现象。 (6) 对于采用SRAM工艺的CPLD,需要进行数据配置才 可以完成设计要求的功能,断电后,配置数据自动消失。 (7) 有多位加密位,可杜绝编程数据的非法抄袭。 第八章 可编程逻辑器件 图8.21 ispLSI1032器件的GLB结构 第八章 可编程逻辑器件 8.6 现场可编程门阵列器件(FPGA) 8.6.1 FPGA的基本结构 与前面介绍过的几种PLD器件不同,现场可编程门阵列 FPGA的主体不再是与-或阵列,而是由若干独立的可编程逻 辑模块组成的。 用户可以通过编程,实现这些模块之间的 互连,从而实现所需要的数字系统的逻辑功能。 由于这些 模块的排列方式和门阵列(GA)中单元的排列形式类似,所 以沿用了门阵列这个名称。 FPGA属于高密度PLD,其每片 的集成度可达百万门以上。 多数的FPGA采用SRAM编程工艺,也有少数的FPGA采 用反熔丝编程工艺。 第八章 可编程逻辑器件 图8.22是FPGA的基本结构示意图,它由可编程逻辑模 块(Configurable Logic Block,CLB)、可编程输入/输出模块 (Input/Output Block,IOB)、可编程互连资源(Interconnect Resource,IR)这三种可编程单元和一个阵列分布的存放编 程数据的静态存储器SRAM组成。 整个芯片的逻辑功能是 通过对芯片内部的SRAM编程确定的。 第八章 可编程逻辑器件 图8.22 FPGA的基本结构 第八章 可编程逻辑器件 可编程逻辑块CLB是实现用户功能的基本单元,它们通 常规则地排列成一个二维阵列,分布在整个芯片中央;可编 程输入/输出模块IOB提供芯片内部逻辑阵列与外部引出线之 间的编程接口,它通常排列在芯片的四周;可编程互连资源 IR包括各种长度的金属连线、一些可编程开关矩阵和可编程 的连接点,它们将各个CLB之间或CLB、IOB之间以及IOB 之间连接起来,构成特定功能的电路。 第八章 可编程逻辑器件 基于SRAM的FPGA器件,其内部CLB、IOB、互连开 关的编程数据等都存放在片内的SRAM中,断电后存储器中 的数据不能保存,因此,FPGA未加电时,器件本身没有任 何功能。 加电工作时,必须重新给存储器加载编程数据。 加载的过程是在FPGA内部的一个时序电路的控制下自动进 行的。 编程数据可以存储在片外的EPROM、EEPROM或计 算机软、硬盘中。 人们可以控制加载过程,在现场修改器 件的逻辑功能,即所谓现场编程。 图8.23是FPGA中静态存储器SRAM单元的结构图。 它 由两个CMOS反相器和一个用来控制读/写的MOS控制管T构 成。 这种SRAM存储单元具有很强的抗干扰能力和很高的 可靠性。 第八章 可编程逻辑器件 图8.23 FPGA内SRAM单元 第八章 可编程逻辑器件 8.6.2 FPGA的CLB模块和IOB模块 不同厂家生产的FPGA,其CLB、IOB等结构都存在较 大的差异,下面以Xilinx公司的产品XC2064为例,简要介绍 FPGA的CLB、IOB的基本电路结构和工作特点。 1. 可编程逻辑模块CLB CLB是FPGA实现各种逻辑功能的基本单元。 在 XC2064中有64个CLB,排列成88 的矩阵。 每个CLB中包 含组合逻辑电路、存储电路以及由一些数据选择器组成的内 部控制电路,图8.24为XC2064中CLB的结构图。 图中程序 控制的数据选择器符号上只标出了数据输入端和数据输出端 ,省略了地址输入端。 第八章 可编程逻辑器件 图8.24 XC2064的CLB电路 第八章 可编程逻辑器件 CLB中的组合逻辑电路部分是有4个输入端、2个输出端 的通用逻辑模块。 根据设计的需要,可以将组合逻辑电路 设置成3种不同的组态,如图8.25所示,即通过编程可以产 生任何形式的四变量组合逻辑函数、2个三变量的组合逻辑 函数和含有A、B、C、D、Q五变量的组合逻辑函数。 第八章 可编程逻辑器件 图8.25 XC2064的CLB的3种组态 第八章 可编程逻辑器件 CLB中的组合逻辑电路输出与输入之间的逻辑函数关系 由一组编程控制信号决定。 将编程控制信号与函数对应关 系列成函数查询表,在编程过程中通过查询表方式来实现逻 辑函数关系。 查询表的物理结构是静态的存储器SRAM, 查询表的工作原理类似于用ROM实现多种组合逻辑函数, 编程控制输入等效于ROM的地址码,通过查找ROM中的地 址表,即可得到相应的组合逻辑函数输出。 第八章 可编程逻辑器件 在XC2064中,CLB的存储电路只有一个触发器(在 XC3000和XC4000系列的FPGA器件中,每个CLB中有两个 触发器)。 这个触发器可以编程为边沿触发或电平触发的D 触发器。 触发器的输入端口接收组合逻辑电路部分的输出F ,时钟即可以选择片内公共时钟CP,工作在同步方式;也 可以选择输入端C或组合电路的输出G,工作在异步方式。 可以通过对数据选择器的编程来决定用时钟的上升沿或下降 沿(或高电平和低电平)触发。 第八章 可编程逻辑器件 触发器的异步置位信号从输入变量A和组合电路输出F 中选择。 异步置零信号从输入变量D和组合电路输出G中选 择。 输出Q既可以驱动CLB输出端X、Y,也可以反馈到输 入端作为组合逻辑电路的输入信号。 第八章 可编程逻辑器件 2. 可编程输入/输出模块IOB XC2064共有56个可编程的IOB,分布于FPGA四周,可 以灵活编程,满足不同逻辑接口的需要。 每个IOB由输出三 态缓冲器G1、触发器、输入缓冲器G2和两个数据选择器 MUX1、MUX2组成。 图8.26为XC2064中IOB的电路结构图 。 由图8.26可知,MUX1的输出决定输出三态缓冲器G1的 工作状态。 当MUX1输出(即G1的控制信号 )为低电平时 ,IOB工作在输出状态,FPGA内部产生的信号通过G1送至 I/O端。 当MUX1输出为高电平时,G1为高阻态,IOB工作 在输入状态。 第八章 可编程逻辑器件 图8.26 XC2064的IOB电路 第八章 可编程逻辑器件 MUX2用于输入方式的选择。 当MUX2选中G2的输出 时,为异步输入方式,加到 I/O 端的输入信号立刻通过G2、 MUX2送到FPGA内部。 当MUX2选中触发器的输出时,为 同步输入方式,加到I/O端的输入信号必须等到时钟信号CP 到达后,才能经过MUX2送到FPGA内部。 输入缓冲器G2的阈值电平是可编程的。 用户既可设置 为TTL电路的阈值电平1.4 V,也可以设置为高速CMOS电路 的阈值电平2.2 V。 在XC2064中,所有IOB共享一个I/O时钟 信号。 第八章 可编程逻辑器件 8.6.3 FPGA内部互连资源(IR) 可编程互连资源IR分布于CLB和IOB之间,由多种不同 长度的金属线段通过可编程开关矩阵SM(Switching Matrices) 相互连接,通过自动布线实现所需功能的电路连接。 IR 可将FPGA中很大数目的CLB和IOB连接成各种复杂的系统 。 可编程连接线又分为三种类型:单长线(Single Length Lines)、双长线(Double Length Lines)和长线(Long Lines)。 第八章 可编程逻辑器件 (1) 通用单/双长线连接:主要用于CLB之间的连接,任 意两点间的连接都要通过开关矩阵。 它提供了相邻CLB 之间的快速互连和复杂互连的灵活性,但传输信号每通过一 个可编程开关矩阵,就增加一次时延。 因此,FPGA内部时 延与器件结构和逻辑布线有关,它的信号传输时延不可确定 。 (2) 长线连接:在通用单/双长线的旁边还有一些从阵列 的一头连到另一头的线段,称为水平长线和垂直长线。 这 些长线不经过可编程开关矩阵,信号延时时间小,长线主要 用于长距离或多分支信号的传送。 第八章 可编程逻辑器件 (3) 全局连接: 全局线贯穿整个器件,可达到每个 CLB。 全局连接主要用于传送一些公共信号,如全局时钟 信号、公用控制信号。 综上所述,FPGA器件与PAL、GAL以及CPLD相比, 主要有以下性能特点: (1) 采用SRAM编程技术,具有高 密度、高速度、高可靠性和低功耗的特性。 (2) 提供丰富的可编程I/O端数目和触发器,使得各引脚 信号的安排更加方便和合理。 集成度远远高于PAL和GAL 器件。 (3) FPGA器件结构灵活,内部的CLB、IOB和ICR均可 以编程,可以实现多个变量的任意逻辑。 第八章 可编程逻辑器件 (4) 某些器件提供片内高速RAM,可用于FIFO等设计。 FPGA本身也存在一些缺点: (1) 使用FPGA器件时需要进行数据配置,断电后,配置 数据自动丢失。 因此,每次开始工作时都需要重新装载编 程数据,并需要配备保存编程数据的EPROM等存储设备。 使用不是很方便,并且不便于保密。 而CPLD中设有加密编 程单元,加密后可防止编程数据被读出。 第八章 可编程逻辑器件 (2) 内部时延与器件结构和逻辑连接等有关,传输时延

温馨提示

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

评论

0/150

提交评论