Presentation is loading. Please wait.

Presentation is loading. Please wait.

第2章 FPGA/CPLD结构与应用.

Similar presentations


Presentation on theme: "第2章 FPGA/CPLD结构与应用."— Presentation transcript:

1 第2章 FPGA/CPLD结构与应用

2 CPLD - Complex Programmable Logic Device 复杂可编程逻辑器件
FPGA - Field Programmable Gate Array 现场可编程门阵列

3 可编程逻辑器件(PLD): 诞生于20世纪70年代 以大规模集成电路技术为基础的半定制集成电路 结合EDA技术快速构建数字系统

4 2.1 概述 基本PLD器件的原理结构图

5 可编程逻辑器件的分类 按集成度(PLD)分类:

6 按编程工艺分类: (1) 熔丝型 (2) 反熔丝型 (3) EPROM型 (4) EEPROM型 (5) FLASH型 (6) SRAM型

7 2.2 简单PLD原理 电路符号表示 常用逻辑门符号与现有国标符号的对照

8 电路符号表示 PLD的互补缓冲器 PLD的互补输入 PLD中与阵列表示 PLD中或阵列的表示 阵列线连接表示

9 PROM PROM基本结构 其逻辑函数是:

10 PROM PROM的逻辑阵列结构 逻辑函数表示:

11 缺点:资源浪费严重 PROM PROM表达的PLD图阵列 用PROM完成半加器逻辑阵列

12 缺点:需要有最简与或表达式,多输出时要利用公共项,算法复杂
PLA PLA逻辑阵列示意图

13 PLA与 PROM的比较

14 PAL PAL结构 PAL的常用表示

15 General Array Logic Device EPLD
GAL 乘积项逻辑 GAL: General Array Logic Device 最多有8个或项,每个或项最多有32个与项 EPLD Erasable Programmable Logic Device

16 时钟信 号输入 输入口 逻辑宏单元 GAL16V8 输入/输出口 固定或阵列 可编程与阵列 三态控制

17 目前简单PLD已经被淘汰,应用更多的 便是CPLD、FPGA,其主要原因: 片上资源有限 I/O不够灵活 编程不方便

18 2.2 CPLD简介 基于EEPROM工艺、乘积项技术

19 基于乘积项的CPLD内部结构

20 分为三块结构:宏单元(Macrocell),可编程连线(PIA)和I/O控制块。
宏单元是CPLD的基本结构,由它来实现基本的逻辑功能。 可编程连线负责信号传递,连接所有的宏单元。 I/O控制块负责输入输出的电气特性控制,比如集电极开路输出,摆率控制,三态输出等。 图中左上的INPUT/GCLK1,INPUT/GCLRn, INPUT/OE1, INPUT/OE2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与CPLD中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。

21 宏单元:MAX7000系列的单个宏单元结构 来自于别的宏单元未被使用的乘积项 五 个乘积项输入 逻辑阵列 取反后反馈到逻辑阵列中 全局 清零
PRN CLRN ENA 逻辑阵列 全局 清零 共享 逻辑 扩展项 时钟 清零选择 寄存器旁路 并行 通往 I/O 模块 通往 PIA 乘积项选择矩阵 来自 I/O引脚 Q D EN 来自 PIA的 36个信号 快速输入选择 2 来自于别的宏单元未被使用的乘积项 个乘积项输入 取反后反馈到逻辑阵列中

22 左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。
图右侧是一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚,做组合逻辑电路的设计。

23 可编程连线:器件的专用输入、I/O引脚、和宏单元输出
都连接到PIA,而PIA可以把这些信号可根据需要送到 整个器件内的各个地方。

24 I/O控制块:

25 乘积项结构PLD的逻辑实现原理 假设组合逻辑的输出(AND3的输出)为f,则f=(A+B)*C*(!D)=A*C*!D + B*C*!D ( 我们以!D表示D的“非”)                                                                                                                                                             

26 PLD将以下面的方式来实现组合逻辑f: A,B,C,D由PLD芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。图中每一个叉表示相连(可编程熔丝导通),得到:f= f1 + f2 = (A*C*!D) + (B*C*!D)                                                                                  

27 电路中D触发器直接利用宏单元中的可编程D触发器来实现。
时钟信号CLK由I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。 可编程触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样PLD就完成了所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)

28 上图的电路是一个很简单的例子,只需要一个宏单元就可以完成。
但对于一个复杂的电路,一个宏单元是不能实现的,就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。这样PLD就可以实现更复杂逻辑。 这种基于乘积项的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。

29 共享扩展乘积项结构:

30 并联扩展项结构:

31 CPLD: 乘积项(product-term)技术
EEPROM工艺 FPGA: 查找表(look-up table)技术 SRAM工艺

32 2.3 FPGA简介 基于SRAM工艺、查找表技术

33 什么是查找表? 查找表与乘积项相比优缺点是什么? 为什么FPGA选用查找表技术? FPGA的结构和工作原理是什么?

34 什么是查找表?

