




已阅读5页,还剩123页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第八章 可编程逻辑器件,内容提要 1. 介绍各种可编程逻辑器件的 结构、工作原理和使用方法 2. 可编程逻辑器件的编程方法 和在系统可编程技术的介绍,2,8.1 概述,1集成电路的分类:,按集成度分: SSI: 器件级(门电路、触发器等) MSI:部件级(计数器、移位寄存器等) LSI: 系统级(含控制器的电子系统) VLSI:复杂系统级(大容量Memory、 微处理器等),3,8.1 概述,按处理信号分: 模拟IC(A/D,D/A,放大,滤波等功能) 数字IC(组合电路,时序电路,数字系统) 综合性IC(即数模混合,SOC, 嵌入式系统等) 按通用性、使用量分: 通用IC: 存贮器、微处理器等 专用IC (ASIC):全定制ASIC、 半定制 ASIC、可编程ASIC,4,8.1 概述,5,8.1 概述,集成度情况: Lattice:ispLSI 6000系列,集成度达到25000个 等效PLD门, 320个宏单元 Altera: MAX9000系列, 24000个等效PLD门, 1024个宏单元 Altera: FLEX10K250 25万个等效PLD门 XiLinx:两年前推出的FPGACV1000可达到 100万个等效PLD门。,6,8.1 概述, 理论上采用通用型的中小规模IC可以组成任 何复杂的数字系统, 但体积大而笨重、功耗 大,可靠性差。 为某种专门用途而设计的集成电路叫做专用 集成电路,即ASIC,通常把所设计的系统 做成一片大规模集成电路,故体积小、功耗 低、重量轻、可靠性高。,7,8.1 概述, 可编程逻辑器件的逻辑功能由用户对器件编 程来设定,以前用户在计算机上使用编程软 件编写逻辑功能,然后通过编程器下载到器 件上。新一代的在系统可编程器件,编程时 不需要使用专门的编程器,只要将计算机运 行产生的编程数据直接写入PLD就行了。这 样就使普通的用户设计复杂的系统成为现实 (以前是不可能的)。,8,8.1 概述,2PLD的电路表示法 (1)基本门电路的PLD表示法: 1)固定连接、不可改变的“硬线连接单元” 2)可通过编程接通的“被编程接通单元” 3)可通过编程断开的“被编程擦除单元” 4)互补输出的缓冲器,见图8.1.1(d)。 5)三态输出的缓冲器,见图8.1.1(e)。 6)与门的PLD表示,详见图8.1.1(a), A、B、C、D称 为输入项 , PABD 称为乘积项。图8.1.1(b)中P=0,9,8.1 概述,7)或门的PLD表示 详见图8.1.1(c), Y=P1+P3+P4 8)与阵列、或阵列的PLD表示 如图8.2.1所示。 (2)PLD由两种基本的门阵列与门阵列和或门阵列以及相关器件组成,如图8.2.1所示。,10,8.1 概述,图8.1.1 PLD电路中门电路的惯用画法 (a)与门 (b)输出恒等于0的与门 (c)或门 (d)互补输出的缓冲器 (e)三态输出的缓冲器,11,*8.2 现场可编程逻辑阵列(FPLA),FPLA由可编程的与逻辑阵列和可编程的或逻辑阵列以及输出缓冲器组成。如图8.2.1所示。图中的与逻辑阵列最多可以产生8个可编程的乘积项,或逻辑阵列最多能产生4个组合逻辑函数。时序逻辑型FPLA见图8.2.3。,12,*8.2 现场可编程逻辑阵列(FPLA),图8.2.1 FPLA的基本电路结构,可产生8个 可编程的 乘积项,可产生4 个组合函 数(即4个 与或式),13,*8.2 现场可编程逻辑阵列(FPLA),图8.2.3 时序逻辑型 FPLA的电路结构,14,8.3 可编程阵列逻辑(PAL),采用双极型工艺制作,熔丝编程方式。 PAL由可编程的与逻辑阵列、固定的或逻辑阵列和输出电路三部分组成。通过对与阵列编程可以获得不同形式的组合逻辑函数。有些PAL器件的输出电路中设置有触发器和从触发器输出到与阵列的反馈线,故可利用这种PAL器件组成各种时序电路。 (392页),15,8.3.1 PAL的基本电路结构,PAL器件中最简单的一种电路结构形式见图8.3.1,它仅包含一个可编程的与逻辑阵列和一个固定的或阵列。 编程原理:在尚未编程之前,与阵列的所有交叉点上均有熔丝接通。编程将有用的熔丝保留,将无用的熔丝熔断,即得到所需的电路。详见P393图8.3.2例子。,16,8.3.1 PAL的基本电路结构,图8.3.1 PAL器件的基本电路结构,17,8.3.1 PAL的基本电路结构,图8.3.2 编程后的PAL电路,18,8.3.1 PAL的基本电路结构,目前常见的PAL器件中,输入变量最多的可达20个,与逻辑阵列乘积项最多的有80个,或逻辑阵列输出端最多的有10个,每个或门输入端最多的达16个。在许多型号的PAL器件中还增加了各种形式的输出电路,以扩展电路的功能和增加使用的灵活性。,19,8.3.2 PAL的几种输出电路结构 和反馈形式,主要有以下五种类型: 1专用输出结构 如:PAL10H8、PAL14H4的输出端是与或门 结构,输出高电平信号; PAL10L8、PAL14L4的输出端是与或 非门结构,输出低电平信号; PAL16C1的输出端是互补输出的或门 结构,同时输出一对互补的信号。,20,8.3.2 PAL的几种输出电路结构 和反馈形式,专用输出结构的共同特点:输出端只能用作输出使用。专用输出结构的PAL器件只能用来产生组合逻辑函数。 2可编程输入/输出结构 电路结构图见图8.3.4。其输出端是一个具有可编程控制端的三态缓冲器,控制端由与阵列的一个乘积项给出(如图中的C1和C2)。,21,8.3.2 PAL的几种输出电路结构 和反馈形式,图8.3.4 PAL的可编程输入/输出结构,22,8.3.2 PAL的几种输出电路结构 和反馈形式,同时输出端又经过了一个互补输出的缓冲器反馈到与阵列上。如PAL16L8、PAL20L10等,都属于这种输出结构的PAL器件。 在有些可编程I/0结构的PAL器件中,在与或阵列的输出和三态缓冲器之间还设置有可编程的异或门。如图8.3.5,通过对异或门一个可编程输入端的编程可以控制输出的极性。 (详见P394说明),23,8.3.2 PAL的几种输出电路结构 和反馈形式,图8.3.5 带有异或门的可编程 输入/输出结构,24,8.3.2 PAL的几种输出电路结构 和反馈形式,3寄存器输出结构 电路结构见图8.3.6,它在输出三态缓冲器和与或阵列的输出之间串进了由D触发器组成的寄存器。同时触发器的状态又经过互补输出的缓冲器反馈到与阵列的输入端。利用这种输出结构不仅可以存储与或阵列输出的状态,而且能很方便地组成各种时序逻辑电路。如PAL16R4、PAL16R6、PAL16R8等。,25,8.3.2 PAL的几种输出电路结构 和反馈形式,图8.3.6 PAL的寄存器输出结构,移位寄存器的例子,26,8.3.2 PAL的几种输出电路结构 和反馈形式,4异或输出结构 电路结构见图8.3.7,与寄存器输出结构类似,只是在与或阵列的输出端又增设了异或门。如PAL20X4、PAL20X8、PAL20X10等都属于这种输出结构的器件。 主要用途: 对与或阵列输出的函数求反。 对寄存器状态进行保存,详见P395 。,27,8.3.2 PAL的几种输出电路结构 和反馈形式,图8.3.7 PAL的异或输出结构,28,8.3.2 PAL的几种输出电路结构 和反馈形式,5运算选通反馈结构 电路结构见图8.3.8,在异或输出结构的基础上再增加一组反馈逻辑电路。反馈选通电路分别给出了输入变量B和反馈变量A产生的(A+B)、(A+B)、(A+B)、(A+B)4个反馈量,并接至与阵列的输入端。通过对与阵列的编程,能产生A和B的16种算术运算和逻辑运算的结果,见图8.3.9。属于这种结构的PAL器件有PAL16X4、 PAL16A4等。,29,8.3.2 PAL的几种输出电路结构 和反馈形式,图8.3.8 PAL的运算选通反馈结构,30,8.3.2 PAL的几种输出电路结构 和反馈形式,图8.3.9 产生16种算术、逻辑运算的编程情况,31,8.3.3 PAL的应用举例,图8.3.10 PAL14H4按式 8.3.2 编程后的逻辑图,32,8.3.3 PAL的应用举例,图8.3.11 例 8.3.2输出状态的卡诺图,33,8.3.3 PAL的应用举例,图8.3.12 例 8.3.2中编程后的PAL16R4的逻辑图,34,8.4 通用阵列逻辑(GAL),PAL器件的缺点:由于它采用的是双极型熔丝工艺,一旦编程以后不能修改,因而不适应研制工作中经常修改电路的需要。采用CMOS可擦除编程单元的PAL器件克服了不可改写的缺点,然而PAL器件输出电路结构的类型繁多,仍给设计和使用带来一些不便。为了克服PAL器件存在的缺点,Lattice公司于1985年首先推出了通用阵列逻辑GAL。 其特点为:,35,8.4 通用阵列逻辑(GAL), GAL采用可擦除的CMOS (E2CMOS)制作, 可以用电压信号擦除并可重新编程。 GAL器件的输出端设置了可编程的输出逻 辑宏单元(OLMC)。通过编程可将OLMC 设置成不同的工作状态,这样就可以用同一 种型号的GAL器件实现PAL器件所有的各 种输出电路工作模式。,36,8.4.1 GAL的电路结构,8.4.1 GAL的电路结构 (402页) 现以常见的GAL16V8为例,介绍GAL器件的一般结构形式和工作原理。GAL16V8的电路结构如图8.4.1所示,它有: 一个3264位的可编程与阵列:031列对应 32个输入,063行对应64个乘积项。 8个OLMC和8个三态输出缓冲器,对应1219 共8个输出端。,37,图8.4.1 GAL16V8的电路结构图,38,8.4.1 GAL的电路结构, 10个输入缓冲器:对应于1,2,9,11 脚共10个输入端。 从8个OLMC反馈到与阵列的8个反馈/输入 缓冲器。 组成或逻辑阵列的8个或门分别包含于8个 OLMC中,它们和与阵列的连接是固定的。 GAL16V8编程单元的地址分配和功能划分 情况见图8.4.3,其中:,39,图8.4.3 GAL16V8编程单元的地址分配,40,8.4.1 GAL的电路结构,1) 第031行对应与阵列的编程单元,编程后可产生063共64个乘积项。第32行是电子标签, 供用户存放备查信息,如器件的编号,电路的名称、编程日期等。 2)第3359行和第62行均为制造厂家保留的地址空间,用户不能使用。 3)第60行是结构控制字,共有82位,用于设定8个OLMC的工作模式和64个乘积项的禁止。,41,8.4.1 GAL的电路结构,4)第61行是一位加密单元:该位被编程后将不能对与阵列作进一步的编程或读出验证。因此可以实现对电路设计结果的保密。只有在与阵列被整体擦除时,才能将加密单元同时擦除。但电子标签的内容不受加密单元的影响。 5)第63行是一位整体擦除位。对该位单元寻址并执行擦除命令,则所有编程单元全被擦除,器件返回到编程前的初始状态。,42,8.4.1 GAL的电路结构,对GAL的编程是在开发系统的控制下完成的。在编程状态下,编程数据由第9脚串行送入GAL器件内部的移位寄存器中。移位寄存器有64位,装满一次就向编程单元地址中写入一行,编程是逐行进行的。 8.4.2 输出逻辑宏单元(OLMC) 图8.4.4是OLMC的结构框图,43,图8.4.4 OLMC的结构框图,44,8.4.2 输出逻辑宏单元(OLMC),一个 OLMC包括如下三部分: 一个或门 OLMC 一个D触发器 4个MUX及若干个门电路 图中的AC0、AC1(n)、XOR(n)都是结构控制字中的数据,通过对其编程便可设定OLMC的工作模式。GAL16V8结构控制字的组成见图8.4.5。,45,8.4.2 输出逻辑宏单元(OLMC),图8.4.5 GAL16V8结构控制字的组成,46,8.4.2 输出逻辑宏单元(OLMC),在图8.4.4中: 或门:有8个来自与阵列的输入端,其输出能 产生不超过8个乘积项的与或逻辑函数。 异或门:控制输出函数的极性: XOR(n)=0时,异或门输出 和或门的输出同相; XOR(n)=1时,异或门输出 和或门的输出反相。,47,8.4.2 输出逻辑宏单元(OLMC), 4个MUX的功能: 1)OMUX:根据AC0和AC1(n)的状态决定OLMC是工作于组合输出模式还是寄存器输出模式,具体为:AC0=0或AC1(n)=1时,G2输出0,为组合逻辑输出;AC0=1且AC1(n)=0时,G2输出1,为寄存器输出。 2)PTMUX:根据AC0、AC1(n)的状态决定来自与阵列的第一乘积项是否作为或门的一个输入。,48,8.4.2 输出逻辑宏单元(OLMC),具体为:AC0AC1(n)=0时,G1输出1,第一乘积项经过PTMUX加到或门的输入;而当AC0AC1(n)=1时,G1输出0,第一乘积项不作为或门的一个输入。 3)TSMUX (4选1的):根据AC0、AC1(n)的状态从VCC、地、OE和来自与阵列第一乘积项当中选择一个作为输出三态缓冲器的控制信号,见表8.4.1(P422)。,49,8.4.2 输出逻辑宏单元(OLMC),4)FMUX(8选1的):根据AC0、AC1(n)和AC1(m)的状态从触发器的 、I/O(n)端、邻级输出和地电平中选择一个作为反馈信号接回到与阵列的输入,见表8.4.2 (P407) 。 OLMC的5种工作模式, 见表8.4.3 ( P407 ) 。 这5种工作模式由结构控制字中的SYN、AC0、AC1(n)、XOR(n)的状态指定, 具体为:,50,8.4.2 输出逻辑宏单元(OLMC),1)SYN=1,AC0=0,AC1(n)=1时,OLMC(n) 工作在专用输入模式,见图8.4.6(a)。 2)SYN=1,AC0=0,AC1(n)=0时,OLMC工 作在专用组合输出模式,见图8.4.6(b)。 3)SYN=1,AC0=1,AC1(n)=1时,OLMC工 作在反馈组合输出模式,见图8.4.6(c)。 4)SYN=0,AC0=1,AC1(n)=1时,OLMC 工作在时序电路中的组合输出模式,见图 8.4.6(d)。,51,8.4.2 输出逻辑宏单元(OLMC),5)SYN=0,AC0=1,AC1(n)=0时,OLMC(n) 工作在寄存器输出模式,见图8.4.6(e)。 总之,只要给GAL器件写入不同的结构控制字,就可以得到不同类型的输出电路结构。,52,8.4.2 输出逻辑宏单元(OLMC),53,8.5 可擦除的可编程逻辑器件 (EPLD),8.5.1 EPLD的基本结构和特点 EPLD是继PAL、GAL之后推出的一种可编程逻辑器件。它采用CMOS和UVEPROM工艺制作,集成度比PAL和GAL器件高得多,其产品多半都属于高密度PLD。 ATMEL公司生产的EPLD产品AT22V10的电路结构框图见P413图8.5.1,它的基本结构形式和PAL、GAL器件类似,与PAL、GAL相比,EPLD有以下几个特点:,54,图8.5.1 AT22V10的电路结构框图,55,8.5.1 EPLD的基本结构和特点, EPLD具有CMOS器件低功耗、高噪声容 限的优点。 由于采用UVEPROM工艺,故可靠性高, 可以改写,而且集成度高,造价便宜。 EPLD的OLMC不仅吸收了GAL器件输出 电路结构可编程的优点,而且还增加了对 OLMC中触发器的预置数和异步置零功能, 故比GAL的OLMC有更大的灵活性。,56,8.5.1 EPLD的基本结构和特点, 为了提高与或逻辑阵列中乘积项的利用 率,有些EPLD的或逻辑阵列部分也引入了 可编程逻辑结构。(而PAL、GAL中的或阵 列是固定的、不可编程的)。 8.5.2 EPLD的与或逻辑阵列 与PAL、GAL器件中的与或阵列相比,EPLD 的与或阵列有以下几个特点:,57,8.5.2 EPLD的与或逻辑阵列, 大多数EPLD中的与或阵列每一组乘积项的 数目不完全相等。这样既便于产生不同项数 的与或逻辑函数,又有利于提高乘积项的 利用率。 在有的EPLD中,将每一组乘积项分作两部分, 产生两个与或逻辑函数,然后通过编程使 这两部分既可以单独地送到输出电路,又可 以组合在一起产生一个项数更多的与或函数. 如图8.5.2所示.ATMEL的ATV750即用这种阵列。,58,图8.5.2 每组乘积项分为两部分的可编程结构,59,8.5.2 EPLD的与或逻辑阵列, 采用乘积项共享的可编程结构,见图8.5.3,其中每组乘积项都分成两部分,通过编程可以将这两部分相加,产生一个含有8个乘积项的与或函数,也可以分别为相邻一组所共享,与相邻一组乘积项共同组成一个项数更多的与或函数。例如在图8.5.3中,中间或门的输出是16个乘积项之和。可见这种可编程结构能使与阵列的乘积项得到充分的利用。Altera公司的EP512就是采用这种与或阵列结构。,60,8.5.2 EPLD的与或逻辑阵列,图8.5.3 与或逻辑阵列的乘积项共享结构,61,8.5.3 EPLD的OLMC,不同型号EPLD的OLMC在电路结构上也各不相同,但从预置和置零的工作方式上可以分为两大类,一类为同步工作方式,另一类为异步工作方式。 1AT22V10中的OLMC为同步工作方式 见图8.5.4,其OLMC由D触发器、异或门和两个数据选择器MUX1和MUX2构成。 用MUX1选择输出组态:,62,8.5.3 EPLD的OLMC,图8.5.4 AT22V10的OLMC电路结构图,63,8.5.3 EPLD的OLMC,MUX1的编程单元输出1时,为组合逻辑输出; MUX1的编程单元输出0时,为寄存器输出。 用MUX2选择反馈信号: 当MUX2的编程单元: 输出1时, 反馈信号取自触发器; 输出0时,反馈信号来自I/O端。 用XOR选择输出极性: 当异或门可编程输入端接地时, 输出高电平有效;,64,8.5.3 EPLD的OLMC,当异或门可编程输入端为高电平时, 输出低电平有效。 触发器的异步置零信号AR和同步预置信号 SP各由一个可编程的乘积项提供,这样就可 以按需要编程,以决定在什么情况下将触发 器置0或置1。 OLMC中的触发器无论在置零时还是在置1 时都是同步动作的。因为所有OLMC中的CLK、 AR和SP都是公用的。,65,8.5.3 EPLD的OLMC,2ATV750中的OLMC是异步工作方式 见图8.5.5,其OLMC中包含两个D触发器、异 或门XOR和一个2选1的MUX。 用MUX选择输出组态: MUX的编程单元输出1时为组合输出; MUX的编程单元输出0时为寄存器输出。 用XOR选择输出极性: XOR输入端编程为0时,输出高电平有效; XOR输入端编程为1时,输出低电平有效。,66,8.5.3 EPLD的OLMC,图8.5.5 ATV750的OLMC电路结构图,67,8.5.3 EPLD的OLMC, 每个触发器的CLK、AR都是独立的,而且分别由可编程的一个乘积项给出。因此这种EPLD不仅可以用于同步时序电路的设计(把所有OLMC中触发器的CLK连在一起,AR也连在一起即可),而且可以用于异步时序电路的设计。 因含有两个触发器,而且每个触发器的状态都直接反馈到了与阵列,这就为时序电路的设计提供了更多的方便和更大的灵活性。,68,8.5.3 EPLD的OLMC,近年来迅速发展起来的CPLD可以认为是从EPLD演变来的。为了提高集成度,同时又保持EPLD传输时间可预测的优点,将若干个类似于PAL的功能模块和实现互连的开关矩阵集成于同一芯片上,就形成了CPLD。CPLD多采用E2CMOS工艺制作。,69,8.6 现场可编程门阵列(FPGA),8.6.1 FPGA的基本结构 在前面所讲的几种PLD电路中,都采用了与或逻辑阵列加上输出逻辑单元的结构形式。而FPGA的电路结构形式则完全不同,它由若干独立的可编程逻辑模块组成。FPGA属于高密度PLD,其集成度可达3万门/片以上。如: Atera公司的FLEX10K250:25万门/片, Xilinx公司的FPGA XCV1000:100万门/片。,70,8.6.1 FPGA的基本结构,FPGA基本结构示意图见图8.7.1。它由三种可编程单元和一个用于存放编程数据的静态存储器组成。这三种可编程的单元是: 输入/输出模块IOB 它们的工作状态全都 可编程逻辑模块CLB 由编程数据存储器中 互连资源IR 的数据设定。 特点:1FPGA器件最大可能的I/O端数要比 同等规模的EPLD多,因其大部分引脚 都与可编程的IOB相连。,71,8.6.1 FPGA的基本结构,图8.7.1 FPGA的基本结构框图,72,8.6.1 FPGA的基本结构,2每个CLB中都包含组合电路和存储电路(FF) 两部分,可以设置成规模不大的组合逻辑电 路或时序逻辑电路。 3在CLB之间的布线区内配备了丰富的连线资 源,即互连资源,它们包括: 不同类型的金属线; 可编程的开关; 可编程的连接点。 利用上述互连资源可将众多的CLB灵活地 连接成各种复杂的应用电路。,73,8.6.1 FPGA的基本结构,4静态存储器虽有很强的抗干扰能力和很高的可靠性,但停电以后存储器中的数据不能保存,因而每次接通电源以后必须重新给存储器“装载数据”。待装载的数据通常都需要存放在一片EPROM中。 FPGA的优缺点:其优点有: FPGA采用CLB阵列结构,克服了PAL等PLD中那种固定的与或阵列结构的局限性,在组成复杂数字系统时显得更加灵活。,74,8.6.1 FPGA的基本结构, 由于FPGA可编程的I/O端数目多,使各引脚信号的安排更加方便和合理。 FPGA的缺点: 信号传输延迟时间不是确定的。在用若干个CLB组合成复杂数字系统时,由于每个信号的传输途径各异,所以传输延迟时间也就不可能相等。在EPLD中不存在这个问题。,75,8.6.1 FPGA的基本结构, 每次开始工作时都需要重新装载编程数据, 并要配备保存数据的EPROM。 FPGA的编程数据一般是存放在EPROM中, 而且要读出并送到FPGA的SRAM中, 因而 不便于保密。而在EPLD中设有加密单元, 加密后可防止读出。 可见,FPGA和EPLD各有不能取代的优点, 故这两种器件目前都得到广泛应用。,76,8.6.2 FPGA的IOB和CLB,以Xilinx公司生产的XC2064为例。 1IOB XC2064(是FPGA器件中较简单的一种)一 共有56个可编程的I/O端, 每个IOB有以下四部分(见图8.7.3) 输出三态缓冲器G1; 触发器; 输入缓冲器G2; 两个数据选择器MUX1、MUX2,77,8.6.2 FPGA的IOB和CLB,图8.7.3 XC2064的IOB电路,78,8.6.2 FPGA的IOB和CLB, MUX1和MUX2的输入地址代码都存放在编 程数据存储器中。 用MUX1选择G1的控制信号OE: MUX1输出0时,IOB工作在输出状态;FPGA内部产生的信号通过G1送至I/O端,MUX1输出1时,G1为高阻态,IOB工作在输入状态。,79,8.6.2 FPGA的IOB和CLB,用MUX2选择输入方式: 当MUX2的输出选中输入缓冲器G2的输出时,为异步输入方式,加到I/O端的输入信号立即通过G2、MUX2送往FPGA内部。当MUX2的输出选中触发器的输出时,为同步方式,必须等到I/O CLK到达后,加到I/O端的输入信号才能经过G2、触发器和MUX2送往内部电路。 输入缓冲器G2的阈值电平是可编程的。在XC2064中,所有IOB的时钟信号是公用的。,80,8.6.2 FPGA的IOB和CLB,2CLB XC2064中有64个CLB, 排列成88的矩阵。 每个CLB包含:(见图8.7.4) 组合逻辑电路; 存储电路; 三个3选1和三个2选1的MUX。 组合逻辑电路是有4个输入端(A、B、C、 D)、两个输出端(G、F)的通用逻辑模块。,81,8.6.2 FPGA的IOB和CLB,图8.7.4 XC2064的CLB电路,82,8.6.2 FPGA的IOB和CLB,根据设计的需要可以将组合逻辑部分设置成3种不同的组态: 1)见图8.7.5(a), 可编程产生任何形式的四变 量组合逻辑函数。 2)见图8.7.5(b), 可产生两个三变量的任何形 式的逻辑函数。 3)见图8.7.5, 可产生含有A、B、C、D、Q的 五变量逻辑函数。,83,图8.7.5 XC2064中CLB的3种组态 (a)四变量任意函数 (b)两个三变量任意函数 (c)五变量逻辑函数,84,8.6.2 FPGA的IOB和CLB,这种通用逻辑模块输出与输入间的逻辑函数关系由一组编程控制信号决定。将编程控制信号与函数对应关系列成函数表,编程时通过查表即可找出所需的编程数据。如一个二输入变量的通用逻辑模块见图8.7.6, 图中A、B是两个输入变量,F为输出逻辑函数,C0、C1、C2、C3是编程控制信号,在C0C1C2C3的16种不同取值下,得到A和B的16种函数关系,如表8.7.1。,85,8.6.2 FPGA的IOB和CLB,图8.7.6 二变量通用逻辑模块的原理图,86,8.6.2 FPGA的IOB和CLB,CLB中存储电路的结构见图8.7.7,它只包含一个触发器(在XC3000和XC4000系列的FPGA器件中,每个CLB中有两个触发器)。根据设计要求,这个触发器可以编程为边沿触发的D触发器,也可以编程为电平触发的D型锁存器。触发器各端信号的配置情况如下: D端接收组合电路部分的输出F。,87,8.6.2 FPGA的IOB和CLB,图8.7.7 XC2064中CLB的存储电路,88,8.6.2 FPGA的IOB和CLB, 时钟信号由MUX1给出 片内公共时钟CLK,工作在同步方式 组合电路输出G或输入变量C,工作在异步方式 用MUX2选择用时钟的上升沿或下降沿(或 高电平或低电平)触发。 异步置位信号由MUX3给出,可以从输入变 量A和组合电路输出F中选择。,89,8.6.2 FPGA的IOB和CLB, 异步置零信号由MUX4给出,可以选择组合 电路输出G,也可选输入变量D作置零信号。 8.6.3 FPGA的互连资源 为将FPGA中数目很大的CLB和IOB连接成各种复杂的系统,在布线区内布置了丰富的连线资源。这些互连资源可分为三类: (见图8.7.8),90,8.6.3 FPGA的互连资源,图8.7.8 FPGA内部的互连资源,91,8.6.3 FPGA的互连资源,1. 金属线:水平通用连线、垂直通用连线、水平长线、垂直长线、全局连线和直接连线等。 这些金属线经可编程的连接点与CLB、IOB和开关矩阵相连,其中的通用连线主要用于CLB之间的连接;长线主要用于长距离或多分支信号的传递;全局连线用于输送一些公共信号。 2. 开关矩阵:如图8.7.9所示。 作用如同一个多根导线转接的接线盒。,92,8.6.3 FPGA的互连资源,图8.7.9 开关矩阵和可编程连接点,93,8.6.3 FPGA的互连资源,3.可编程连接点。 图8.7.10中以粗线示出了经过编程后的一种连线情况。此外,为了减少传输延迟时间和简化编程,在相邻的CLB之间进行直接连线,见图8.7.11,使用直接连线连接时,不经过开关矩阵和通用连线。 8.6.4 编程数据的装载 将编程数据写入FPGA内部编程数据存储器称为装载。详见P430433。,94,8.6.3 FPGA的互连资源,图8.7.10 利用水平和垂直通用连线和开关矩阵实现连接,95,8.6.3 FPGA的互连资源,图8.7.11 用直接连线实现连接,96,8.7 PLD的编程, PLD的编程工作必须在开发系统的支持下才 能完成。 不少PLD的生产厂商和软件公司已研制了各 种功能完善、高效率的PLD开发系统。 PLD开发系统包括软件和硬件两部分。 1)其中软件是指PLD专用的编程语言和相应的汇编程序或编译程序。开发系统软件大体上可分为汇编型、编译型和原理图收集型三种。,97,8.7 PLD的编程,a)早期使用的是汇编型软件。(不具备化简功 能, 且对不同类型PLD的兼容性差)。 b)20世纪80年代以后使用编译型软件。(能自 动化简、优化设计、模拟和测试功能)。 c)80年代末开始使用功能更快的开发系统软 件,不仅可以用高级编程语言输入还可以用 电路原理图输入。 d)上世纪末开始使用集成化的开发系统软件, 完成系统建模、仿真、性能分析、直到PCB 版图生成的全部设计工作。,98,8.7 PLD的编程,2)开发系统硬件部分包括计算机和编程器。而在系统开发软件的出现,使器件的编程不需要专用的编程器,可将计算机的编程数据直接下载到可编程器件中。 PLD的编程工作大体上可按如下步骤进行:(详见P437说明) 进行逻辑抽象。 选定PLD的类型和型号。 选定开发系统。,99,8.7 PLD的编程, 按编程语言的规定格式编写源程序: 上机运行。 VHDL; 卸载。 Verilog-HDL 测试。 等等。 8.8 在系统可编程逻辑器件(ISPPLD) 这种器件的最大特点是编程时既不需要使用编程器,也不需要将它从所在系统的电路板上取下,可以在系统内进行编程。(称为在系统可编程或在线编程)。,100,8.8 在系统可编程逻辑器件,将原属于编程器的写入/擦除控制电路及高压脉冲发生电路集成于PLD芯片中,这样在编程时就不需要使用编程器了。而且由于编程时只需外加5v电压,不必将PLD从系统中取出,从而实现了“在系统”编程。目前生产PLD产品的主要公司都已推出了各自的ISPPLD产品。,101,8.8.1 ISP-PLD,现以ispLSI1032为例,见图8.6.1。 ispLSI1032的基本组成部分: 32个GLB(通用逻辑模块) 64个IOC(输入/输出单元) 可编程的内部连线和编程控制电路 (图8.6.1中未画出编程控制电路),102,8.8.1 ISP-PLD,图8.6.1 ispLSI1032的电路结构框图,103,8.8.1 ISP-PLD,在图8.6.1中,上、下、左、右四个方向分别有一个结构相同的大模块。大模块中包含16个IOC、8个GLB、2个专用输入、输入总线和输出布线区(Output Routing Pool)。 在图8.6.1的中心位置是全局布线区(Global Routing Pool),在图8.6.1的右下角处是时钟脉冲分配网络。各部分之间的关系和实现的功能如图8.6.2所示。,104,8.8.1 ISP-PLD,图8.6.2 ispLSI1032的逻辑功能划分框图,105,8.8.1 ISP-PLD,1通用逻辑模块(GLB)(见图8.6.3) GLB的组成部分 1) 可编程的与阵列: 有16个来自GRP的输入和2个专用输入; 2) 乘积项共享的或阵列 : (a) F0F3中任一个都可送到4个D触发器中的任一个输入端;(b) 每个F又可以送给几个触发器;(c) 4个F还可组合成更大规模的与或函数送到任一个触发器的输入。,106,8.8.1 ISP-PLD,图8.6.3 通用逻辑模块(GLB)的电路结构,107,8.8.1 ISP-PLD,3) 输出逻辑宏单元(OLMC): 4个D触发器、4个MUX和4个输出缓冲器。 GLB的工作模式 GLB可配置成5种工作模式: 1)标准配置模式,如图8.6.3所示。 2)高速旁路模式:越过乘积项共享或阵列, 将F0F3直接连到OLMC。见图8.6.4(a)。 3)异或逻辑模式:在乘积项共享或阵列输出 与OLMC之间串连一个XOR。如图8.6.4(b),108,8.8.1 ISP-PLD,图8.6.4 GLB的其它几种组态模式 (a)高速旁路模式(b)异或逻辑模式(c)单乘积项模式,109,8.8.1 ISP-PLD,4)单乘积项模式:每个OLMC的输入取自与阵 列一个单乘积项的输出。如图8.6.4(c) 5)多重(混合)模式:每个GLB中的4个与或输 出电路的结构形式可分别组成上述几种不同 模式。 2输入/输出单元(IOC),见图8.6.5。 IOC的组成部分 1) 三态输出缓冲器:,110,8.8.1 ISP-PLD,图8.6.5 输入/输出单元( IOC )的电路结构,111,8.8.1 ISP-PLD,由MUX1控制其工作状态; 由MUX2选择输出信号的传输通道; 由MUX3选择输出信号的极性。 2) 输入缓冲器: 由MUX4选择其输入方式, 详见P421。 (a) 异步输入方式 (b) 同步输入方式 3) 输入寄存器/锁存器:,112,8.8.1 ISP-PLD,有两种工作方式: (a) R/L为高,被置成边沿触发器。 (b) R/L为低时,被设置成锁存器。 4) 可编程的MUX: MUX5和MUX6用于选择时钟源和极性。 IOC的组态 由MUX1MUX6编程状态的组合,得到各 种可能的IOC组态,如图8.6.6。,113,8.8.1 ISP-PLD,图8.6.6 IOC的各种组态,114,8.8.1 ISP-PLD,1) 三种输入方式 : (a) 输入缓冲器; (b) 锁存输入; (c) 寄存器输入。 2) 三种输出方式: (a) 输出缓冲器; (b) 反向输出缓冲器; (c) 三态输出缓冲器。,115,8.8.1 ISP-PLD,3) 两种双向工作方式 (a) 双向I/O; (b) 带寄存器输入的双向I/O 。 3全局布线区(GRP)和输出布线区(ORP) GRP和ORP都是可编程的矩阵网络,每条纵线和每条横线的交叉点接通与否受一位编程单元状态的控制。 通过对GRP的编程,可以实现32个GLB之 间的互相连接以及IOC与GRP的连接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 偏瘫的评定技术
- 生产班组月汇报
- 外科常用化疗药物注意事项
- 危险地点的讲解
- 全站仪技术交底
- 新生儿医院感染防控与手卫生管理
- 现代医药物流发展与管理体系
- 脑瘫儿童康复作业治疗
- 企业经营模拟实训汇报
- 升学宴营销活动策划方案
- 粮食机收减损培训课件
- 2025年山东高考化学试卷真题及答案详解解读(精校打印)
- 2025餐饮劳动合同书 电子版
- (2025)职业教育法知识竞赛题库带含答案
- CJ/T 449-2014切断型膜式燃气表
- 滨州海上风电项目可行性研究报告
- 人工智能赋能中小学教育:个性化学习路径优化研究
- 2025年月嫂考证:母婴护理师等技能资格知识考试题与答案
- 脑脊液相关试题及答案
- T/CAEPI 64-2023固体回收燃料分类与分级
- DB62T 25-3016-2016 建筑工程资料管理规程
评论
0/150
提交评论