620 likes | 955 Views
第 1 章 可编程逻辑器件的 硬件结构及其开发流程. 可编程逻辑器件 PLD 的定义. 逻辑器件:用来实现某种特定逻辑功能的电子器件,最简单的逻辑器件是与、或、非门( 74LS00 , 74LS04 等),在此基础上可实现复杂的时序和组合逻辑功能。 可编程逻辑器件( PLD -- Programmable Logic Device ):器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。. PLD 类型. ( 1 ) PROM ( Programmable ROM )
E N D
第1章 可编程逻辑器件的 硬件结构及其开发流程
可编程逻辑器件PLD的定义 • 逻辑器件:用来实现某种特定逻辑功能的电子器件,最简单的逻辑器件是与、或、非门(74LS00,74LS04等),在此基础上可实现复杂的时序和组合逻辑功能。 • 可编程逻辑器件(PLD--Programmable Logic Device):器件的功能不是固定不变的,而是可根据用户的需要而进行改变,即由编程的方法来确定器件的逻辑功能。
PLD类型 (1)PROM(Programmable ROM) (2)PLA( Programmable Logic Array 可编程逻辑阵列) (3)PAL( Programmable Array Logic可编程阵列逻辑) (4)GAL(GenericArray Logic通用阵列逻辑) 简单 清华大学电机系唐庆玉 2003年11月15日编 较复杂 (5)CPLD( ComplexPLD) (6)FPGA(Field Programmable Gate Array现场可编程门阵列) 最复杂
1 & & ≥1 ≥1 =1 门电路符号中美对照表 与 或 非 与非 或非 异或
不连接 固定连接 编程连接 熔丝或其他开关器件 PLD的逻辑表示方法及图形符号 PLD的逻辑表示方法
A A A A A A & 1 A B C Y A A & 1 & Y Y B B C C A B C Y A B C A Y B Y PLD的图形符号 相当于 缓冲门 与门 或门 可编程连接或不连接
PLD基本结构大致相同,根据与或阵列是否可编程分为三类:PLD基本结构大致相同,根据与或阵列是否可编程分为三类: PLD的结构 (1)与固定、或编程:ROM和PROM (2)与或全编程:PLA (3)与编程、或固定:PAL、GAL 1.与固定、或编程:与阵列全固定,即全译码;ROM和PROM
I2 I1 I0 输入 输出 O2 O1 O0 PLA的内部结构及编程 OR阵列可编程 AND阵列可编程 清华大学电机系唐庆玉 2003年11月15日编
A2 A1 A0 三八译码器真值表 A2 A1 A0 A2 A1 A0 输出 A0 A1 A2 0 0 0 只=0 0 0 1 只=0 Y0 Y1 Y7 1 1 1 只=0 Y0 Y1 Y7 用PLA实现三八译码器 ……
3.与编程、或固定:代表器件PAL(Programmable Array Logic) 和GAL(Generic Array Logic)。, 这种结构中,或阵列固定若干个乘积项输出,见下图。
× C × A A B C B × × × X × × × 英文教材《数字电子技术》习题选编 清华大学电机系 唐庆玉 2002年9月16日 例 写出PAL(GAL)阵列输出X的表达式 将此式化简
A B C × × × × × X × × × × × × × 英文教材《数字电子技术》习题选编 清华大学电机系 唐庆玉 2002年9月16日 例:Y=AB C,用PAL(GAL)阵列实现该式。
逻辑宏单元 GAL结构 OLMC • GAL器件(通用阵列逻辑,Generic Array Logic)与PAL器件的区别在于用可编程的输出逻辑宏单元(OLMC)代替固定的或阵列。可以实现时序电路。
GAL器件的OLMCOutput Logic Macro Cell 输出使能选择 • 每个OLMC包含或阵列中的一个或门 • 组成: • 异或门:控制输出信号的极性 • D触发器:适合设计时序电路 • 4个多路选择器 或门控制选择 输出选择 反馈信号选择
CPLD内部结构(Altera的MAX7000S系列) 逻辑阵列模块 I/O单元 连线资源 逻辑阵列模块中包含多个宏单元
乘积项逻辑阵列 可编程 触发器 乘积项选择矩阵 宏单元内部结构
可编程的I/O单元 • 能兼容TTL和CMOS多种接口和电压标准 • 可配置为输入、输出、双向、集电极开路和三态等形式 • 能提供适当的驱动电流 • 降低功耗,防止过冲和减少电源噪声 • 支持多种接口电压(降低功耗) • 1.2~0.5um,5V • 0.35um,3.3V • 0.25um,internal 2.5V,I/O3.3V • 0.18um,internal 1.8V,I/O2.5V and 3.3V
可编程连线阵列(PIA) • 在各个逻辑宏单元之间以及逻辑宏单元与I/O单元之间提供信号连接的网络 • CPLD中一般采用固定长度的线段来进行连接,因此信号传输的延时是固定的,使得时间性能容易预测。
管脚数目: • 208个 • 电源: • 3.3V(I/O) • 2.5V(内核) • 速度 • 250MHz • 内部资源 • 4992个逻辑单元 • 10万个逻辑门 • 49152 bit的RAM
实际逻辑电路 LUT的实现方式 a,b,c,d 输入 逻辑输出 地址 RAM中 存储的内容 0000 0 0000 0 0001 0 0001 0 .... 0 ... 0 1111 1 1111 1 查找表LUT与FPGA N个输入的逻辑函数需要2的N次方的容量的SRAM来实现,一般多个输入的查找表采用多个逻辑块级连的方式
FPGA中的逻辑阵列块(LAB) LE LAB
查找表逻辑结构 图3-32 FPGA查找表单元 图3-33 FPGA查找表单元内部结构
FPGA中的嵌入式阵列(EAB) • 可灵活配置的RAM块 • 用途 • 实现比较复杂的函数的查找表,如正弦、余弦等。 • 可实现多种存储器功能,如RAM,ROM,双口RAM,FIFO,Stack等 • 灵活配置方法:256×8,也可配成512×4
小结-PLD器件的优点 • 集成度高,可以替代多至几千块通用IC芯片 • 极大减小电路的面积,降低功耗,提高可靠性 • 可以反复地擦除、编程,方便设计的修改和升级 • 灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间 • 具有完善先进的开发工具 • 提供语言、图形等设计方法,十分灵活 • 通过仿真工具来验证设计的正确性 • 保密性好
PLD的发展趋势 • 向高集成度、高速度方向进一步发展 • 最高集成度已达到400万门 • 向低电压和低功耗方向发展,5V3.3V2.5V1.8V更低 • 内嵌多种功能模块 • RAM,ROM,FIFO,DSP,CPU • 向数、模混合可编程方向发展
FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此,需在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD器件一般采用EEPROM存储技术,可重复编程,并且系统掉电后,EEPROM中的数据不会丢失,适于数据的保密。
FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个LAB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。FPGA器件含有丰富的触发器资源,易于实现时序逻辑,如果要求实现较复杂的组合电路则需要几个LAB结合起来实现。CPLD的与或阵列结构,使其适于实现大规模的组合功能,但触发器资源相对较少。
FPGA为细粒度结构,CPLD为粗粒度结构。FPGA内部有丰富连线资源,LAB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。FPGA为细粒度结构,CPLD为粗粒度结构。FPGA内部有丰富连线资源,LAB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。
FPGA与CPLD的区别 • FPGA为非连续式布线,CPLD为连续式布线。FPGA器件在每次编程时实现的逻辑功能一样,但走的路线不同,因此延时不易控制,要求开发软件允许工程师对关键的路线给予限制。CPLD每次布线路径一样,CPLD的连续式互连结构利用具有同样长度的一些金属线实现逻辑单元之间的互连。连续式互连结构消除了分段式互连结构在定时上的差异,并在逻辑单元之间提供快速且具有固定延时的通路。CPLD的延时较小。
JTAG:起源 • 随着IC技术的发展,PCB越来越复杂,尤其是SMD器件(surfacemount packaging device) 的大量使用,PCB面积越越小。 • 传统测试方法 难以使用 • external test probes(外部测试探针) • “bed-of-nails” test fixtures(针床测试设备) • 1980年,JTAG(the Joint Test Action Group)组织提出了一种新的测试方案
JTAG:功能 • 有3个功能: • 内部测试一IC内部的逻辑测试 • 外部测试一IC间相互连接的测试(PCB线路测试) • 取样测试一IC正常运行时的数据取样测试 • 现在,JTAG电路和接口被广泛用于芯片的代码下载。
JTAG:结构 • 定义了一种 boundary-scan testing 方法,在IC芯片中增加实现这种测试的电路。 • 该方法后来成为IEEE1149.1标准 • 图示:
PLD器件的配置与编程 • 何谓配置和编程? • 将VHDL代码形成的文件写入PLD器件的过程 • 配置(configure)和编程(program)的区别 • Program:对flash或者EEPROM工艺的配置芯片或者PLD器件进行写入的过程 • Configure:对SDRAM工艺的FPGA写入数据必须每次上电后均要进行一次,编程文件保存在配置芯片中,上电时从编程芯片下载到FPGA中
CPLD器件可独立使用,无需其他编程芯片,直接通过JTAG接口或其他接口进行编程CPLD器件可独立使用,无需其他编程芯片,直接通过JTAG接口或其他接口进行编程 • FPGA器件不能独立使用(调试时可以),需要和配置芯片一起使用,在生产时,代码写入配置芯片中,应用时,加电后代码自动从配置芯片写入FPGA中
编程与配置方法 JTAG方式的在系统编程CPLD
3.7.5 使用CPLD配置FPGA 使用单片机配置的缺点: 1、速度慢,不适用于大规模FPGA和高可靠应用; 2、容量小,单片机引脚少,不适合接大的ROM以存储较大的配置文件; 3、体积大,成本和功耗都不利于相关的设计。
大的PLD生产厂家 • www.altera.com • 最大的PLD供应商之一 • www.xilinx.com • FPGA的发明者,最大的PLD供应商之一 • www.latticesemi.com • ISP技术的发明者 • www.actel.com • 提供军品及宇航级产品
Altera公司的PLD器件综述 • PLD器件 • MAXII • 主流FPGA产品 • Cyclone • CycloneII • Stratix • FPGA配置芯片 • 配置EEPROM • Cyclone专用配置器件 • 早期器件,大部分已经停产
MAX II • 新一代PLD器件, 2004年底推出 • 0.18um falsh工艺, • 采用FPGA结构,配置芯片集成内部和普通PLD一样上电即可工作。