35 查找表(Look-Up-Table)的原理与结构
查找表:LUT本质上是一个RAM 目前FPGA中多使用4输入LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。 通过原理图或HDL语言描述的逻辑电路,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM, 这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

36 一个4输入与门的例子 实际逻辑电路 LUT的实现方式 a,b,c,d 输入 逻辑输出 地址 RAM中存储的内容 0000 0001 1111
                                                                                                                         a,b,c,d 输入 逻辑输出 地址 RAM中存储的内容 0000 0001 .... ... 1111 1

37 查找表与乘积项相比优缺点是什么? 为什么FPGA选用查找表技术? 为什么? 乘积项:结构简单,时延固定; 查找表:运算功能强大,应用更为灵活
通常,乘积项结构应用于低端的CPLD,而查找表结构 广泛运用于高端的FPGA。 为什么?

38 FPGA的结构和工作原理: I/O控制单元 . IOC EAB 嵌入式 阵列块 快速通道互连 逻辑阵列块 (LAB) 逻辑单元

39 Altera公司的Cyclone 系列FPGA具有低功耗、高 性价比的优点,在中低端产品中应用很广泛。
逻辑阵列块LAB 嵌入式存储器块 嵌入式硬件乘法器 IO单元 PLL等模块构成 各个模块之间存在丰富的互连线和时钟网络

40 FPGA含有嵌入式存储器,由数十个M9K的存储器块构成,可实现8192位RAM、ROM等存储器功能。
9Kbit的RAM块 FPGA含有嵌入式存储器,由数十个M9K的存储器块构成,可实现8192位RAM、ROM等存储器功能。 Cyclone III中还有嵌入式乘法器,硬件乘法器可大大提高FPGA在处理DSP任务是的能力。 Cyclone III器件中设置了复杂的全局时钟网络,用于实现全局时钟、复位信号。

41 Cyclone FPGA的 LAB结构 41

42 逻辑阵列块LAB是由一系列相邻的LE构成。Cyclone III LAB包含16个LE,LAB间存在行互连、列互连、直连通路互连、LAB局部互连、LE进位链和寄存器链。
进位链用来连接LE的进位输出和下一个LE的进位输入; 寄存器链用来连接LE的寄存器输出和下一个LE的寄存器数据输入。

43 LAB由多个逻辑宏单元LE构成,LE是FPGA器件的最基本的可编程单元。
LE主要由一个4输入的查找表LUT、进位链逻辑、寄存器链逻辑和一个可编程的寄存器构成。 4输入的LUT可完成所有的4输入1输出的组合逻辑功能。每个LE中的可编程寄存器可以被配置称各种触发器形式,而且寄存器具有数据、时钟、时钟使能、清零输入信号。寄存器可旁路。 LE有三个输出驱动内部互连,其中一个驱动局部互连,另两个驱动行或列的互连,LUT和寄存器的输出可单独控制。

44 Cyclone LE结构图

45 普通模式,LE适合通用逻辑应用和组合逻辑的实现。
Cyclone的工作模式 LE可工作在两种操作模式下。 普通模式,LE适合通用逻辑应用和组合逻辑的实现。 data3可作为异步装载信号 四个逻辑输入 多种选择 Cyclone LE普通模式

46 Cyclone LE动态算术模式 算术模式,可以更好的实现加法器、计数器、累加器和比较器。 注意:模式选择是在程序编译时自动实现的,不需要人为指定。

47 控制信号生成 LAB控制信号生成 每个LAB都有专用的逻辑来生成LE的控制信号

48 Cyclone III的I/O支持多种IO接口,符合多种I/O标准。
Low-Voltage Differential Signaling 低压差分信号   1994年由美国国家半导体公司提出的一种信号传输模式,它是一种标准 ,它在提供高数据传输率的同时会有很低的功耗,另外它还有许多其他的优势:   1、低电压电源的兼容性   2、低噪声   3、高噪声抑制能力   4、可靠的信号传输   5、能够集成到系统级IC内   使用LVDS技术的的产品数据速率可以从几百Mbps到2Gbps。   它是电流驱动的,通过在接收端放置一个负载而得到电压,当电流正向流动,接收端输出为1,反之为0   它的摆幅为250mv-450mv LVDS连接 (低压差分串行)

49 2.4 CPLD和FPGA 性能比较

50 尽管CPLD和FPGA都属于可编程器件,有很多共同特点,但由于结构上的差异,它们具有各自的特点:
(1)CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 (2)CPLD的连续式布线结构决定了它的时序延迟是均匀和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 (3)在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。(粗粒度和细粒度的区别)

51 (4)FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
(5)CPLD比FPGA使用起来更方便。CPLD的编程采用EEPROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。 (6)CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且LAB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

52 (7)在编程方式上,CPLD主要是基于EEPROM或FLASH存储器编程,优点是系统断电时编程信息也不丢失。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 (8)一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

