已阅读5页,还剩103页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章可编程逻辑器件 2 1可编程逻辑器件概述2 2低密度可编程逻辑器件 LDPLD 2 3复杂可编程逻辑器件 CPLD 2 4现场可编程门阵列 FPGA 器件2 5CPLD FPGA开发应用选择本章小结 1 2 1可编程逻辑器件概述2 1 1PLD的发展历程2 1 2PLD的分类2 1 3PLD的电路表示法 2 2 1 1PLD的发展历程 20世纪70年代 熔丝编程的PROM ProgrammableReadOnlyMemory 和PLA ProgrammableLogicArray 是最早出现的可编程逻辑器件 20世纪70年代末 AMD公司对PLA进行了改进 推出了PAL ProgrammableArrayLogic 器件 它由可编程的与阵列和固定的或阵列组成 是一种低密度 一次性可编程逻辑器件 20世纪80年代初 Lattice公司首先生产出了可电擦写的 比PAL使用更灵活的GAL GenericArrayLogic 器件 3 20世纪80年代中期 Xilinx公司提出了现场可编程的概念 同时生产出了世界上第一片FPGA FieldProgrammableGateArray 器件 同一时期 Altera公司推出了EPLD ErasablePLD 它比GAL具有更高的集成度 可以用紫外线或电擦除 20世纪80年代末 Lattice公司又提出了在系统可编程ISP InSystemProgrammability 的概念 并推出了一系列具有在系统可编程能力的CPLD ComplexPLD 器件 此后 其它PLD生产厂家都相继采用了ISP技术 4 进入20世纪90年代后 可编程逻辑器件的发展十分迅速 主要表现为三个方面 一是规模越来越大 二是速度越来越高 三是电路结构越来越灵活 电路资源更加丰富 目前 器件的可编程逻辑门数已达上千万门以上 可以内嵌许多种复杂的功能模块 如CPU核 DSP核 PLL 锁相环 等 可以实现单片可编程系统 SystemonProgrammableChip SoPC 5 2 1 2PLD的分类 1 按集成度分类集成度是集成电路一项很重要的指标 按照集成度可以将可编程逻辑器件分为两类 低密度可编程逻辑器件LDPLD LowDensityPLD 高密度可编程逻辑器件HDPLD HighDensityPLD 一般以芯片GAL22V10的容量来区分LDPLD和HDPLD 不同制造厂家生产的GAL22V10的密度略有差别 大致在500 750门之间 如果按照这个标准 PROM PLA PAL和GAL器件属于LDPLD EPLD CPLD和FPGA器件则属于HDPLD 6 2 按基本结构分类目前常用的可编程逻辑器件都是从与 或阵列和门阵列两种基本结构发展起来的 所以可以从结构上将其分成两大类器件 PLD器件和FPGA器件 这种分类方法将基本结构为与 或阵列的器件称为PLD器件 将基本结构为门阵列的器件称为FPGA器件 LDPLD PROM PLA PAL GAL EPLD CPLD的基本结构都是与 或阵列 FPGA则是一种门阵列结构 7 3 按编程工艺分类所谓编程工艺 是指在可编程逻辑器件中可编程元件的类型 按照这个标准 可编程逻辑器件又可分成五类 熔丝型 Fuse PLD 如早期的PROM器件 编程过程就是根据设计的熔丝图文件来烧断对应的熔丝 获得所需的电路 反熔丝型 Anti Fuse PLD 如OTP OneTimeProgramming 一次可编程 型FPGA器件 其编程过程与熔丝型PLD相类似 但结果相反 在编程处击穿漏层使两点之间导通 而不是断开 8 UVEPROM型PLD 即紫外线擦除 电气编程器件 Altera的Classic系列和MAX5000系列EPLD采用的就是这种编程工艺 E2PROM编程器件 即电可擦写编程器件 Altera的MAX7000系列和MAX9000系列以及Lattice的GAL器件 ispLSI系列CPLD都属于这一类器件 9 SRAM StaticRadomAccessMemory 静态随机存取存储器 型PLD 可方便快速的编程 也叫配置 但掉电后 其内容即丢失 再次上电需要重新配置 或加掉电保护装置以防掉电 大部分FPGA器件都是SRAM型PLD 如 Xilinx的FPGA 除XC8100系列 FlashMemory 快闪存储器 型PLD 又称快速擦写存储器 它在断电的情况下信息可以保留 FlashMemory既具有ROM非易失性的优点 又具有存取速度快 可读可写 具有集成度高 价格低 耗电省的优点 Atmel的部分低密度PLD Xilinx的XC9500系列CPLD采用这种编程工艺 10 除以上三种分类方法外 可编程逻辑器件还有其它的一些分类方法 如 按照制造工艺 可分为双极型和MOS型 还有人把可编程逻辑器件分为简单可编程逻辑器件SPLD SimplePLD 和复杂可编程逻辑器件CPLD 将FPGA也归于CPLD中 原则上 各种分类方法之间是相互联系 并行不悖的 在各类可编程逻辑器件中 目前大量生产和广泛应用的是以CPLD和FPGA为代表的HDPLD 它们都采用CMOS制造工艺 编程工艺大多采用SRAM或E2PROM 11 1 PLD连接法 固定连接 可编程连接 未连接 2 1 3PLD的电路表示法 图2 1PLD连接的表示方法 12 图2 2PLD缓冲器表示法 2 PLD缓冲器表示法 13 与 门 或 门 3 与门表示法 4 或门表示法 图2 3PLD与门表示法 图2 4PLD或门表示法 14 输入缓冲电路用以产生输入变量的原变量和反变量 并提供足够的驱动能力 5 PLD器件的基本结构 图2 5PLD基本结构框图 15 与 或阵列是用多个与门和或门构成的一种阵列结构 原则上任意组合逻辑电路都可以表示成与 或阵列的形式 图2 6 a 清楚地表明了一个不可编程的与阵列和一个可编程的或阵列 不难写出输出变量的逻辑表达式为 F1 A B m 0 1 3 F2 A B m 0 2 3 6 与 或阵列图 简化图如2 6 b 所示 16 图2 6函数F1和F2与 或阵列图 17 2 2低密度可编程逻辑器件 LDPLD 2 2 1可编程只读存储器 PROM 2 2 2可编程逻辑阵列 PLA 器件2 2 3可编程阵列逻辑 PAL 器件2 2 4通用阵列逻辑 GAL 器件 18 19 000 001 010 111 连接点编程时 需画一个叉 2 2 1PROM 19 例2 1 试用适当容量的PROM实现两个两位二进制数比较的比较器 1 两个两位二进制数分别为A1A0和B1B0 当A1A0大于B1B0时 F1 1 A1A0等于B1B0时 F2 1 A1A0小于B1B0时 F3 1 下表给出了两位二进制数比较结果的输入输出对照表 20 由此可写出输出逻辑函数的最小项表达式为 F1 m 4 8 9 12 13 14 F2 m 0 5 10 15 F3 m 1 2 3 6 7 11 2 把A1A0和B1B0作为PROM的输入信号 F1 F2和F3为或阵列的输出 下图是用PROM实现比较器的阵列图 21 3 选用PROM的容量16 3位可满足要求 可见 以PROM实现简单的组合逻辑电路函数是很方便的 实际上 大多数组合逻辑函数的最小项不超过40个 使得PROM芯片的面积利用率不高 功耗增加 一般PROM输入地址线较多 容量也较大 又因为PROM的与阵列固定 必须进行全译码 产生全部的最小项 为解决这一问题 考虑与阵列也设计成可编程形式来实现组合逻辑 由这一设想发明了可编程逻辑阵列 PLA 22 为了提高对芯片的利用率 在PROM的基础上又开发出了一种与阵列 或阵列都可以编程的PLD 可编程逻辑阵列PLA 这样 与阵列输出的乘积项不必一定是最小项 在采用PLA实现组合逻辑函数时可以运用逻辑函数经过化简后的最简与 或式 而且与阵列输出的乘积项的个数也可以小于2n n为输入变量的个数 从而减小了与阵列的规模 2 2 2PLA 23 PLA的规模通常用输入变量数 乘积项的个数和或阵列输出信号数这三者的乘积来表示 例如一个16 48 8的PLA 就表示它有16个输入变量 与阵列可以产生48个乘积项 或阵列有8个输出端 按照输出方式 PLA可以分成两类 一类PLA以时序方式输出 在这类PLA的输出电路中除了输出缓冲器以外还有触发器 适用于实现时序逻辑 称为时序逻辑PLA 另一类PLA以组合方式输出 在这类PLA中不含有触发器 适用于实现组合逻辑 称为组合逻辑PLA PLA的输出电路一般是不可编程的 但有些型号的PLA器件在每一个或门的输出端增加了一个可编程的异或门 以便于对输出信号的极性进行控制 如图2 14所示 当编程单元为1时 或阵列输出S与经过异或门以后的输出Y同相 当编程单元为0时 S与Y反相 24 PLA的阵列结构 图例 25 半加器的实现 图2 10用PROM完成半加器逻辑阵列 图2 11用PLA完成半加器逻辑阵列 26 图2 12PLA的异或输出结构 27 例2 2试用组合逻辑PLA实现从四位自然二进制代码到格雷码的转换 解四位自然二进制代码转换为格雷码的真值表如表2 2所示 28 在一组数的编码中 若任意两个相邻的代码只有一位二进制数不同 则称这种编码为格雷码 GrayCode 另外由于最大数与最小数之间也仅一位数不同 即 首尾相连 因此又称循环码或反射码 在数字系统中 常要求代码按一定顺序变化 例如 按自然数递增计数 若采用8421码 则数0111变到1000时四位均要变化 而在实际电路中 4位的变化不可能绝对同时发生 则计数中可能出现短暂的其它代码 1100 1111等 在特定情况下可能导致电路状态错误或输入错误 使用格雷码可以避免这种错误 格雷码有多种编码形式 29 表2 2四位自然二进制代码和格雷码的转换表 30 采用PLA实现组合逻辑函数时 必须先对逻辑函数进行化简 以提高对芯片的利用率 对多输出逻辑函数进行化简时要注意合理使用逻辑函数之间的公共项 使乘积项的总数最小 经过逻辑函数化简 可以得到 31 图2 13二进制码转换为格雷码PLA结构图 32 可编程阵列逻辑PAL的主要部分仍然是与 或阵列 其中与阵列可根据需要进行编程 一般采用熔丝编程工艺 而或阵列是固定的 与阵列的可编程性保证了与门输入变量的灵活性 而或阵列固定使器件得以简化 进一步提高了对芯片的利用率 与PLA相比 PAL是一种更加有效的PLD结构 它被后来发展起来的许多PLD所采用 2 2 3PAL 33 图2 14PAL基本电路结构 1 PAL的基本结构 34 图2 15编程后的PAL器件结构图 35 2 PAL的输出和反馈结构 专用输出的基本门阵列 输出端只能输出信号 不能兼作输入 只能实现组合逻辑函数 目前常用的产品有PAL10H8 PAL10L8等 图2 16PAL的专用输出结构 36 可编程I O结构 输出端有一个三态缓冲器 三态门受一个乘积项的控制 当三态门禁止 输出呈高阻状态时 I O引脚作输入用 当三态门被选通时 I O引脚作输出用 图2 17异步可编程I O结构 37 寄存器输出结构 输出端有一个D触发器 在使能端的作用下 触发器的输出信号经三态门缓冲输出 能记忆原来的状态 从而实现时序逻辑功能 另外 该结构中D触发器受系统时钟控制 三态缓冲器受同一系统使能信号控制 所以这种结构容易实现同步控制 图2 18寄存 时序 输出结构 38 异或结构 输出部分有两个或门 它们的输出经异或门后再经D触发器和三态缓冲器输出 这种结构便于对与或逻辑阵列输出的函数求反 还可以实现对寄存器状态进行维持操作 适用于实现计数器及状态 A 0 A A 1 A 图2 19异或结构 39 算术选通反馈结构 这种结构是在异或结构的基础上加入反馈选通电路 该电路可以对反馈信号A和输入信号B进行逻辑运算 产生4种不同形式的或门输出分别为 A B A B A B 和 A B 图2 20算术选通反馈结构 40 3 PAL器件的命名方法 生产厂家对PAL器件的命名 前面一般还有厂家的标志 代表制造工艺 空白代表TTL C代表CMOS 代表PAL器件的最大阵列输入数 代表输出电路类型 如H代表高电平输出有效 R代表带寄存器输出 代表最大的组合输出端数目或最大的寄存器数目 表示器件功耗级别 速度等级 封装形式等信息 41 4 PAL器件编号 表2 3常用PAL器件编号 42 5 PAL器件的应用 例2 3用PAL器件实现四位二进制码转换为四位循环码 解设B3 B2 B1和B0为输入 G3 G2 G1和G0是四位循环码的输出 表2 4给出了四位二进制码到四位循环码的转换表 可写出G3 G2 G1和G0的表达式为 43 表2 4四位二进制码到四位循环码转换表 44 图2 23PAL14H4实现四位二进制码到四位循环码转换图 45 二十世纪八十年代初 Lattice公司推出了通用阵列逻辑GAL GenericAriayLogic 采用E2CMOS工艺 可以反复修改和再编程 GAL器件在可编程阵列逻辑的基础上 增加了输出逻辑宏单元OLMC OutputLogicMacroCell 使得GAL的特性和使用灵活性大大优于PAL和PLA 成为目前使用最广泛的简单PLD器件 典型的GAL器件有两类 一类是与阵列可编程 或阵列固定的电路结构 如GAL16V8和GAL20V8 本节主要介绍GAL16V8 另一类GAL器件的与阵列和或阵列均可编程 是一种新型的GAL器件 如GAL39V18 2 2 2通用阵列逻辑GAL 46 具有可编程与阵列和固定或阵列的GAL器件 具有输出逻辑宏单元 OutputLogicMacroCell 简记为OLMC 是GAL器件的特征 GAL具有比PAL或PLA更为灵活的应用特性的能力 GAL16V8共有8个可编程输入 2 9 和8个可编程输入输出 12 18 47 2 输出逻辑宏单元OLMC OLMC由一个八输入的或门 一个异或门 一个触发器 四个多路选择开关和一些控制逻辑组成 OLMC 48 图2 25GAL器件输出逻辑宏单元 OLMC 49 图2 26GAL16V8的结构控制字组成 3 结构控制字 50 输出逻辑宏单元的工作模式表2 7OLMC的工作模式 51 OLMC的工作模式如表2 7所列出的5种 1 寄存器输出模 SYN 0 AC0 1 AC1 n 0 图10 5 4寄存器输出模式 2 时序电路中的组合输出模式 SYN 0 AC0 AC1 n 1 3 选通组合输出模式 SYN AC0 AC1 n 1 4 专用组合输出模式 SYN 1 AC0 AC1 n 0 5 专用输入模式 SYN 1 AC0 0 AC1 n 1 52 53 寄存器输出模式 54 复合模式下OLMC只有一种结构 即组合输入 输出结构 见上图所示 这种模式适用于实现三态门的输入 输出缓冲器等双向组合逻辑电路 这一结构与寄存器模式下输入 输出结构有些相似 但二者有以下区别 第一 复合模式下OLMC无公共时钟和公共选通 这两个引脚作为输入使用 第二 寄存器模式下可选择两种结构之一 而复合模式下只有一种结构 第三 寄存器模式下组合输入 输出结构可以配置在任意引脚 其OLMC结构完全相同 而复合模式下 不同引脚的OLMC结构不尽相同 55 选通组合专用组合 56 57 58 专用输入 59 60 61 寄存器模式下的输出逻辑宏单元包括 1 寄存器输出 2 组合输入 输出 任何一个OLMC都可以独立配置成上述两种结构中的一种 寄存器输出结构上图所示 图中 时钟CK和输出选通CE是公共的 分别连接到公共时钟引脚1和公共选通引脚11 由时钟信号CK将组合逻辑输入打入寄存器 并由OE选通三态门进行输出 组合输入 输出结构上图所示 OLMC中输出三态门受与阵列控制 可以编程为使能 禁止三态门 从而确定I O引脚的输入 输出功能 当8个OLMC都配置成输入 输出结构时 由于没有使用寄存器 该器件实现的是纯组合逻辑 此时公共时钟引脚CK和公共选通引脚没有任何逻辑功能 62 4 GAL编程单元的行地址映射图 图2 28是GAL16V8的编程单元行地址映射图 它表明了在GAL16V8中编程单元的地址分配和功能划分 编程是逐行进行的 编程数据在编程系统的控制下串行输入到64位移位寄存器中 每装满一次就向编程单元写入一行数据 第0 31行是与阵列的编程单元 每行有64位 编程后可以产生64个乘积项 第32行为芯片的电子标签 也有64位 用户可以在这里存放器件的编号 电路编号 编程日期 版本号等信息 以备查询 63 第33 59行是生产厂家保留的空间 用户不能使用 第60行是一个82位的结构控制字 用于控制OLMC的工作模式和乘积项的禁止 第61行是一位加密单元 加密单元被编程后 与阵列中的编程数据不能被更改或读出 从而使设计成果得以保护 只有当整个芯片的编程数据被擦除时 加密单元才同时被擦除 但是电子标签不受加密单元的保护 第62行是一位保留位 第63行是一个整体擦除位 编程系统对这一位进行擦除将导致整个芯片中所有的编程单元都被擦掉 64 图2 28GAL16V8行地址图 65 5 GAL是继PAL之后具有较高性能的PLD 和PAL相比 具有以下特点 有较高的通用性和灵活性 它的每个逻辑宏单元可以根据需要任意组态 既可实现组合电路 又可实现时序电路 2 100 可编程 GAL采用浮栅编程技术 使与阵列以及逻辑宏单元可以反复编程 当编程或逻辑设计有错时 可以擦除重新编程 反复修改 直到得到正确的结果 因而每个芯片可100 编程 3 100 可测试 GAL的宏单元接成时序状态 可以通过测试软件对它们的状态进行预置 从而可以随意将电路置于某一状态 以缩短测试过程 保证电路在编程以后 对编程结果100 可测 4 高性能的E2COMS工艺 GAL具有高速度 低功耗的特点 并且编程数据可保存20年以上 正是由于这些良好的特性 使GAL器件成为数字系统设计的初期理想器件 66 对GAL编程是设计电路的最后一个环节 除了对与阵列编程之外 还要对逻辑宏单元进行编程 以达到预定的输出逻辑关系 目前GAL的编程方法有两种 一种是早期的GAL器件编程需要使用专门的编程器 将需要编程的GAL器件插入编程器进行编程 然后将编程后的GAL器件连接在电路中的系统 另一种是新一代的GAL器件 可以脱离开编程器 直接在设计者的电路系统上编程 这样应当具备GAL编程的开发系统 软件开发平台和硬件编程设备 而软件平台是不可缺少的 67 另一类是编译软件 如Synario软件平台 这类软件的特点是待实现的逻辑电路由设计者根据软件平台规定的图形输入文件或可编程逻辑设计语言编写的语言输入文件进行描述 然后软件平台对设计者的电路描述进行转换 分析 简化 模拟仿真 自动进行错误定位等 GAL的开发软件有许多种 大体上分为两类 一类是汇编型软件 如FM 这类软件没有简化功能 要求输入文件采用最简与或式的逻辑描述方式 GAL器件仍然存在着以下问题 时钟必须共用 或的乘积项最多只有8个 GAL器件规模小 达不到单片内集成一个数字系统的要求 尽管GAL器件有加密的功能 但随着解密技术的发展 对于这种阵列规模小的可编程逻辑器件解密已不是难题 68 目前生产CPLD的厂家有很多 各种型号的CPLD在结构上也都有各自的特点和长处 但概括起来 它们都是由三大部分组成的 即可编程逻辑块 构成CPLD的主体部分 输入 输出块和可编程互连资源 用于逻辑块之间以及逻辑块与输入 输出块之间的连接 如图2 29所示 2 3复杂可编程逻辑器件 CPLD 69 图2 29CPLD的一般结构 70 CPLD的这种结构是在GAL的基础上扩展 改进而成的 尽管它的规模比GAL大得多 功能也强得多 但它的主体部分 可编程逻辑块仍然是基于乘积项 即 与 或阵列 的结构 因而将其称为阵列扩展型HDPLD 扩展的方法并不是简单地增大与阵列的规模 因为这样做势必导致芯片的利用率下降和电路的传输时延增加 所以CPLD采用了分区结构 即将整个芯片划分成多个逻辑块和输入 输出块 每个逻辑块都有各自的与阵列 逻辑宏单元 输入和输出等 相当于一个独立的SPLD 再通过一定方式的全局性互连资源将这些SPLD和输入 输出块连接起来 构成更大规模的CPLD 简单地讲 CPLD就是将多个SPLD集成到一块芯片上 并通过可编程连线实现它们之间的连接 71 就编程工艺而言 多数的CPLD采用E2PROM编程工艺 也有采用FlashMemory编程工艺的 下面以Altera公司生产的MAX7000系列为例 介绍CPLD的电路结构及其工作原理 MAX7000在Altera公司生产的CPLD中是速度最快的一个系列 包括MAX7000E MAX7000S MAX7000A三种器件 集成度为600 5000个可用门 32 256个宏单元和36 155个可用I O引脚 它采用CMOS制造工艺和E2PROM编程工艺 并可以进行在系统编程 72 图2 30所示为MAX7000A的电路结构 它主要由逻辑阵列块LAB LogicArrayBlock I O控制块和可编程互连阵列PIA ProgrammableInterconnectArray 三个部分构成 另外 MAX7000A结构中还包括4个专用输入 它们既可以作为通用逻辑输入 也可以作为高速的全局控制信号 1个时钟信号 1个清零信号和两个输出使能信号 73 图2 30MAX7000A的电路结构图 74 1 逻辑阵列块LABMAX7000A的主体是通过可编程互连阵列PIA连接在一起的 高性能的 灵活的逻辑阵列块 每个LAB由16个宏单元组成 输入到每个LAB的有如下信号 来自于PIA的36个通用逻辑输入 全局控制信号 时钟信号 清零信号 从I O引脚到寄存器的直接输入通道 用于实现MAX7000A的最短建立时间 LAB的输出信号可以同时馈入PIA和I O控制块 75 2 宏单元 MAX7000A的宏单元如图2 29所示 它包括与阵列 乘积项选择阵列以及由一个或门 一个异或门 一个触发器和4个多路选择器构成的OLMC 不难看出 每一个宏单元就相当于一片GAL 1 与阵列 乘积项选择矩阵与阵列用于实现组合逻辑 每个宏单元的与阵列可以提供5个乘积项 乘积项选择矩阵分配这些乘积项作为 或门 或 异或门 的输入 以实现组合逻辑函数 或者作为触发器的控制信号 清零 置位 使能和时钟 76 图2 31MAX7000A的宏单元 77 3 扩展乘积项尽管大多数逻辑函数可以用一个宏单元的5个乘积项来实现 但在某些复杂的函数中需要用到更多的乘积项 这样就必须利用另外的宏单元 虽然多个宏单元也可以通过PIA连接 但AX7000A允许利用扩展乘积项 从而保证用尽可能少的逻辑资源实现尽可能快的工作速度 扩展乘积项有两种 共享扩展项和并联扩展项 在每一个宏单元的与阵列所提供的5个乘积项中 都可以有一个乘积项经反相后反馈回与阵列 这个乘积项就被称为共享扩展项 这样每个LAB最多可以有16个共享扩展项被本LAB的任何一个宏单元所使用 图2 32表明了共享扩展项是如何馈送到多个宏单元的 78 图2 32MAX7000A的共享扩展项 79 并联扩展项是指在一些宏单元中没有被使用的乘积项 并且可以被直接馈送到相邻的宏单元的或逻辑以实现复杂的逻辑函数 在使用并联扩展项时 或门最多允许20个乘积项直接输入 其中5个乘积项由本宏单元提供 另外15个乘积项是由本LAB中相邻的宏单元提供的并联扩展项 在MAX7000A的LAB中 16个宏单元被分成两组 每组有8个宏单元 即一组为1 8 另一组为9 16 从而在LAB中形成两条独立的并联扩展项借出 借入链 一个宏单元可以从与之相邻的较小编号的宏单元中借入并联扩展项 而第1 9个宏单元只能借出并联扩展项 第8 16个宏单元只能借入并联扩展项 图2 30 b 表明了并联扩展项是如何从相邻宏单元借用的 80 图2 33MAX7000A的并联扩展项 81 3 输入 输出控制块输入 输出控制块 I OControlBlock 的结构如图2 34所示 I O控制块允许每一个I O引脚单独地配置成输入 输出或双向工作方式 所有的I O引脚都有一个三态输出缓冲器 可以从6 10个全局输出使能信号中选择一个信号作为其控制信号 也可以选择集电极开路输出 输入信号可以馈入PIA 也可以通过快速通道直接送到宏单元的触发器 82 图2 34MAX7000A的I O控制块结构 83 可编程的I O单元 能兼容TTL和CMOS多种接口和电压标准可配置为输入 输出 双向 集电极开路和三态等形式能提供适当的驱动电流降低功耗 防止过冲和减少电源噪声支持多种接口电压 降低功耗 1 2 0 5um 5V0 35um 3 3V0 25um internal2 5V I O3 3V0 18um internal1 8V I O2 5Vand3 3V 84 4 可编程互连阵列PIA通过可编程互连阵列可以将多个LAB和I O控制块连接起来构成所需要的逻辑 MAX7000A中的PIA是一组可编程的全局总线 它可以将馈入它的任何信号源送到整个芯片的各个地方 图2 35表明了馈入到PIA的信号是如何送到LAB的 每个可编程单元控制一个2输入的与门 以从PIA选择馈入LAB的信号 多数CPLD中的互连资源都有类似于MAX7000A的PIA的这种结构 这种连接线最大的特点是能够提供具有固定时延的通路 也就是说信号在芯片中的传输时延是固定的 可以预测的 所以将这种连接线称为确定型连接线 85 图2 35MAX7000A的PIA布线示意图 86 与前面介绍过的几种PLD器件不同 现场可编程门阵列FPGA的主体不再是与 或阵列 而是由多个可编程的基本逻辑单元组成的一个二维矩阵 围绕该矩阵设有I O单元 逻辑单元之间以及逻辑单元与I O单元之间通过可编程连线进行连接 因此 FPGA被称为单元型HDPLD 而由于基本逻辑单元的排列方式与掩膜可编程的门阵列GA类似 所以沿用了门阵列这个名称 就编程工艺而言 多数的FPGA采用SRAM编程工艺 也有少数的FPGA采用反熔丝编程工艺 2 4现场可编程门阵列 FPGA 器件 87 88 查找表原理 一个N输入查找表 LUT LookUpTable 可以实现N个输入变量的任何逻辑功能 如N输入 与 N输入 异或 等 输入多于N个的函数 方程必须分开用几个查找表 LUT 实现 88 89 查找表原理 续 89 下面主要以Xilinx公司的第三代FPGA产品 XC4000系列为例 介绍FPGA的电路结构和工作原理 Xilinx公司FPGA的基本结构如图2 36所示 它主要由三部分组成 可配置逻辑块CLB ConfigurableLogicBlock 可编程输入 输出块IOB Input OutputBlock 和可编程互连PI ProgrammableInterconnect 整个芯片的逻辑功能是通过对芯片内部的SRAM编程确定的 90 91 图2 36FPGA的基本结构 91 1 可配置逻辑块CLBCLB是FPGA实现各种逻辑功能的基本单元 图2 37为XC4000E中CLB的简化结构框图 它主要由快速进位逻辑 3个逻辑函数发生器 2个D触发器 多个可编程数据选择器以及其它控制电路组成 CLB共有13个输入和4个输出 在13个输入中 G1 G4 F1 F4为8个组合逻辑输入 K为时钟信号 C1 C4是4个控制信号 它们通过可编程数据选择器分配给触发器时钟使能信号EC 触发器置位 复位信号SR H0 直接输入信号DIN H2及信号H1 在4个输出中 X Y为组合输出 XQ YQ为寄存器 控制信号输出 92 图2 37XC4000E的CLB结构图 93 1 逻辑函数发生器这里所谓的逻辑函数发生器 在物理结构上实际就是一个2n 1位的SRAM 它可以实现任何一个n变量的组合逻辑函数 因为只要将n个输入变量作为SRAM的地址 把2n个函数值存到相应的SRAM单元中 那么SRAM的输出就是逻辑函数 通常将逻辑函数发生器的这种结构称为查找表LUT LookUpTable 94 在XC4000E系列的CLB中共有3个函数发生器 它们构成一个二级电路 在第一级中是两个独立的4变量函数发生器 它们的输入分别为G1 G4和F1 F4 输出分别为G 和F 在第二级中是一个3变量的函数发生器 它的输出为H 其中一个输入为H1 另外两个输入可以从SR H0和G DIN H2和F 中各选一个信号 组合逻辑函数G 或H 可以从Y直接输出 F 或H 可以从X直接输出 这样 一个CLB可以实现高达9个变量的逻辑函数 95 2 触发器在XC4000E系列的CLB中有两个边沿触发的D触发器 它们与逻辑函数发生器配合可以实现各种时序逻辑电路 触发器的激励信号可以通过可编程数据选择器从DIN G F 和H 中选择 对于两个触发器共用时钟K和时钟使能信号EC来说 任何一个触发器都可以选择在时钟的上升沿或下降沿触发 也可以单独选择时钟使能为EC或1 即永久时钟使能 两个触发器还有一个共用信号 置位 复位信号SR 它可以被编程为对每个触发器独立的复位或置位信号 另外 每个触发器还有一个全局的复位 置位信号 图2 34中未画出 用来在上电或配置时将所有的触发器置位或清除 96 3 快速进位逻辑为了提高FPGA的运算速度 在CLB的两个逻辑函数发生器G和F之前还设计了快速进位逻辑电路 如图2 38所示 例如 函数发生器G和F可以被配置成2位带进位输入和进位输出的二进制数加法器 如果将多个CLB通过进位输入 输出级连起来 还可以扩展到任意长度 为了连接方便 在XC4000E系列的快速进位逻辑中设计了两组进位输入 输出 使用时只选择其中的一组 这样在FPGA的CLB之间就形成了一个独立于可编程连接线的进位 借位链 97 图2 38快速进位逻辑电路 98 2 可编程输入 输出块IOB 图2 39XC4000E的IOB结构图 99 IOB中有输入 输出两条通路 当引脚用作输入时 外部引脚上的信号经过输入缓冲器 可以直接由I1或I2进入内部逻辑 也可以经过触发器后再进入内部逻辑 当引脚用作输出时 内部逻辑中的信号可以先经过触发器 再由输出三态缓冲器送到外部引脚上 也可以直接通过三态缓冲器输出 通过编程 可以选择三态缓冲器的使能信号为高电平或低电平有效 还可以选择它的摆率 电压变化的速率 为快速或慢速 快速方式适合于频率较高的信号输出 慢速方式则有利于减小噪声 降低功耗 对于未用的引脚 还可以通过上拉电阻接电源或通过下拉电阻接地 避免受到其它信号的干扰 输入通路中的触发器和输出通路的触发器共用一个时钟使能信号 而它们的时钟信号是独立的 都可以选择上升沿或下降沿触发 100 3 可编程互连PI可编程互连PI资源分布于C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司冷却筛分工工艺技术规程
- 井下采矿工班组管理水平考核试卷含答案
- 《危险化学品仓库储存通则》GB15603-2022的解读
- 消防设施共用责任划分协议书范本
- 河北省保定市曲阳县2023-2024学年五年级上学期语文期末调研试卷(含答案)
- 汽车制造业公差分析实施要点
- 湖北省荆州市2025-2026学年高三年级上册9月开学考试生物试题
- 河南省平顶山市2026届九年级上学期第一次月考历史试卷(含答案)
- 河南省2025-2026学年高一年级上册第二次联考数学试卷(含解析)
- 河北省职业院校“新材料智能生产与检验”(中职组)技能大赛考试题库(含答案)
- 护理不良事件的处理及上报流程
- 桥梁桩基施工管理办法
- 恶性肿瘤日间诊疗专家共识
- 医院信息安全管理制度培训
- tnm评估管理制度
- 国企招投标管理制度
- 口腔大出血急救
- 人工智能赋能心理健康教育
- 沥青站材料管理制度
- 供水公司笔试试题及答案
- (高清版)DB33∕T 1191-2020 暴雨强度计算标准
评论
0/150
提交评论