1、第八章第八章 可编程逻辑器件可编程逻辑器件(PLD) 集成电路规模的大小,经常用其所包含的晶体管或集成电路规模的大小,经常用其所包含的晶体管或逻辑门的数量来区分,如逻辑门的数量来区分,如 1000个元件或个元件或 100个门以上的个门以上的称为大规模集成电路。而我们讲过的编码器、译码器、称为大规模集成电路。而我们讲过的编码器、译码器、计数器为中规模电路,反相器、与非门为小规模电路。计数器为中规模电路,反相器、与非门为小规模电路。 随着集成电路制造工艺的飞速发展,集成度不断提随着集成电路制造工艺的飞速发展,集成度不断提高因此划分的标准也不断提高,几十高因此划分的标准也不断提高,几十几百门、几百几
2、百门、几百几几千门、几千千门、几千几万门成为小、中、大的划分标准。几万门成为小、中、大的划分标准。 大规模集成电路的结构不一定是中小规模电路的简大规模集成电路的结构不一定是中小规模电路的简单集成,它通常常常作为一个相对独立的数字系统,完单集成,它通常常常作为一个相对独立的数字系统,完成某一方面的功能。典型的大规模集成电路有:微处理成某一方面的功能。典型的大规模集成电路有:微处理器、存储器、可编程逻辑器件等。器、存储器、可编程逻辑器件等。 从应用角度来看,大规模集成电路可分为通用型和从应用角度来看,大规模集成电路可分为通用型和专用型两类。通用型由生产厂家设计制作,力求满足大专用型两类。通用型由生
3、产厂家设计制作,力求满足大多数用户的需要;专用型是根据某一用户的特殊要求而多数用户的需要;专用型是根据某一用户的特殊要求而专门设计制作的。专门设计制作的。 设计专用集成电路有以下几种形式:设计专用集成电路有以下几种形式: 专用集成电路专用集成电路 ASIC ( Application SpecificIntegrated Circuits) 先由用户提出设计要求,或给出先由用户提出设计要求,或给出设计的软件,再由厂家制作。前期投入较大,适于大批设计的软件,再由厂家制作。前期投入较大,适于大批量生产。量生产。 可编程逻辑器件可编程逻辑器件 PLD ( Programmable Logic Dev
4、ice ) 由用户自己完成设计和编程。单片成本相由用户自己完成设计和编程。单片成本相对较高,但几乎不需要前期投入,综合成本完全可以接对较高,但几乎不需要前期投入,综合成本完全可以接受,适于小批量使用。受,适于小批量使用。 一、可编程逻辑器件一、可编程逻辑器件 EPROM、E2PROM都是可编程器件,可以实现组合都是可编程器件,可以实现组合逻辑函数,但它们的主要用途是存储数据,所以将它们逻辑函数,但它们的主要用途是存储数据,所以将它们单列出去。单列出去。 通常我们所说的可编程逻辑器件主要由以下几种:通常我们所说的可编程逻辑器件主要由以下几种: 可编程逻辑阵列(可编程逻辑阵列(PLA)“与阵列与阵
5、列”、“或阵或阵列列”都可编程,更加灵活,都可编程,更加灵活,“与阵列与阵列”可有选择地提供可有选择地提供部分最小项,有利于简化电路。部分最小项,有利于简化电路。一次性编程一次性编程。 可编程阵列逻辑(可编程阵列逻辑(PAL) “与阵列与阵列”可编程,可编程,“或阵列或阵列”固定,输出形式多种多样可选:三态、反馈、固定,输出形式多种多样可选:三态、反馈、触发器,但不可全部兼得。触发器,但不可全部兼得。一次性编程一次性编程。 通用阵列逻辑(通用阵列逻辑(GAL)“与阵列与阵列”可编程,可编程,“或阵列或阵列”固定(个别型号可编程),采用固定(个别型号可编程),采用E2PROM和和CMOS静态静态
6、RAM技术,可以有限次重复使用。技术,可以有限次重复使用。 GAL的输出采用逻辑宏单元,包括所有输出形式。的输出采用逻辑宏单元,包括所有输出形式。不用选择不同类型的芯片。不用选择不同类型的芯片。 以上三种属于早期的小规模的以上三种属于早期的小规模的PLD器件,内部结构器件,内部结构简单,工作速度快,适于完成较简单的逻辑功能。简单,工作速度快,适于完成较简单的逻辑功能。 现场可编程门阵列(现场可编程门阵列(FPGA:Field ProgrammableGates Array) 在在PAL、GAL的基础上发展起来的,的基础上发展起来的,规模较大,外部引脚多,内部资源丰富,有的包含几十规模较大,外部
7、引脚多,内部资源丰富,有的包含几十万个逻辑门,可以构成一个独立的子系统。万个逻辑门,可以构成一个独立的子系统。 内部包含内部包含RAM结构,上电下载,掉电丢失。便于修改逻辑设计。结构,上电下载,掉电丢失。便于修改逻辑设计。 复杂的可编程逻辑器件(复杂的可编程逻辑器件(CPLD:Complex Progra-mmable Logic Device ) 与与FPGA类似类似 1、PLA可编程逻辑阵列(与或阵列均可编程)可编程逻辑阵列(与或阵列均可编程) 四条与输出线,也可以解四条与输出线,也可以解 决三变量逻辑问题。决三变量逻辑问题。 2、PAL可编程阵列逻辑可编程阵列逻辑 熔丝结构,与阵列可编程
8、,或阵列固定。熔丝结构,与阵列可编程,或阵列固定。 3、GAL通用阵列逻辑通用阵列逻辑 GAL从阵列结构上分有两类:从阵列结构上分有两类: PAL型型-与阵列可编程,或阵列固定,与与阵列可编程,或阵列固定,与PAL一致。一致。 PLA型型-与、或阵列均可编程,与与、或阵列均可编程,与PLA一致。一致。 GAL的电路特点是:的电路特点是: GAL采用采用E2PROM的浮栅技术,可以电擦除重复使用。的浮栅技术,可以电擦除重复使用。 GAL采用逻辑宏单元(采用逻辑宏单元(LMC),将输出、输入的多种),将输出、输入的多种形式集于一身,可通过编程选择,使芯片型号种类减少。形式集于一身,可通过编程选择,
9、使芯片型号种类减少。 GAL的编程方式有两类:的编程方式有两类:用专用编程器或在线编程。用专用编程器或在线编程。 GAL目前仍然在广泛应用,主要用于综合几种逻辑目前仍然在广泛应用,主要用于综合几种逻辑门电路,不规则译码器,实现专用逻辑功能等。门电路,不规则译码器,实现专用逻辑功能等。 常用的常用的GAL芯片有芯片有GAL16V8、GAL20V8等,下面等,下面我们简单介绍一下我们简单介绍一下GAL的内部结构。的内部结构。以以GAL16V8为例。为例。 GAL内部输出逻辑宏单元的内部结构内部输出逻辑宏单元的内部结构 GAL的编程有相应的软件,可以用逻辑图的形式给的编程有相应的软件,可以用逻辑图的
10、形式给出,也可以用特定格式的表达式描述。出,也可以用特定格式的表达式描述。 无论用什么方式描述逻辑功能,最终都要编译成对无论用什么方式描述逻辑功能,最终都要编译成对应交叉点通断的编程文件,最后用编程器写入就可以了。应交叉点通断的编程文件,最后用编程器写入就可以了。 GAL设有加密位,加密后不能读出内部的编程状态。设有加密位,加密后不能读出内部的编程状态。但目前有解密的方法,所以不可靠。但目前有解密的方法,所以不可靠。4、复杂的可编程逻辑器件(复杂的可编程逻辑器件(CPLD) 随着集成工艺的发展,随着集成工艺的发展,PLD的集成规模已经有了的集成规模已经有了很大的改变。很大的改变。CPLD就是一
11、种集成度远远高于就是一种集成度远远高于PAL和和GAL的电路。的电路。 CPLD有两大类:有两大类: 基本结构的基本结构的CPLD-仍然保持仍然保持GAL的特点,与阵的特点,与阵列加宏单元结构。主要是规模扩大,其次在相邻乘积列加宏单元结构。主要是规模扩大,其次在相邻乘积项的利用、触发器结构方面也有所改进。项的利用、触发器结构方面也有所改进。 分区阵列结构的分区阵列结构的CPLD-将整个器件划分为若干将整个器件划分为若干个区域,每个区域相当于一个个区域,每个区域相当于一个GAL,通过全局互连总,通过全局互连总线将各个区域连接起来。线将各个区域连接起来。 下面介绍一下分区阵列结构的几种形式。下面介
12、绍一下分区阵列结构的几种形式。 分区阵列结构有以下几种形式:分区阵列结构有以下几种形式: 通用互连阵列通用互连阵列UIM结构结构 多阵列矩阵多阵列矩阵MAX结构结构 灵活逻辑单元阵列灵活逻辑单元阵列FLEX结构结构 其他结构形式其他结构形式 CPLD举例举例(以(以FLEX结构的结构的EPF10K20为例)为例) LE逻辑单元逻辑单元-最小的逻辑单位最小的逻辑单位 逻辑阵列块逻辑阵列块LAB 由由8个个LE及控制、互连、级联进位信号组成。及控制、互连、级联进位信号组成。 嵌入阵列块嵌入阵列块EAB 由输入输出端带有寄存器的由输入输出端带有寄存器的 RAM / ROM 组成。组成。 CPLD的主
13、要特点:的主要特点: 可重复编程、擦除或配置数据。可重复编程、擦除或配置数据。 采用多种存储器类型采用多种存储器类型EPROM、E2PROM、FLASH 和和SRAM等,高(密度、速度、可靠性),低功耗。等,高(密度、速度、可靠性),低功耗。 内部时间延迟固定、可预测,易消除冒险竞争。内部时间延迟固定、可预测,易消除冒险竞争。 有多级加密位,具有较好的保密性。有多级加密位,具有较好的保密性。 5、现场可编程门阵列、现场可编程门阵列 FPGA FPGA是另一种高密度是另一种高密度PLD芯片。它由三个可编程芯片。它由三个可编程模块组成,编程的结果存放在一个模块组成,编程的结果存放在一个SRAM中,
14、所以需要中,所以需要上电时下载编程数据。上电时下载编程数据。 FPGA三个模块之间的关系如下:三个模块之间的关系如下: 下面简单介绍下面简单介绍FPGA的三种模块的三种模块 可配置逻辑模块可配置逻辑模块CLB可编程可编程 I/O 模块模块 (IOB) 可编程内部互连资源(可编程内部互连资源(ICR) FPGA的特点:的特点: 采用采用SRAM编程技术,高(密度、速度、可靠性),编程技术,高(密度、速度、可靠性), 低功耗。但每次上电后要重新写入编程。低功耗。但每次上电后要重新写入编程。 结构灵活,结构灵活,CLB、IOB和和ICR均可编程,便于实现均可编程,便于实现 各种组合和时序逻辑电路。各
15、种组合和时序逻辑电路。 不同延时的内部连线混合使用,使传输延时不可不同延时的内部连线混合使用,使传输延时不可 预测。预测。 FPGA和和CPLD的设计编程都有相应的软件平台,可的设计编程都有相应的软件平台,可以方便地完成以下几个功能:以方便地完成以下几个功能: 设计输入设计输入 用逻辑图或硬件描述语言用逻辑图或硬件描述语言 前仿真前仿真 布局布线前,先验证电路功能是否有效。布局布线前,先验证电路功能是否有效。 编译编译 将高层行为设计转为底层网表数据。将高层行为设计转为底层网表数据。 优化优化 简化电路规模。简化电路规模。 布局布线布局布线 针对针对FPGA或或CPLD作出具体规划设计。作出具
16、体规划设计。 后仿真后仿真 根据实际布局布线的根据实际布局布线的RC参数再次验证电路参数再次验证电路 功能、时序。功能、时序。 编程编程 对芯片进行实际连线。对芯片进行实际连线。 附加说明:附加说明:VHDL硬件描述语言硬件描述语言 硬件描述语言(硬件描述语言(HDL=Hardware DescriptionLanguage ) 是一种用来描述硬件电路功能的规范性语言。是一种用来描述硬件电路功能的规范性语言。它和编写计算机程序所用的高级语言十分相似。有源文它和编写计算机程序所用的高级语言十分相似。有源文件,可编译成编程数据,有库资源可供利用。件,可编译成编程数据,有库资源可供利用。 用用HDL
17、设计逻辑电路已成为一种崭新的硬件电路设设计逻辑电路已成为一种崭新的硬件电路设计方法。计方法。 硬件描述语言有多种形式,互不兼容。由美国国防硬件描述语言有多种形式,互不兼容。由美国国防部设计的部设计的VHDL语言是最具代表性的,已成为一种标准语言是最具代表性的,已成为一种标准的硬件描述语言。的硬件描述语言。 用用VHDL设计硬件电路有许多优点,如比原理图容设计硬件电路有许多优点,如比原理图容易阅读、表达形式简单、易于修改、易于保存,便于借易阅读、表达形式简单、易于修改、易于保存,便于借用已有设计(库调用),用已有设计(库调用), 等等。等等。 学习学习VHDL语言的语法格式、规则有专门的课程,也语言的语法格式、规则有专门的课程,也可以自己看书学习。希望同学们有时间关心一下有关这方可以自己看书学习。希望同学们有时间关心一下有关这方面的内容。面的内容。 下面举一个简单的例子,说明用下面举一个简单的例子,说明用VHDL描述硬件电路的方法。描述硬件电路的方法。例如:用例如:用VHDL语言定义一个二选一数据语言定义一个二选一数据选择器。选择器。 返回返回 返回返回 返回返回