53 2.5 硬件测试技术 2.5.1 内部逻辑测试 CPLD/FPGA内部逻辑测试是应用设计可靠性的重要保证。
2.5 硬件测试技术 内部逻辑测试 CPLD/FPGA内部逻辑测试是应用设计可靠性的重要保证。 内部逻辑测试需要在设计时加入用于测试的专用逻辑,进行可测性设计(DFT),在设计完成后用来测试关键逻辑。 ASIC设计中的可测性设计常采用扫描寄存器方式,把关键逻辑部分的普通寄存器用测试扫描寄存器来代替,从而进行动态的测试、分析。 FPGA厂商在可编程逻辑器件中可动态载入某种逻辑功能模块,与EDA工具软件配合提供嵌入式逻辑分析仪,以发现内部逻辑问题。如Altera的SignalTap II技术。

54 JTAG边界扫描测试 边界扫描电路结构 JTAG开发了IEEE 边界扫描测试技术规范,提供了有效地测试引线致密的电路板上集成电路芯片的能力。 器件的边界扫描单元能够从逻辑跟踪引脚信号,或者从引脚或器件核心逻辑信号中捕获数据。 强行加入的测试数据串行地移入边界扫描单元,捕获的数据串行移出并在器件外部同预期结果进行比较。 提供了串行扫描路径,能捕获器件核心逻辑的内容。

55 IEEE 1149.1 标准规定了一个四线串行接口(第五条线是可选的),该接口称作测试访问端口(TAP),用于访问复杂的集成电路(IC)。
表2-1 边界扫描IO引脚功能 引 脚 描 述 功 能 TDI 测试数据输入(Test Data Input) 测试指令和编程数据的串行输入引脚。数据在TCK的上升沿移入。 TDO 测试数据输出(Test Data Output) 测试指令和编程数据的串行输出引脚,数据在TCK的下降沿移出。如果数据没有被移出时,该引脚处于高阻态。 TMS 测试模式选择(Test Mode Select) 控制信号输入引脚,负责TAP控制器的转换。TMS必须在TCK的上升沿到来之前稳定。 TCK 测试时钟输入(Test Clock Input) 时钟输入到BST电路,一些操作发生在上升沿,而另一些发生在下降沿。 TRST 测试复位输入(Test Reset Input) 低电平有效,异步复位边界扫描电路(在IEEE规范中,该引脚可选)。 IEEE 标准规定了一个四线串行接口(第五条线是可选的),该接口称作测试访问端口(TAP),用于访问复杂的集成电路(IC)。 在TDI(测试数据输入)引线上输入到芯片中的数据存储在指令寄存器中或一个数据寄存器中。串行数据从TDO(测试数据输出)引线上离开芯片。边界扫描逻辑由TCK(测试时钟)上的信号计时,而且TMS(测试模式选择)信号驱动TAP控制器的状态。TRST(测试重置)是可选项。

56 JTAG边界扫描测试由测试访问端口的控制器(TAP)管理,而TMS、TRST和TCK引脚管理TAP控制器的操作。
TDI和TDO为数据寄存器提供串行通道,TDI也为指令寄存器提供数据,然后为数据寄存器产生控制控制逻辑。 边界扫描寄存器:由器件引脚上的所有边界扫描单元构成,设计者可用边界扫描寄存器来测试外部引脚的连接,或是在器件运行时捕获内部数据。 边界扫描数据移位方式

57 2.6 编程与配置 CPLD在系统编程 CPLD编程下载连接 在系统可编程(ISP)就是当系统上电并正常工作时,计算机通过系统中的ISP接口直接对其进行编程,器件在编程后立即进入正常工作状态。 MAX7000、MAX3000A系列是采用JTAG接口方式对器件进行在系统编程的。 JTAG用于编程功能有利于各可编程逻辑器件编程接口的统一。

58 多个支持JTAG接口ISP编程的CPLD器件,可以使用JTAG链进行编程,也可以进行测试。
多CPLD芯片ISP编程连接方式

59 2.6.2 FPGA配置方式 基于SRAM的FPGA器件,没有ISP的概念,代之以ICR(在线可重配置方式)。
Altera的FPGA可采用多种配置模式,通过MSEL引脚电平决定究竟采用哪种模式。工程上最常用的配置模式主要有以下三种: JTAG模式 AS(主动串行)模式 PS(被动串行)模式

60 FPGA专用配置器件 PC机直接对FPGA进行配置,具有方便的特点。但当数字系统设计完成,正式投入使用时,在应用现场的FPGA加电配置,需要专用的配置器件来完成。 专用配置器件通常是串行的PROM器件。Altera针对自己的FPGA芯片推出特定的PROM器件,如用于PS配置的EPC2、EPC4等系列器件,用于AS配置的EPCS1、EPCS4等系列器件。而对这些PROM器件的编程,EPC芯片可采用JTAG接口完成,EPCS芯片可采用AS模式或JTAG接口完成。 EPCS器件配置FPGA的电路原理图


Download ppt "第2章 FPGA/CPLD结构与应用."

Similar presentations


Ads by Google