1.03k likes | 1.22k Views
可编程逻辑器件设计方法. 何宾 2011.09. 可编程逻辑器件设计方法 - 本章概述. 可编程逻辑器件 ( Programmable Logic Device , PLD ) 产生于上世纪 70 年代,是在专用集成电路 ( Application Specific Integrated Circuit, ASIC ) 基础上发 展起来的一种新型逻辑器件,是当今数字系统设计的主 要硬件平台,其主要特点就是由用户通过硬件描述语言 和相关电子设计自动化软件对其进行配置和编程。. 逻辑 1. 逻辑 1. a. a. &. b. b. &.
E N D
可编程逻辑器件设计方法 何宾 2011.09
可编程逻辑器件设计方法-本章概述 • 可编程逻辑器件(Programmable Logic Device, • PLD)产生于上世纪70年代,是在专用集成电路 • (Application Specific Integrated Circuit, ASIC)基础上发 • 展起来的一种新型逻辑器件,是当今数字系统设计的主 • 要硬件平台,其主要特点就是由用户通过硬件描述语言 • 和相关电子设计自动化软件对其进行配置和编程。
逻辑1 逻辑1 a a & b b & 图2.1 熔丝未编程的结构 图2.2 熔丝编程的结构 可编程逻辑器件设计方法- PLD芯片制造工艺 • 1、熔丝连接技术 • 最早的允许对器件进行编程的技术是熔丝连接技 • 术。在这种技术的器件中,所有逻辑的连接都是靠熔丝连 • 接的。熔丝器件是一次可编程的,一旦编程,永久不能改 • 变。
逻辑1 逻辑1 a a & & b b 图2.3 熔丝未编程的结构 图2.4 熔丝编程的结构 可编程逻辑器件设计方法- PLD芯片制造工艺 • 2、反熔丝连接技术 • 反熔丝技术和熔丝技术相反,在未编程时,熔丝没有连 • 接。如果编程后,熔丝将和逻辑单元连接。反熔丝开始是 • 连接两个金属连接的微型非晶硅柱。 • 未编程时,成高阻状态。编程结束后,形成连接。反 • 熔丝器件是一次可编程的,一旦编程,永久不能改变。
可编程逻辑器件设计方法- PLD芯片制造工艺 • 3、SRAM技术 • 基于静态存储器SRAM的可编程器件,值被保存在 • SRAM中时,只要系统正常供电信息就不会丢失,否 • 则信息将丢失。SRAM存储数据需要消耗大量的硅面 • 积,且断电后数据丢失。但是这种器件可以反复的编 • 程和修改。
可编程逻辑器件设计方法- PLD芯片制造工艺 • 4、掩膜技术 • ROM是非易失性的,系统断电后,信息被保留在存 • 储单元中。掩膜器件可以读出,但是不能写入信息。 • ROM单元保存了行和列数据,形成一个阵列,每一列有 • 负载电阻使其保持逻辑1,每个行列的交叉有一个关联 • 晶体管和一个掩膜连接。 • 这种技术代价比较高,基本上很少使用。
可编程逻辑器件设计方法- PLD芯片制造工艺 • 5、PROM技术 • PROM是非易失性的,系统断电后,信息被保留在 • 存储单元中。PROM器件可以编程一次,以后只能读数 • 据而不能写入新的数据。PROM单元保存了行和列数 • 据,形成一个阵列,每一列有负载电阻使其保持逻辑 • 1,每个行列的交叉有一个关联晶体管和一个掩膜连 • 接。 • 如果可以多次编程就成为EPROM,EEPROM技术。
可编程逻辑器件设计方法- PLD芯片制造工艺 • 6、FLASH技术 • FLASH技术的芯片的檫除的速度比PROM技术要快 • 的多。FLASH技术可采用多种结构,与EPROM单元类 • 似的具有一个浮置栅晶体管单元和EEPROM器件的薄氧 • 化层特性。
可编程逻辑器件结构 -CPLD芯片内部结构 • CPLD 由完全可编程的与/或阵列以及宏单元库构成。 • 与/或阵列是可重新编程的,可以实现多种逻辑功能。宏 • 单元则是可实现组合或时序逻辑的功能模块,同时还提供 • 了真值或补码输出和以不同的路径反馈等额外的灵活性。 • 下面给出了CPLD的内部结构图。
可编程逻辑器件结构 -CPLD芯片内部结构(功能块) FB内部的逻辑使用积之和SOP描述。36个输入提供 了72个真和互补信号到可编程的“与”阵列来生成90个乘积 项。最多可用的90个乘积项可以通过乘积项分配器分配到 一个每个宏单元。
组合逻辑资源 触发器资源 图2.7 宏单元的内部结构 可编程逻辑器件结构 -CPLD芯片内部结构(宏单元)
可编程逻辑器件结构 -CPLD芯片内部结构(宏单元) • 从数字电路的知识知道, 任何一个数字系统是由组合 • 逻辑电路和时序电路构成的. • 所以宏单元应该是CPLD芯片最重要的功能单元. 因为 • 数字系统的逻辑功能是在宏单元内实现的.
快速连接矩阵 快速连接开关矩阵的内部结构 可编程逻辑器件结构 -CPLD芯片内部结构(快速连接矩阵)
IO块内部逻辑 可编程逻辑器件结构 -CPLD芯片内部结构
可编程逻辑器件设计方法-FPGA芯片的内部结构 • 现场可编程门阵列(Field Programmable Gate Array, • FPGA) 是在PAL、GAL、EPLD、CPLD等可编程器件的 • 基础上进一步发展起来的,它是作为ASIC领域中的一种 • 半定制电路而出现的,即解决了定制电路的不足,又克 • 服了原有可编程器件门电路有限的缺点。 • 由于FPGA需要被反复烧写,它实现组合逻辑的基 • 本结构不可能像ASIC那样通过固定的与非门来完成,而 • 只能采用一种易于反复配置的结构。查找表可以很好地 • 满足这一要求,目前主流FPGA都采用了基于SRAM工艺 • 的查找表结构,也有一些军品和宇航级FPGA采用Flash • 或者熔丝与反熔丝工艺的查找表结构。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(查找表) 由布尔代数理论可知,对于一个n输入的逻辑运算, 不管是与或非运算还是异或运算等等,最多只可能存 在2n种结果,所以如果事先将相应的结果存放于一个 存贮单元,就相当于实现了与非门电路的功能。 FPGA的原理也是如此,它通过烧写文件去配置查 找表的内容,从而在相同的电路情况下实现了不同的 逻辑功能。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(4输入查找表)
可编程逻辑器件设计方法-- FPGA芯片的内部结构(4输入查找表) • 查找表(Look-Up-Table)简称为LUT,LUT本质上 • 就是一个RAM。目前FPGA中多使用4输入的LUT,所以 • 每一个LUT可以看成一个有4位地址线的RAM。 • 当用户通过原理图或HDL语言描述了一个逻辑电路 • 以后,PLD/FPGA开发软件会自动计算逻辑电路的所有 • 可能结果,并把真值表(即结果)事先写入RAM,这 • 样,每输入一个信号进行逻辑运算就等于输入一个地址 • 进行查表,找出地址对应的内容,然后输出即可。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(4输入查找表) • LUT具有和逻辑电路相同的功能。实际上,LUT具有 • 更快的执行速度和更大的规模。LUT具有下面的特点: • 1)LUT实现组合逻辑的功能由输入决定,而不是由 • 复杂度决定; • 2)LUT实现组合逻辑有固定的传输延迟;
可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表) • 多年以来,四输入 LUT 一直是业界标准。但是,在 • 65nm工艺条件下,相较于其它电路(特别是互连电 • 路),LUT 的常规结构大大缩小。 • 一个具有四倍比特位的六输入LUT (6-LUT) 仅仅将 • CLB 面积提高了15% - 但是平均而言,每个 LUT 上可集 • 成的逻辑数量却增加了40%。更高的逻辑密度通常可以降 • 低级联 LUT 的数目,并且改进关键路径延迟性能。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表) 新一代的FPGA 提供了真正的 6-LUT,可以将它用作逻辑或者分布式存储器,这时 LUT是一个64 位的分布式 RAM (甚至双端口或者四端口)或者一个32 位可编程移位寄存器。 每个 LUT 具有两个输出,从而实现了五个变量的两个逻辑函数,存储32 x 2 RAM 比特,或者作为16 x 2-bit 的移位寄存器进行工作。
4/6输入LUT实现8:1多路复用器的原理 可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表)
可编程逻辑器件设计方法-- FPGA芯片的内部结构(6输入查找表) • XilinxSpartan-6 FPGA • 芯片的内部版图结构,随着 • FPGA集成度的不断增加, • 其功能不断的增强,新一代 • 的FPGA芯片内部结构包含: • GTP收发器 • CLB单元 • PCI-E块 • IO组 • 存储器控制块 • 块存储器 • DSP模块 • 时钟管理模块等资源。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(CLB) 可配置的逻辑块(Configurable Logic Block, CLB)是主要的逻辑资 源,用于实现顺序和组合逻辑电路。 每个CLB连接到一个开关矩阵 用于访问通用的布线资源。一个 CLB包含一对切片Slice。这两个 切片没有直接的相互连接,每个 切片通过列组织在一起。对于每 个CLB,CLB底下的切片标号为 SLICE(0),CLB上面的切片标号为 SLICE(1)。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(CLB) • X后面的数字标识切片对内每个 • 切片的位置,以及切片列的位置。 • X编号计算切片位置从底部以顺序 • 0,1开始计算(第1列CLB);2, • 3(第2列CLB)。Y编号后的数字标识 • 切片的行位置。图中的4个CLB位于 • 硅片的左下角的位置。
触发器 复用器 触发器 进位链 LUT 可编程逻辑器件设计方法-- FPGA芯片的内部结构(SLICE)
可编程逻辑器件设计方法-- FPGA芯片的内部结构(时钟资源) • Spartan-6的FPGA时钟资源包含下面四种类型的连接: • 全局时钟输入引脚(GCLK); • 全局时钟复用开关(BUFG,BUFGMUX) • I/O时钟缓冲区(BUFIO2,BUFIO2_2CLK, BUFPLL) • 水平的时钟布线缓冲区(BUFH) • Spartan-6的FPGA包含两种类型的时钟网络: • 提供了16个高速,低抖动的全局时钟资源来优化性能。这些 资源通过EDA软件工具自动的使用。 • 提供了40个超高速、低抖动的I/O区域时钟资源。用于服务本 地的I/O串行/解串行电路。
DCM的符号 可编程逻辑器件设计方法-- FPGA芯片的内部结构(时钟资源)
可编程逻辑器件设计方法-- FPGA芯片的内部结构(BRAM) • 大多数FPGA都具有内嵌 • 的块RAM,这大大拓展了 • FPGA的应用范围和灵活性。 • 块RAM可被配置为: • 1)单端口RAM; • 2)双端口RAM; • 3)内容地址存储器(CAM); • 4)FIFO等常用存储结构。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(BRAM) • 单片块RAM的容量为18k比特,即位宽为18比特、深 • 度为1024,可以根据需要改变位宽和深度,但要满足: • 1)修改后的容量(位宽 深度)不能大于18k比特; • 2)位宽最大不能超过36比特; • 当然,可以将多片块RAM级联起来形成更大的RAM, • 此时只受限于芯片内块RAM的数量,而不再受上面两条 • 原则约束。
可编程逻辑器件设计方法-- FPGA芯片的内部结构(布线资源) • 互联是FPGA内用于在功能元件,比如IOB,CLB, • DSP和BRAM,的输入和输出信号通路的可编程网络。互 • 联也称为布线,被分段用于最优的连接。 • Spartan-6 FPGA CLB在FPGA内以规则的阵列排列。 • 如下图,每个到开关矩阵的连接用来访问通用的布线资 • 源。
图2.20 FPGA内的布线资源 可编程逻辑器件设计方法-- FPGA芯片的内部结构(布线资源)
可编程逻辑器件设计方法-- FPGA芯片的内部结构(存储器控制器) • Spartan-6 FPGA内集成了硬的存储器控制器,FPGA内集成的硬存储器控制器减少了设计的时间,并且支持DDR, • DDR2 , DDR3 & LP DDR。
DSP模块内部结构 可编程逻辑器件设计方法-- FPGA芯片的内部结构(DSP核) 分析其结构..和DSP算法的关系
可编程逻辑器件设计方法-- FPGA芯片的内部结构(输入/输出块) • 可编程输入/输出单元简称I/O单 • 元,是芯片与外界电路的接口部分, • 完成不同电气特性下对输入/输出信 • 号的驱动与匹配要求。 • FPGA的I/O按组分类,每组都 • 能够独立地支持不同的I/O标准。通 • 过软件的灵活配置,可适配不同的电 • 气标准与I/O物理特性,可以调整驱 • 动电流的大小,可以改变上、下拉电 • 阻。
思考问题? • 可编程逻辑器件的可编程主要体现在哪些方面? • 1) CLB的功能分配 • 2) 连线的控制 • 3) IO块的控制
可编程逻辑器件设计方法-CPLD和FPGA的比较 • FPGA和CPLD都是可编程逻辑器件,有很多共同特点, • 但由于CPLD和FPGA结构上的差异,具有各自的特 • 点: 1、CPLD更适合完成各种算法和组合逻辑, FPGA更适 • 合于完成时序逻辑。换句话说,FPGA更适合于触发器 • 丰富的结构,而CPLD更适合于触发器有限而乘积项丰富 • 的结构。 • 2、CPLD的连续式布线结构决定了它的时序延迟是均 • 匀的和可预测的,而FPGA的分段式布线结构决定了其延 • 迟的不可预测性。
可编程逻辑器件设计方法-CPLD和FPGA的比较 • 3、在编程上FPGA比CPLD具有更大的灵活性。CPLD • 通、过修改具有固定内连电路的逻辑功能来编程, FPGA主 • 要通过改变内部连线的布线来编程; FPGA可在逻辑门下编 • 程,而CPLD是在逻辑块下编程。 • 4、FPGA的集成度比CPLD高,具有更复杂的布线结构 • 和逻辑实现。
可编程逻辑器件设计方法-CPLD和FPGA的比较 • 5、CPLD比FPGA使用起来更方便。CPLD的编程采用 • E2PROM或FASTFLASH技术,无需外部存储器芯片,使用 • 简单。而FPGA的编程信息需存放在外部存储器上,使用方 • 法复杂。 • 6、CPLD的速度比FPGA快,并且具有较大的时间可预 • 测性。这是由于FPGA是门级编程,并且CLB之间采用分布 • 式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联 • 是集总式的。
第2章 可编程逻辑器件设计方法-CPLD和FPGA的比较 • 7、在编程方式上, CPLD主要是基于E2PROM或 • FLASH存储器编程,编程次数可达1万次,优点是系统断电时 • 编程信息也不丢失。CPLD又可分为在编程器上编程和在 • 系统编程两类。FPGA大部分是基于SRAM编程,编程信息 • 在系统断电时丢失,每次上电时,需从器件外部将编程。数 • 据重新写入SRAM中。其优点是可以编程任意次,可在工作 • 中快速编程,从而实现板级和系统级的动态配置。 • 8、CPLD保密性好, FPGA保密性差。
可编程逻辑器件设计方法-CPLD和FPGA的比较 • 9、一般情况下, CPLD的功耗要比FPGA大,且集成度越 • 高越明显。CPLD最基本的单元是宏单元。一个宏单元包 • 含一个寄存器(使用多达16个乘积项作为其输入)及其它有 • 用特性。 因为每个宏单元用了16个乘积项,因此设计人 • 员可部署大量的组合逻辑而不用增加额外的路径。这就是 • 为何CPLD被认为是“逻辑丰富”型的。宏单元以逻辑模块 • 的形式排列(LB),每个逻辑模块由16个宏单元组成。宏单 • 元执行一个AND操作,然后一个OR操作以实现组合逻 • 辑。
可编程逻辑器件设计方法-Xilinx公司器件简介-CPLD可编程逻辑器件设计方法-Xilinx公司器件简介-CPLD • Xilinx公司目前有两大类CPLD产品: • 1)CoolRunner系列; • 2)XC9500系列; • CoolRunner系列中又包含CoolRunner-II和CoolRunner • XPLA3两个系列。 • XC9500系列中又包含XC9500XL和XC9500两个系列。
可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500 • 在保持高性能的同时,XC9500 器件还能提供最大的 • 布线能力和灵活性。 • 该构架特性丰富,包括单个 p-term 输出激活和 3 个全 • 局时钟,并且其单位输出的 p-term 比其它 CPLD 多。 • 该构架公认的在保持管脚分配(管脚锁定)的同时适 • 应设计变化的能力已在自 XC9500 系列推出以来的无数现 • 实世界中消费类设计中得到了说明。这个有保证的管脚锁 • 定意味着可以充分利用在系统编程性,并且能够在任何时 • 间(甚至是现场)轻松完成变更。
可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500
可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL • XC9500XL的CPLD 提供了一个高性能非易失性可编程 • 逻辑解决方案,包括成本优化的芯片、免费的设计工具 • 和无与伦比的技术支持。 使用与 Xilinx FPGA 同样的设 • 计环境,XC9500XL CPLD 可以为您提供灵活、高级的 • 逻辑系统设计所需的一切。
可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL可编程逻辑器件设计方法-Xilinx公司器件简介-XC9500XL
可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II • 作为第一款能够提供100%数字核的 CPLD 系列,只有 • CoolRunner™-II 系列可以通过单个成本优化解决方案提供 • 高性能和极低的功耗,以及现实系统特性。
可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II
可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II可编程逻辑器件设计方法-Xilinx公司器件简介-CoolRunner-II