770 likes | 1.22k Views
第3章 FPGA/CPLD 结构与应用. FPGA - F ield P rogrammable G ate A rray CPLD - C omplex P rogrammable L ogic D evice. 3.1 概 述. 图3-1 基本 PLD 器件的原理结构图. 3.1.1 可编程逻辑器件的发展历程. EPLD 器件. PROM 和 PLA 器件. 改进的 PLA 器件. GAL 器件. CPLD 器件. FPGA 器件. 内嵌复杂 功能模块 的 SoPC. 70年代. 80年代. 90年代.
E N D
第3章 FPGA/CPLD结构与应用
FPGA - Field Programmable Gate Array CPLD - Complex Programmable Logic Device
3.1 概 述 图3-1 基本PLD器件的原理结构图
3.1.1 可编程逻辑器件的发展历程 EPLD 器件 PROM 和PLA 器件 改进的 PLA 器件 GAL器件 CPLD器件 FPGA器件 内嵌复杂 功能模块 的SoPC 70年代 80年代 90年代
3.1.2 可编程逻辑器件的分类 图3-2 按集成度(PLD)分类
3.2 简单PLD原理 3.2.1 电路符号表示 图3-3 常用逻辑门符号与现有国标符号的对照
3.2.1 电路符号表示 图3-4PLD的互补缓冲器 图3-5 PLD的互补输入 图3-6 PLD中与阵列表示 图3-7 PLD中或阵列的表示 图3-8 阵列线连接表示
3.2.2 PROM 图3-9 PROM基本结构: 其逻辑函数是:
3.2.2 PROM 图3-10 PROM的逻辑阵列结构 逻辑函数表示:
3.2.2 PROM 图3-12 用PROM完成半加器逻辑阵列 图3-11 PROM表达的PLD图阵列
3.2.3 PLA 图3-13 PLA逻辑阵列示意图
3.2.3 PLA 图3-14 PLA与 PROM的比较
3.2.4 PAL 图3-15PAL结构: 图3-16 PAL的常用表示:
3.2.4 PAL 图3-17 一种PAL16V8的部分结构图
3.2.5 GAL 图3-18 GAL16V8的结构图
3.2.5 GAL 乘积项逻辑 GAL: General Array Logic Device 最多有8个或项,每个或项最多有32个与项 EPLD Erasable Programmable Logic Device
时钟信 号输入 输入口 逻辑宏单元 GAL16V8 输入/输出口 固定或阵列 可编程与阵列 三态控制
3.2.5 GAL 图3-20寄存器模式组合双向输出结构 图3-19寄存器输出结构
3.2.5 GAL 图3-22 复合型组合输出结构 图3-21 组合输出双向结构
3.2.5 GAL 图3-24输出反馈结构 图3-23 反馈输入结构
3.2.5 GAL 图3-25 简单模式输出结构
D Q EN 3.3 CPLD结构与工作原理 图3-26 MAX7000系列的单个宏单元结构 来自 PIA的 36个信号 全局 清零 全局 时钟 来自 I/O引脚 并行 扩展项 快速输入选择 2 寄存器旁路 通往 I/O 模块 PRN 乘积项选择矩阵 ENA CLRN 时钟 清零选择 清零 共享 逻辑 扩展项 逻辑阵列 通往 PIA
3.3 CPLD结构与工作原理 (1) 逻辑阵列块(LAB) 图3-27- MAX7128S的结构
3.3 CPLD结构与工作原理 (2) 宏单元 (3) 扩展乘积项 图3-28 共享扩展乘积项结构
3.3 CPLD结构与工作原理 (4) 可编程连线阵列 (5) 不同的LAB通过在可编程连线阵列(PIA)上布线,以相互连接构成所需的逻辑。 图3-30 PIA信号布线到LAB的方式
(6)I/O控制块 图3-31-EPM7128S器件的I/O控制块
3.4 FPGA结构与工作原理 3.4.1 查找表 图3-32 FPGA查找表单元: 图3-33 FPGA查找表单元内部结构
输入1 查黑 找盒 表子 输入2 输出 输入3 输入4 基于查找表的结构模块 什么是查找表? • 一个N输入查找表 (LUT,Look Up Table)可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。 • 输入多于N个的函数、方程必须分开用几个查找表( LUT)实现
查找表原理 输入 A 输入 B 输入C 输入D 0 0 多路选择器 0 0 0 1 查找表 输出 16x1 RAM 1 0 0 0 0 0 0 0 1 1
. . . . . . . . . IOC IOC IOC IOC IOC IOC IOC . . . IOC IOC . . . IOC . . . . . . . . . IOC IOC IOC IOC IOC IOC 3.4.2 FLEX10K系列器件 图3-34 FLEX 10K内部结构 快速通道互连 . . . IOC IOC . . . IOC IOC 逻辑单元 逻辑阵列块 (LAB)
连续布线和分段布线的比较 连续布线 ( Altera 基于查找表(LUT)的 FPGA ) LAB LE 连续布线 = 每次设计重复的可预测性和高性能
FLEX 10K系列FPGA结构图 . . . . . . . . . . . . IOC IOC IOC IOC IOC IOC IOC IOC 嵌入式 阵列块 IOC IOC . . . . . . IOC IOC EAB IOC IOC . . . . . . IOC IOC EAB . . . . . . . . . . . . IOC IOC IOC IOC IOC IOC IOC IOC
级联输入 进位输入 LE 输出 数据1 数据2 查找表 (LUT) 进位链 级联链 D Q 数据3 数据4 CLRN 清零和 预置逻辑 Lab 控制 1 Lab 控制 2 时钟选择 Lab 控制 3 Lab 控制 4 进位输出 级联输出 (1) 逻辑单元LE 图3-35 LE(LC)结构图
进位输入 (来自上一个逻辑单元) 查找表 LUT A1 DFF S1 B1 进位链 LE1 查找表 LUT A2 DFF S2 B2 进位链 LE2 进位输出 (到 LAB中的下一个逻辑单元) (1) 逻辑单元LE 图3-36 进位链连通LAB中的所有LE 快速加法器, 比较器和计数器
“与”级联链 “或”级联链 2.4 ns LE1 LE1 LUT LUT IN [3..0] IN [3..0] 0.6 ns LE2 LE2 LUT LUT IN [4..7] IN [4..7] 16位地址译码速度可达 2.4 + 0.6x3=4.2 ns LEn LEn IN [(4n-1)..4(n-1)] IN [(4n-1)..4(n-1)] LUT LUT (1) 逻辑单元LE 图3-37 两种不同的级联方式
(2) 逻辑阵列LAB是由一系列的相邻LE构成的 图3-38-FLEX10K LAB的结构图
(3) 快速通道(FastTrack) (4) I/O单元与专用输入端口 图3-39 IO单元结构图
2048x1 1024x2 512x4 256x8 512x4 256x8 512x8 256x16 256x8 512x4 EAB 的字长是可配置的 • EAB的大小灵活可变 • 通过组合EAB 可以构成更大的模块 • 不需要额外的逻辑单元,不引入延迟, EAB 可配置为深度达2048的存储器
数据宽度8,4,2,1 输出宽度8,4,2,1 RAM/ROM 256x8 512x4 1024x2 2048x1 D D 地址宽度 8,9,10,11 D D 写使能 写脉冲电路 输入时钟 输出时钟 (5) 嵌入式阵列块EAB是在输入、输出口上带有寄存器的RAM块,是由一系列的嵌入式RAM单元构成。 图3-40 用EAB构成不同结构的RAM和ROM
实例: 4x4 乘法器 90 MHz LE LE LE + (6 LE) LE LE LE 8 8 8 LE + (7 LE) VS LE EAB LE LE LE + (6 LE) LE LE LE LE LE 非流水线结构,使用35个 LE,速度为 34 MHz 流水线结构速度为100 MHz, 用EAB实现的流水线乘法器操作速度可达 90 MHz! EAB 可以用来实现乘法器
典型可用门 存储器容量 (单位: Bit) EPF10K5/V EPF10K40 EPF10K70 EPF10K20 EPF10K130V EPF10K250A EPF10K10/A EPF10K30/A EPF10K100/A FLEX10K系列逻辑规模
Altera EPF10K100E 相对管芯尺寸: 0.6 0.25 µ工艺 4,992个逻辑单元(LE) 12 个EAB Altera EPF10K100A 相对管芯尺寸: 1.0 0.35 µ工艺 4,992个逻辑单元(LE) 12 个EAB Xilinx XC4062XL 相对管芯尺寸: 1.91 0.35 µ工艺 相当于4,608个逻辑单元(LE)* 没有EAB * 1个 CLB 相当于 2 两个LE 管芯尺寸比较
崩溃电压 5.0 V 3.3 V 供电电压 2.5 V 1.8 V 工艺改进促使供电电压降低
FPGA/CPLD多电压兼容系统 接受 2.5V、3.3V 或者 5.0V 输入 内核电压 3.3V、 2.5V或 1.8V 输出电位 标准 Vccio
5.0 V 3.3 V 初始设计百分比 2.5 V 1.8 V 资料来源:美国Altera公司 FPGA/CPLD不同芯核电压器件流行趋势
4、FPGA/CPLD生产商 FPGA: FLEX系列:10K、10A、10KE,EPF10K30E APEX系列:20K、20KE EP20K200E ACEX系列:1K系列 EP1K30、EP1K100 STRATIX系列:EP1系列 EP1S30、EP1S120 CPLD: MAX7000/S/A/B系列:EPM7128S MAX9000/A系列 ALTERA FPGA: XC3000系列, XC4000系列, XC5000系列 Virtex系列 SPARTAN系列:XCS10、XCS20、XCS30 CPLD: XC9500系列:XC95108、XC95256 XILINX
4、FPGA/CPLD生产商 ispLSI系列:1K、2K、3K、5K、8K ispLSI1016 、ispLSI2032、 ispLSI1032E、ispLSI3256A MACH系列 ispPAC系列: LATTICE VANTIS (AMD) CPLD 其他PLD公司: ACTEL公司: ACT1/2/3、40MX ATMEL公司:ATF1500AS系列、40MX CYPRESS公司 QUIKLOGIC公司 SO MUCH IC! FPGA CPLD
FPGA: FLEX系列:10K、10A、10KE,EPF10K30E APEX系列:20K、20KE EP20K200E ACEX系列:1K系列 EP1K30、EP1K100 STRATIX系列:EP1系列 EP1S30、EP1S120 CYCLONE系列:EP1C20 EXCALIBUR系列: CPLD: MAX7000/S/A/B系列:EPM7128S MAX9000/A系列 MAX3000系列 ALTERA
3.5 FPGA/CPLD测试技术 3.5.1 内部逻辑测试 3.5.2 JTAG边界扫描测试 图3-41 边界扫描电路结构