VHDL 第二章 PLD_第1页
VHDL 第二章 PLD_第2页
VHDL 第二章 PLD_第3页
VHDL 第二章 PLD_第4页
VHDL 第二章 PLD_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

2 1概述 组合电路 输出总是当前输入状态的函数 时序电路 输出是当前系统状态与当前输入状态的函数 它含有存储元件 组合电路 可以用 与门一或门 二级电路实现 时序电路 可由组合电路加上存储元件 即锁存器 触发器 RAM 构成的 2 1 1PLD发展 70年代 80年代 90年代 PROM和PLA器件 改进的PLA器件 GAL器件 FPGA器件 EPLD器件 CPLD器件 内嵌复杂功能模块的SoPC 3 1 2可编程逻辑器件的分类 按集成度 PLD 分类 从结构上分 1 乘积项结构器件 其基本结构为 与一或阵列 的器件 大部分简单PLD和CPLD都属于这个范畴 2 查找表结构器件 由简单的查找表组成可编程门 再构成阵列形式 FPGA是属于此类器件 从编程工艺上分 l 熔丝 Fuse 型器件 2 反熔丝 Anti fuse 型器件 3 EPROM型 4 EEPROM型 5 SRAM型 6 Flash型 在习惯上还有另一种分类 对于单个可编程器件 按掉电后重新上电能否保持编程的逻辑分 可以保持的称为CPLD 不能保持的称为FPGA 2 2简单PLD原理 3 2 1电路符号表示 常用逻辑门符号与现有国标符号的对照 2 2 1电路符号表示 图3 4PLD的互补缓冲器图3 5PLD的互补输入图3 6PLD中与阵列表示 图3 7PLD中或阵列的表示图3 8阵列线连接表示 2 2 2PROM PROM基本结构 译码输出的逻辑函数 逻辑函数表示 2 2 2PROM 显然可以认为是一个或阵列 或阵列可编程 与阵列不可编程 结合上述两个分析结果 可以把PROM的结构表示为 2 2 2PROM 图2 11PROM表达的PLD图阵列 图2 12用PROM完成半加器逻辑阵列 2 2 3PLA PROM实现组合逻辑函数在输入变量增多时 PROM的存储单元利用效率大大降低 PROM的与阵列是全译码器 产生了全部最小项 在实际应用时 绝大多数组合逻轼函数并不需要所有的最小项 可编程逻辑阵列PLA对PROM进行了改进 PROM的或阵列可编程 与阵列不可编程 PLA则是与阵列和或阵列都可编程 图2一13是PLA的阵列图表示 图3 13PLA逻辑阵列示意图 任何组合函数都可以采用PLA来实现 由于与阵列不采用全译码的方式 标准的与或表达式己不适用 因此需要把逻辑函数化成最简的与或表达式 然后用可编程的与阵列构成与项 用可编程的或阵列构成与项的或运算 在有多个输出时 要尽量利用公共的与项 以提高阵列的利用率 PLA与PROM的比较 2 2 4PAL PLA的利用率很高 但是与阵列 或阵列都可编程的结构 造成软件算法过于复杂 运行速度下降 在PLA后又设计了另外一种可编程器件 可编程阵列逻辑 PAL PAL的结构与PLA相似 也包含与阵列 或阵列 但是或阵列是固定的 只有与阵列可编程 图2 15PAL结构图2 16PAL的常用表示 PAL加上了输出寄存器单元后 就实现了时序电路的可编程PAL16V8的部分结构图 2 2 5GAL PAL一般采用熔丝工艺生产 一次可编程 修改不方便 在中小规模可编程应用领域 PAL已经被GAL取代 GAL即通用阵列逻辑器件 GAL采用了EEPROM工艺 具有电可擦除重复编程的特点 彻底解决了熔丝型可编程器件的一次可编程问题 GAL在 与一或 阵列结构上沿用了PAL的与阵列可编程 或阵列固定的结构 但对PAL的输出I O结构进行了较大的改进 在GAL的输出部分增加了输出逻辑宏单元OLMC OutputMacroCell 逻辑宏单元 输入 输出口 输入口 时钟信号输入 三态控制 可编程与阵列 固定或阵列 GAL16V8 寄存器输出结构 寄存器模式组合双向输出结构 2 2 5GAL 组合输出双向结构 复合型组合输出结构 2 2 5GAL 反馈输入结构 输出反馈结构 2 2 5GAL 简单模式输出结构 2 2 5GAL 2 3 1CPLD的基本结构早期的CPLD主要用来替代PAL器件 所以其结构与PAL GAL基本相同 采用了可编程的与阵列和固定的或阵列结构 再加上一个全局共享的可编程与阵列 把多个宏单元连接起来 并增加了I O控制模块的数量和功能 可以把CPLD的基本结构看成由逻辑阵列宏单元和I O控制模块两部分组成 2 3复杂可编程逻辑器件 CPLD PLD的总体结构 以MAX7000为例 分为三块结构 宏单元 Marocell 可编程连线 PIA 和I O控制块 宏单元是PLD的基本结构 由它来实现基本的逻辑功能 图中兰色部分是多个宏单元的集合 因为宏单元较多 没有一一画出 可编程连线负责信号传递 连接所有的宏单元 I O控制块负责输入输出的电气特性控制 比如可以设定集电极开路输出 摆率控制 三态输出等 图1左上的INPUT GCLK1 INPUT GCLRn INPUT OE1 INPUT OE2是全局时钟 清零和输出使能信号 这几个信号有专用连线与PLD中每个宏单元相连 信号到每个宏单元的延时相同并且延时最短 宏单元的具体结构 左侧是乘积项阵列 实际就是一个与或阵列 每一个交叉点都是一个可编程熔丝 如果导通就是实现 与 逻辑 后面的乘积项选择矩阵是一个 或 阵列 两者一起完成组合逻辑 图右侧是一个可编程D触发器 它的时钟 清零输入都可以编程选择 可以使用专用的全局清零和全局时钟 也可以使用内部逻辑 乘积项阵列 产生的时钟和清零 如果不需要触发器 也可以将此触发器旁路 信号直接输给PIA或输出到I O脚 在较早的CPLD中 由结构相同的逻辑阵列组成宏单元模块 一个逻辑阵列单元的基本结构如图2 1所示 输入项由专用输入端和I O端组成 而来自I O端口的输入项 可通过I O结构控制模块的反馈选择 可以是I O端信号的直接输入 也可以是本单元输出的内部反馈 所有输入项都经过缓冲器驱动 并输出其输入的原码及补码 图2 1中所有竖线为逻辑单元阵列的输入线 每个单元各有9条横向线 称为积项线 或称为乘积项 在每条输入线和积项线的交叉处设有一个EPROM单元进行编程 以实现输入项与乘积项的连接关系 这样使得逻辑阵列中的与阵列是可编程的 其中 8条积项线用作或门的输入 构成一个具有 个积项和的组合逻辑输出 另一条积项线 OE线 连到本单元的三态输出缓冲器的控制端 以I O端作输出 输入或双向输出等工作方式 1 逻辑阵列宏单元 图2 1逻辑阵列单元结构图 可以看出 早期CPLD中的逻辑阵列结构与PAL GAL中的结构极为类似 只是用EPROM单元取代了PAL中的熔丝和GAL中的E2PROM单元 和GAL器件一样 可实现擦除和再编程功能 在基本结构中 每个或门有固定乘积项 8个 也就是说 逻辑阵列单元中的或阵列是固定的 不可编程的 因而这种结构的灵活性差 据统计 实际工作中常用到的组合逻辑 约有70 是只含3个乘积项及3个以下的积项和 另一方面 对遇到复杂的组合逻辑所需的乘积项可能超过8个 这又要用两个或多个逻辑单元来实现 器件的资源利用率不高 为此 目前的CPLD在逻辑阵列单元结构方面作了很大改进 下面讨论几种改进的结构形式 1 乘积项数目不同的逻辑阵列单元图2 2所示是一个具有12个专用输入端和10个I O端的CPLD 共有10个逻辑阵列单元 分成5个逻辑单元对 各对分别由不同数量的乘积项组成 由图2 2可见 中间的逻辑单元对可实现16个积项和的组合逻辑输出 最外侧的逻辑单元对由8个乘积项组成 其余3对分别由10 12 14个乘积项组成 从而可实现更为复杂的逻辑功能 各逻辑单元中另有一条积项线作输出三态缓冲器的控制 具有这种结构的代表产品为Atmel公司的AT220V10 器件 图2 2积项线数不同的逻辑阵列单元 2 具有两个或项输出的逻辑阵列单元图2 3是具有两个固定积项和输出的CPLD的结构图 由图可见 每个单元中含有两个或项输出 而每个或项均有固定的4个乘积项输入 为提高内部各或项的利用率 每个或项的输出均先送到一个由EPROM单元可编程控制的1分2选择电路 即阵列单元中上面的或项输出由选择电路控制 既可输送到本单元中第2级或门的输入端 也可馈送到相邻的下一个阵列单元第2级或门的输入端 同样 阵列单元中下面的或项输出由选择电路控制 可直接送到本单元第2级或门的输入端 也可馈送到相邻的前一个阵列单元中的第2级或门输入端 使本单元不用的或项放到另一单元中发挥其作用 因而每个逻辑阵列单元又可共享相邻单元中的乘积项 使每个阵列可具有4 8 12和16四种组合的积项和输出 甚至本单元中的两个或项都可用于相邻的两个单元中 这样 既提高了器件内部各单元的利用率 又可实现更为复杂的逻辑功能 以这种逻辑单元结构实现的EPLD有Actel公司的EP512器件等 图2 3具有两个固定积项和输出的结构图 在Atmel公司的ATV750等器件结构调整中 每个逻辑单元中也含有两个或项 但不同单元中构成或项的积项数却不同 它是分别由4 5 6 7和8个乘积项输入到两个或门所组成的 对阵列单元构成的组合阵列 每个单元中的两个或项输出通过输出逻辑模块中的选择电路控制 可实现各自独立的输出 也可将两个或项再 线或 起来实现功能更为复杂的组合逻辑输出 但各个阵列单元中的或项不能为相邻的阵列单元所共享 3 功能更多 结构更复杂的逻辑阵列单元随着集成规模和工艺水平的提高 出现了大批结构复杂 功能更多的逻辑阵列单元形式 如Altera公司的EP1810器件采用了全局总线和局部总线相结合的可编程逻辑宏单元结构 采用多阵列矩阵 MAX MultipleArrayMatrix 结构的大规模CPLD器件 如Altera公司的EPM系列和Atmel公司的ATV5000系列器件 采用通用互连矩阵 UIM UniversalInterconnectMatrix 及双重逻辑功能块结构的逻辑阵列单元 如Xilinx公司的XC7000和XC9500系列产品 2 I O控制模块CPLD中的I O控制模块 根据器件的类型和功能不同 可有各种不同的结构形式 但基本上每个模块都由输出极性转换电路 触发器和输出三态缓冲器三部分及与它们相关的选择电路所组成 下面介绍在CPLD中广泛采用的几种I O控制模块 1 与PAL器件相兼容的I O模块如图2 4所示 可编程逻辑阵列中每个逻辑阵列逻辑单元的输出都通过一个独立的I O控制模块接到I O端 通过I O控制模块的选择实现不同的输出方式 根据编程选择 各模块可实现组合逻辑输出和寄存器输出方式 图2 4与PAL兼容的CPLD的I O控制模块结构 2 与GAL器件相兼容的I O模块 输出宏单元如图2 5所示 从逻辑阵列单元输出的积项和首先送到输出宏单元 OMC OutputMacroCell 的输出极性选择电路 由EPROM单元构成的可编程控制位来选择该输出极性 原码或它的补码 每个OMC中还有由EPROM单元构成的两个结构控制位 根据构形单元表 OMC可实现如图2 6所示的4种不同的工作方式 图2 5OMC结构图 图2 6OMC的4种不同的工作方式 3 触发器可编程的I O模块为了进一步改善I O控制模块的功能 对I O模块中的触发器电路进行改进并由EPROM单元进行编程 可实现不同类型的触发器结构 即D T JK RS等类型的触发器 如图2 7所示 这种改进的I O控制模块 可组合成高达50种的电路结构 图2 7触发器可编程的I O控制模块结构 4 具有两路积项和输入与两个触发器结构的I O控制模块如图2 8所示 模块中两个触发器可独立地反馈回逻辑阵列 由于这种结构的灵活性 可使触发器成为 内藏 Burried 工作方式 而且 它具有更多的触发器 很容易实现更为复杂的状态机功能 图2 8具有两路积项和输入与两个触发器的I O控制模块结构 5 具有三路积项和输入与两个触发器的I O控制模块如图2 9所示 每个I O模块可接受三路积项和输入 每路各有4个乘积项 利用EPROM控制单元的编程 可实现下列功能 1 一路积项和的输出直接馈送到I O端 而另两路积项和的输出则分别馈送到两个触发器的输入端D1和D2 它们的输出均可为 内藏 工作方式 通过编程控制可反馈到逻辑阵列总线中去 图2 9具有三路积项和输入与两个触发器的I O控制模块结构 2 在实现组合逻辑输出或寄存器方式输出之前 三路和项还可以通过编程组合在一起 以实现高达12个积项和的组合逻辑输出或寄存器输出 3 在组合逻辑输出方式中 通过编程控制可实现4 8或12个积项和的组合逻辑输出 而模块中的中 下两路和项仍可分别馈送到两个触发器的D1和D2端 它们的输出Q1和Q2为 内藏 工作方式 可通过编程反馈到逻辑阵列总线中去 4 在寄存器输出方式中 上 中两路组合成8个积项和自动馈送到触发器D1输入端 而下路的和项除馈送到触发器D2输入端为 内藏 工作方式外 还可与D1共享 5 两个触发器均可有各自的异步复位和时钟信号 AR1 CLK1和AR2 CLK2 它们由编程逻辑阵列中的4条积项线提供 6 输出三态缓冲器的控制信号由来自编程逻辑阵列的一条积项线提供 7 当I O端作输入端使用 或I O模块的输出反馈到逻辑阵列总线中去时 均通过同一个反馈缓冲器输出它们的同相和反相两路信号 馈送到逻辑阵列总线中去 而两个触发器的输出Q1和Q2则通过各自的反馈缓冲器 将它们的信号 同相及反相信号 馈送到逻辑阵列总线中去 2 4FPGA GAL CPLD都是基于乘积项的可编程结构 即可编程的与阵列和固定的或项组成 FPCA 使用了另一种可编程逻辑的形成方法 即可编程的查找表 LookUPTable LUT 结构 采用这种结构的可编程逻辑芯片称之为FPGA LUT本质上就是一个RAM 目前FPGA中多使用4输入的LUT 所以每一个LUT可以看成是一个有4位地址线的16 1的RAM 当用户通过原理图或HDL语言描述了一个逻辑电路后 PLD FPGA开发软件会自动计算逻辑电路的所有可能的结果 并把结果事先写入RAM 这样 每输入一个信号进行逻辑运算就等于输入一个地址进行查表 找出地址对应的内容 然后输出即可 4输入与门的LUT 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 输入A输入B输入C输入D 查找表输出 16x1RAM 多路选择器 查找表原理 altera的FLEX ACEX的结构主要包括LAB I O块 RAM块 未表示出 和可编程行 列连线 在FLEX ACEX中 一个LAB包括8个逻辑单元 LE 每个LE包括一个LUT 一个触发器和相关的相关逻辑 LE是FLEX ACEX芯片实现逻辑的最基本结构 由于LUT主要适合SRAM工艺生产 所以目前大部分FPGA都是基于SRAM工艺的 而SRAM工艺的芯片在掉电后信息就会丢失 一定需要外加一片专用配置芯片 在上电的时候 由这个专用配置芯片把数据加载到FPGA中 然后FPGA就可以正常工作 由于配置时间很短 不会影响系统正常工作 也有少数FPGA采用反熔丝或Flash工艺 对这种FPGA 就不需要外加专用的配置芯片 适于实现复杂的组合逻辑适于实现复杂的状态机适于实现控制量多的逻辑适于实现完全编码的状态机扇入系数大应用举例 存储总线控制器译码逻辑 适于实现数据通路功能适于实现寄存器用量大的设计适于实现算术功能 加法器 计数器等适于实现 OneHot 方式编码的状态机应用举例 DSP功能PCI接口 乘积项结构 CPLD 查找表结构 FPGA 如何选用CPLD FPGA FPGA和CPLD差异 1 CPLD更适合完成组合逻辑电路 FPGA更适合于完成时序逻辑 理由见下面 2 FPGA 八百万门 的集成度比CPLD 一万门 高 3 CPLD无需外部存储器芯片 FPGA需要外部存储器 4 CPLD系统断电时编程信息也不丢失 FPGA编程信息在系统断电时丢失 每次上电时 需从器件外部将编程数据重新写入SRAM中 CPLD的速度比FPGA快 并且具有较大的时间可预测性 5 CPLD保密性好 FPGA保密性差 6 CPLD的功耗要比FPGA大 且集成度越高越明显 PLD分解组合逻辑的功能很强 一个宏单元就可以分解十几个甚至20 30多个组合逻辑输入 而FPGA的一个LUT只能处理4输入的组合逻辑 因此 PLD适合用于设计译码等复杂组合逻辑 但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多 往往都是几千上万 PLD一般只能做到512个逻辑单元 而且如果用芯片价格除以逻辑单元数量 FPGA的平均逻辑单元成本大大低于PLD 所以如果设计中使用到大量触发器 例如设计一个复杂的时序逻辑 那么使用FPGA就是一个很好选择 同时PLD拥有上电

温馨提示

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

评论

0/150

提交评论