1 / 103

可编程逻辑器件设计方法

可编程逻辑器件设计方法. 何宾 2011.09. 可编程逻辑器件设计方法 - 本章概述. 可编程逻辑器件 ( Programmable Logic Device , PLD ) 产生于上世纪 70 年代,是在专用集成电路 ( Application Specific Integrated Circuit, ASIC ) 基础上发 展起来的一种新型逻辑器件,是当今数字系统设计的主 要硬件平台,其主要特点就是由用户通过硬件描述语言 和相关电子设计自动化软件对其进行配置和编程。. 逻辑 1. 逻辑 1. a. a. &. b. b. &.

marsha
Download Presentation

可编程逻辑器件设计方法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 可编程逻辑器件设计方法 何宾 2011.09

  2. 可编程逻辑器件设计方法-本章概述 • 可编程逻辑器件(Programmable Logic Device, • PLD)产生于上世纪70年代,是在专用集成电路 • (Application Specific Integrated Circuit, ASIC)基础上发 • 展起来的一种新型逻辑器件,是当今数字系统设计的主 • 要硬件平台,其主要特点就是由用户通过硬件描述语言 • 和相关电子设计自动化软件对其进行配置和编程。

  3. 逻辑1 逻辑1 a a & b b & 图2.1 熔丝未编程的结构 图2.2 熔丝编程的结构 可编程逻辑器件设计方法- PLD芯片制造工艺 • 1、熔丝连接技术 •   最早的允许对器件进行编程的技术是熔丝连接技 • 术。在这种技术的器件中,所有逻辑的连接都是靠熔丝连 • 接的。熔丝器件是一次可编程的,一旦编程,永久不能改 • 变。

  4. 逻辑1 逻辑1 a a & & b b 图2.3 熔丝未编程的结构 图2.4 熔丝编程的结构 可编程逻辑器件设计方法- PLD芯片制造工艺 • 2、反熔丝连接技术 •  反熔丝技术和熔丝技术相反,在未编程时,熔丝没有连 • 接。如果编程后,熔丝将和逻辑单元连接。反熔丝开始是 • 连接两个金属连接的微型非晶硅柱。 • 未编程时,成高阻状态。编程结束后,形成连接。反 • 熔丝器件是一次可编程的,一旦编程,永久不能改变。

  5. 可编程逻辑器件设计方法- PLD芯片制造工艺 • 3、SRAM技术 • 基于静态存储器SRAM的可编程器件,值被保存在 • SRAM中时,只要系统正常供电信息就不会丢失,否 • 则信息将丢失。SRAM存储数据需要消耗大量的硅面 • 积,且断电后数据丢失。但是这种器件可以反复的编 • 程和修改。

  6. 可编程逻辑器件设计方法- PLD芯片制造工艺 • 4、掩膜技术 • ROM是非易失性的,系统断电后,信息被保留在存 • 储单元中。掩膜器件可以读出,但是不能写入信息。 • ROM单元保存了行和列数据,形成一个阵列,每一列有 • 负载电阻使其保持逻辑1,每个行列的交叉有一个关联 • 晶体管和一个掩膜连接。 •   这种技术代价比较高,基本上很少使用。

  7. 可编程逻辑器件设计方法- PLD芯片制造工艺 • 5、PROM技术 • PROM是非易失性的,系统断电后,信息被保留在 • 存储单元中。PROM器件可以编程一次,以后只能读数 • 据而不能写入新的数据。PROM单元保存了行和列数 • 据,形成一个阵列,每一列有负载电阻使其保持逻辑 • 1,每个行列的交叉有一个关联晶体管和一个掩膜连 • 接。 •  如果可以多次编程就成为EPROM,EEPROM技术。

  8. 可编程逻辑器件设计方法- PLD芯片制造工艺 • 6、FLASH技术 • FLASH技术的芯片的檫除的速度比PROM技术要快 • 的多。FLASH技术可采用多种结构,与EPROM单元类 • 似的具有一个浮置栅晶体管单元和EEPROM器件的薄氧 • 化层特性。

  9. 可编程逻辑器件结构 -CPLD芯片内部结构 • CPLD 由完全可编程的与/或阵列以及宏单元库构成。 • 与/或阵列是可重新编程的,可以实现多种逻辑功能。宏 • 单元则是可实现组合或时序逻辑的功能模块,同时还提供 • 了真值或补码输出和以不同的路径反馈等额外的灵活性。 •   下面给出了CPLD的内部结构图。

  10. 可编程逻辑器件结构 -CPLD芯片内部结构

  11. 可编程逻辑器件结构 -CPLD芯片内部结构(功能块) FB内部的逻辑使用积之和SOP描述。36个输入提供 了72个真和互补信号到可编程的“与”阵列来生成90个乘积 项。最多可用的90个乘积项可以通过乘积项分配器分配到 一个每个宏单元。

  12. 组合逻辑资源 触发器资源 图2.7 宏单元的内部结构 可编程逻辑器件结构 -CPLD芯片内部结构(宏单元)

  13. 可编程逻辑器件结构 -CPLD芯片内部结构(宏单元) • 从数字电路的知识知道, 任何一个数字系统是由组合 • 逻辑电路和时序电路构成的. • 所以宏单元应该是CPLD芯片最重要的功能单元. 因为 • 数字系统的逻辑功能是在宏单元内实现的.

  14. 快速连接矩阵 快速连接开关矩阵的内部结构 可编程逻辑器件结构 -CPLD芯片内部结构(快速连接矩阵)

  15. IO块内部逻辑 可编程逻辑器件结构 -CPLD芯片内部结构

  16. 可编程逻辑器件设计方法-FPGA芯片的内部结构 •   现场可编程门阵列(Field Programmable Gate Array, • FPGA) 是在PAL、GAL、EPLD、CPLD等可编程器件的 • 基础上进一步发展起来的,它是作为ASIC领域中的一种 • 半定制电路而出现的,即解决了定制电路的不足,又克 • 服了原有可编程器件门电路有限的缺点。 • 由于FPGA需要被反复烧写,它实现组合逻辑的基 • 本结构不可能像ASIC那样通过固定的与非门来完成,而 • 只能采用一种易于反复配置的结构。查找表可以很好地 • 满足这一要求,目前主流FPGA都采用了基于SRAM工艺 • 的查找表结构,也有一些军品和宇航级FPGA采用Flash • 或者熔丝与反熔丝工艺的查找表结构。

  17. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(查找表) 由布尔代数理论可知,对于一个n输入的逻辑运算, 不管是与或非运算还是异或运算等等,最多只可能存 在2n种结果,所以如果事先将相应的结果存放于一个 存贮单元,就相当于实现了与非门电路的功能。 FPGA的原理也是如此,它通过烧写文件去配置查 找表的内容,从而在相同的电路情况下实现了不同的 逻辑功能。

  18. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(4输入查找表)

  19. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(4输入查找表) • 查找表(Look-Up-Table)简称为LUT,LUT本质上 • 就是一个RAM。目前FPGA中多使用4输入的LUT,所以 • 每一个LUT可以看成一个有4位地址线的RAM。 • 当用户通过原理图或HDL语言描述了一个逻辑电路 • 以后,PLD/FPGA开发软件会自动计算逻辑电路的所有 • 可能结果,并把真值表(即结果)事先写入RAM,这 • 样,每输入一个信号进行逻辑运算就等于输入一个地址 • 进行查表,找出地址对应的内容,然后输出即可。

  20. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(4输入查找表) • LUT具有和逻辑电路相同的功能。实际上,LUT具有 • 更快的执行速度和更大的规模。LUT具有下面的特点: • 1)LUT实现组合逻辑的功能由输入决定,而不是由 • 复杂度决定; • 2)LUT实现组合逻辑有固定的传输延迟;

  21. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表) • 多年以来,四输入 LUT 一直是业界标准。但是,在 • 65nm工艺条件下,相较于其它电路(特别是互连电 • 路),LUT 的常规结构大大缩小。 • 一个具有四倍比特位的六输入LUT (6-LUT) 仅仅将 • CLB 面积提高了15% - 但是平均而言,每个 LUT 上可集 • 成的逻辑数量却增加了40%。更高的逻辑密度通常可以降 • 低级联 LUT 的数目,并且改进关键路径延迟性能。

  22. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表) 新一代的FPGA 提供了真正的 6-LUT,可以将它用作逻辑或者分布式存储器,这时 LUT是一个64 位的分布式 RAM (甚至双端口或者四端口)或者一个32 位可编程移位寄存器。 每个 LUT 具有两个输出,从而实现了五个变量的两个逻辑函数,存储32 x 2 RAM 比特,或者作为16 x 2-bit 的移位寄存器进行工作。

  23. 4/6输入LUT实现8:1多路复用器的原理 可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表)

  24. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表) • XilinxSpartan-6 FPGA • 芯片的内部版图结构,随着 • FPGA集成度的不断增加, • 其功能不断的增强,新一代 • 的FPGA芯片内部结构包含: • GTP收发器 • CLB单元 • PCI-E块 • IO组 • 存储器控制块 • 块存储器 • DSP模块 • 时钟管理模块等资源。

  25. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(CLB) 可配置的逻辑块(Configurable Logic Block, CLB)是主要的逻辑资 源,用于实现顺序和组合逻辑电路。 每个CLB连接到一个开关矩阵 用于访问通用的布线资源。一个 CLB包含一对切片Slice。这两个 切片没有直接的相互连接,每个 切片通过列组织在一起。对于每 个CLB,CLB底下的切片标号为 SLICE(0),CLB上面的切片标号为 SLICE(1)。

  26. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(CLB) • X后面的数字标识切片对内每个 • 切片的位置,以及切片列的位置。 • X编号计算切片位置从底部以顺序 • 0,1开始计算(第1列CLB);2, • 3(第2列CLB)。Y编号后的数字标识 • 切片的行位置。图中的4个CLB位于 • 硅片的左下角的位置。

  27. 触发器 复用器 触发器 进位链 LUT 可编程逻辑器件设计方法-- FPGA芯片的内部结构(SLICE)

  28. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(时钟资源) • Spartan-6的FPGA时钟资源包含下面四种类型的连接: • 全局时钟输入引脚(GCLK); • 全局时钟复用开关(BUFG,BUFGMUX) • I/O时钟缓冲区(BUFIO2,BUFIO2_2CLK, BUFPLL) • 水平的时钟布线缓冲区(BUFH) • Spartan-6的FPGA包含两种类型的时钟网络: • 提供了16个高速,低抖动的全局时钟资源来优化性能。这些 资源通过EDA软件工具自动的使用。 • 提供了40个超高速、低抖动的I/O区域时钟资源。用于服务本 地的I/O串行/解串行电路。

  29. DCM的符号 可编程逻辑器件设计方法-- FPGA芯片的内部结构(时钟资源)

  30. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(BRAM) • 大多数FPGA都具有内嵌 • 的块RAM,这大大拓展了 • FPGA的应用范围和灵活性。 • 块RAM可被配置为: • 1)单端口RAM; • 2)双端口RAM; • 3)内容地址存储器(CAM); • 4)FIFO等常用存储结构。

  31. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(BRAM) •   单片块RAM的容量为18k比特,即位宽为18比特、深 • 度为1024,可以根据需要改变位宽和深度,但要满足: • 1)修改后的容量(位宽 深度)不能大于18k比特; • 2)位宽最大不能超过36比特; • 当然,可以将多片块RAM级联起来形成更大的RAM, • 此时只受限于芯片内块RAM的数量,而不再受上面两条 • 原则约束。

  32. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(布线资源) • 互联是FPGA内用于在功能元件,比如IOB,CLB, • DSP和BRAM,的输入和输出信号通路的可编程网络。互 • 联也称为布线,被分段用于最优的连接。 • Spartan-6 FPGA CLB在FPGA内以规则的阵列排列。 • 如下图,每个到开关矩阵的连接用来访问通用的布线资 • 源。

  33. 图2.20 FPGA内的布线资源 可编程逻辑器件设计方法-- FPGA芯片的内部结构(布线资源)

  34. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(存储器控制器) • Spartan-6 FPGA内集成了硬的存储器控制器,FPGA内集成的硬存储器控制器减少了设计的时间,并且支持DDR, • DDR2 , DDR3 & LP DDR。

  35. DSP模块内部结构 可编程逻辑器件设计方法-- FPGA芯片的内部结构(DSP核) 分析其结构..和DSP算法的关系

  36. 可编程逻辑器件设计方法-- FPGA芯片的内部结构(输入/输出块) • 可编程输入/输出单元简称I/O单 • 元,是芯片与外界电路的接口部分, • 完成不同电气特性下对输入/输出信 • 号的驱动与匹配要求。 • FPGA的I/O按组分类,每组都 • 能够独立地支持不同的I/O标准。通 • 过软件的灵活配置,可适配不同的电 • 气标准与I/O物理特性,可以调整驱 • 动电流的大小,可以改变上、下拉电 • 阻。

  37. 思考问题? • 可编程逻辑器件的可编程主要体现在哪些方面? • 1) CLB的功能分配 • 2) 连线的控制 • 3) IO块的控制

  38. 可编程逻辑器件设计方法-CPLD和FPGA的比较 • FPGA和CPLD都是可编程逻辑器件,有很多共同特点, • 但由于CPLD和FPGA结构上的差异,具有各自的特 • 点: 1、CPLD更适合完成各种算法和组合逻辑, FPGA更适 • 合于完成时序逻辑。换句话说,FPGA更适合于触发器 • 丰富的结构,而CPLD更适合于触发器有限而乘积项丰富 • 的结构。 • 2、CPLD的连续式布线结构决定了它的时序延迟是均 • 匀的和可预测的,而FPGA的分段式布线结构决定了其延 • 迟的不可预测性。

  39. 可编程逻辑器件设计方法-CPLD和FPGA的比较 • 3、在编程上FPGA比CPLD具有更大的灵活性。CPLD • 通、过修改具有固定内连电路的逻辑功能来编程, FPGA主 • 要通过改变内部连线的布线来编程; FPGA可在逻辑门下编 • 程,而CPLD是在逻辑块下编程。 • 4、FPGA的集成度比CPLD高,具有更复杂的布线结构 • 和逻辑实现。

  40. 可编程逻辑器件设计方法-CPLD和FPGA的比较 • 5、CPLD比FPGA使用起来更方便。CPLD的编程采用 • E2PROM或FASTFLASH技术,无需外部存储器芯片,使用 • 简单。而FPGA的编程信息需存放在外部存储器上,使用方 • 法复杂。 • 6、CPLD的速度比FPGA快,并且具有较大的时间可预 • 测性。这是由于FPGA是门级编程,并且CLB之间采用分布 • 式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联 • 是集总式的。

  41. 第2章 可编程逻辑器件设计方法-CPLD和FPGA的比较 • 7、在编程方式上, CPLD主要是基于E2PROM或 • FLASH存储器编程,编程次数可达1万次,优点是系统断电时 • 编程信息也不丢失。CPLD又可分为在编程器上编程和在 • 系统编程两类。FPGA大部分是基于SRAM编程,编程信息 • 在系统断电时丢失,每次上电时,需从器件外部将编程。数 • 据重新写入SRAM中。其优点是可以编程任意次,可在工作 • 中快速编程,从而实现板级和系统级的动态配置。 • 8、CPLD保密性好, FPGA保密性差。

  42. 可编程逻辑器件设计方法-CPLD和FPGA的比较 • 9、一般情况下, CPLD的功耗要比FPGA大,且集成度越 • 高越明显。CPLD最基本的单元是宏单元。一个宏单元包 • 含一个寄存器(使用多达16个乘积项作为其输入)及其它有 • 用特性。 因为每个宏单元用了16个乘积项,因此设计人 • 员可部署大量的组合逻辑而不用增加额外的路径。这就是 • 为何CPLD被认为是“逻辑丰富”型的。宏单元以逻辑模块 • 的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单 • 元执行一个AND操作,然后一个OR操作以实现组合逻 • 辑。

  43. 可编程逻辑器件设计方法-Xilinx公司器件简介-CPLD可编程逻辑器件设计方法-Xilinx公司器件简介-CPLD • Xilinx公司目前有两大类CPLD产品: • 1)CoolRunner系列; • 2)XC9500系列; • CoolRunner系列中又包含CoolRunner-II和CoolRunner • XPLA3两个系列。 • XC9500系列中又包含XC9500XL和XC9500两个系列。

  44. 可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500 • 在保持高性能的同时,XC9500 器件还能提供最大的 • 布线能力和灵活性。 • 该构架特性丰富,包括单个 p-term 输出激活和 3 个全 • 局时钟,并且其单位输出的 p-term 比其它 CPLD 多。 • 该构架公认的在保持管脚分配(管脚锁定)的同时适 • 应设计变化的能力已在自 XC9500 系列推出以来的无数现 • 实世界中消费类设计中得到了说明。这个有保证的管脚锁 • 定意味着可以充分利用在系统编程性,并且能够在任何时 • 间(甚至是现场)轻松完成变更。

  45. 可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500

  46. 可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL • XC9500XL的CPLD 提供了一个高性能非易失性可编程 • 逻辑解决方案,包括成本优化的芯片、免费的设计工具 • 和无与伦比的技术支持。 使用与 Xilinx FPGA 同样的设 • 计环境,XC9500XL CPLD 可以为您提供灵活、高级的 • 逻辑系统设计所需的一切。

  47. 可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL

  48. 可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II •   作为第一款能够提供100%数字核的 CPLD 系列,只有 • CoolRunner™-II 系列可以通过单个成本优化解决方案提供 • 高性能和极低的功耗,以及现实系统特性。

  49. 可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II

  50. 可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II

More Related