可编程逻辑器件
可编程逻辑器件(PLD)
- PLD
- 固定逻辑标准芯片曾被广泛使用,但功能单一,不能随电路设计的需求而任意改变,逐渐被可编程逻辑器件(Programmable Logic Device,PLD)取代
- PLD是一种用于实现逻辑电路的通用器件,包含多个逻辑单元,可根据需要通过编程开关连接进行编程,以构成不同功能的逻辑电路
- PLD的结构主要由与阵列和或阵列构成


- PROM
- 与阵列固定,或阵列可编程
- 任何逻辑函数转换成标准与-或表达式后,可用PROM来实现与阵列的水平线输出对应标准与-或表达式中的标准乘积项,即最小项

- PLA(可编程逻辑阵列)
- 是一种与阵列和或阵列都可以变成的逻辑阵列
- 无需像PROM一样转换为标准与或表达式,只用最简形式即可,可以节省资源

- PAL(可编程阵列逻辑)
- 与阵列可编程,或阵列固定

- GAL
- PAL的逻辑结构简单,或阵列固定,灵活性差。LATTICE公司推出了一种新型的可编程逻辑器件—GAL。
- 它与PAL最大的差别是其输出逻辑宏单元(Output Logic Macro Cell,OLMC)可以编程定义。
- OLMC设置成不同的工作状态,可适用不同的功能需求。
- GAL具有电可擦写、可重复编程和设置加密位等特点。

- 复杂可编程逻辑器件(Complex PLD,CPLD)
- 主要包括:
- 逻辑阵列块(Logic Array Block,LAB)
- I/O控制块:用于和芯片的I/O引脚互连
- 可编程互联阵列(PIA)
- 每个LAB由4~20个宏单元(Macrocell)构成。宏单元包括:
- 可编程逻辑阵列
- 乘积项选择矩阵
- 可编程寄存器:可以编程实现D、JK或钟控SR触发器等。
- 宏单元有多种配置方式,也可级联使用
- PIA用于连接所有宏单元,并与芯片时钟、复位、使能等引脚连
- CPLD集成度远高于PAL和GAL
- CPLD通常提供带片内RAM/ROM的嵌入式存储器阵列
- 现场可编程门阵列(Field Programmable Gate Array,FPGA)
- 是一种高集成度的复杂可编程逻辑器件,可通过EDA软件对其进行配置和编程,可反复擦写。
- 实现乘法器、寄存器、地址发生器等硬件电路
- 通过使用框图或者Verilog HDL来设计
- FPGA可无限地重新编程,加载一个新的设计方案只需几百毫秒
存储器阵列
- 存储器可用来存储数字电路中的数据。
- 寄存器用来存储少量数据,速度更快
- 存储器阵列用来存储大量数据,速度较寄存器慢
- 在CPLD和FPGA芯片中通常会提供片内存储器阵列
- 存储器阵列中每位数据对应一个记忆单元(cell),称为存储元

- 按功能可分为:只读存储器(Read-only Memory,ROM)和随机存取存储器(Random-access Memory, RAM)
- ROM属于非易失性存储器,即使电源断电,ROM中存储的数据也不会消失。根据工艺的不同,分为:
- 掩膜只读存储器MROM
- 一次可编程只读存储器PROM
- 光擦除可编程只读存储器EPROM
- 电擦除可编程只读存储器EEPROM(E2PROM)
- RAM属于易失性存储器, 一旦电源断电,RAM中存储的数据就消失。
- 静态RAM(Static RAM,SRAM)
- 动态RAM(Dynamic RAM,DRAM)
- ROM存储阵列根据MOS晶体管的有无来区分存储0和1 不同类型的ROM,主要区别在于MOS晶体管的特性不同


- RAM读写原理


FPGA和ASIC
- FPGA设计概述
- 现场可编程门阵列(Field Programmable Gate Array,FPGA)是一种高集成度的复杂可编程逻辑器件,可通过EDA软件对其进行配置和编程,可反复擦写。
- FPGA内部包含大量可配置逻辑块CLB,它由若干查找表(Look-Up Table,LUT)及多路选择器、进位链、触发器FF等附加逻辑组成。
- 可对CLB进行不同配置。如右图:可对MUX编程配置为输出是LUT实现的组合逻辑电路结果Y;也可配置为输出是时序逻辑电路结果Q。
- LUT本质上是一个RAM,多采用SRAM实现
- 函数发生器通过查找表LUT实现,其中的内容可编程配置

LUT存储单元中存放函数输出值,用于实现一个小规模逻辑函数

- 专用集成电路ASIC
- 专用集成电路(Application-Specific Integrated Circuit,ASIC)是一种应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
- 全定制:设计者完成所有设计,速度更快
- 半定制:使用标准库里的标准逻辑单元(标准单元)
- FPGA和ASIC目前都是电子设计领域的主流产品。
- ASIC面向特定用户的需求,具有体积小、功耗低、可靠性高、性能高、保密性高、成本低等优点,一般用于批量大的专用产品中。
- FPGA可编程特性使其应用非常灵活,但芯片内部逻辑门的使用率大幅降低,导致功耗高、速度慢、资源冗余且价格昂贵,一般用于小批量产品设计中