存储器和可编程器件
Memory And
Programmable Logic Devices
6.5 可编程逻辑技术
实现逻辑可编程逻辑器件类型:(PLDs)
ROM:read-only memory
PLA:programmable logic array
PAL:programmable array logic
CPLD:complex programmable logic device
GAL,generic array logic
FPGA:field-programmable gate array
可编程逻辑器件的支持技术:
互联的建立与消除。
设立查找表。
晶体管开关的控制。
连接控制:
熔丝(fuse):可编程点为熔丝构成连接,可高电压烧断,断开连接。
CLOSED 连接,OPEN 断开。
掩膜编程(mask programmable):半导体制造商在器件制作的最后一步根据用户要求确定金属层的导线连接。器件量大时,经济上才合算。
反熔丝(antifuse):编程前,连接点被高阻物质分开,断路,编程高电压使其熔化连接。
Mos n沟道晶体管用SRAM驱动:SRAM的位存1,晶体管导通,连接点连接,反之,断开。
前三种技术不可重编,但是永久的。第四种编程容易,但易失。
建立查找表(lookup table):
利用SRAM存储真值表,地址为逻辑输入,对应字为逻辑输出。
晶体管开关控制:浮栅技术。
利用浮栅存储电荷控制晶体管的永久“开”与“关”。
浮栅的电荷可移去,称为擦除。采用这种技术的器件称为可擦除器件(erasable)。
擦除可用紫外光或电的方法(electrically erasable)。
6.6 只读存储器 (ROM)
永久存储二进信息,非易失(nonvolatile)。
ROM框图:

存2k个字。每字n位。无数据输入。常带有一个或多个使能,以便构成大阵列。
内部逻辑结构:32×8 ROM为例。

5-32译码器。每个输出对应一个存储地址。对应确定地址译码输出为1。
8个32扇入或门输出。每个译码输出经熔丝与或门可编程连接,形成或阵。
2k×n ROM内有K个地址输入端,2k译码器,n个2k可编程连接扇入或门。
ROM存储内容用真值表表示。例:
Inputs
Outputs
I4
I3
I2
I1
I0
A7
A6
A5
A4
A3
A2
A1
A0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
.
.
.
.
.
.
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
真值表内容可被硬件编程输入。值0、1分别对应可编程连接点的断、通。
或阵中用×表示连接,+表示断开。
上例真值表内容对应ROM内部逻辑连接结构如下图:

ROM类型:
掩膜编程技术:ROM。
熔丝编程技术:PROM。
浮栅编程技术:EPROM。
电可擦编程技术:E2PROM。
编程技术的选择根据所需ROM的数量、编程与可重编性、器件延时而不同。
用ROM实现组合逻辑
除存储数据外,ROM可实现组合逻辑。
任何组合逻辑均可表示为输入变量的最小项之和,如将ROM的输入看作输入变量,其译码器产生了所有的最小项,其输出或门可编程实现任意最小项求和,所以ROM可实现任何所希的组合逻辑。
上例ROM可编程实现5变量输入8变量输出的任意组合逻辑:

×:连接,加入和运算,+:开路,不加入和运算。
ROM常用于码制变换,复杂算术运算等。特别对于中等数量输入、大量输出的情况。
实现过程:提供真值表;编程输入。
例:用ROM实现3位二进数的平方运算。
导出真值表。
Inputs
Outputs
A2
A1
A0
B5
B4
B3
B2
B1
B0
Decimal
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
4
0
1
1
0
0
1
0
0
1
9
1
0
0
0
1
0
0
0
0
16
1
0
1
0
1
1
0
0
1
25
1
1
0
1
0
0
1
0
0
36
1
1
1
1
1
0
0
0
1
49
注意到 B0=A0,B1=0,有下表:
A2
A1
A0
B5
B4
B3
B2
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
画逻辑图。需8×4ROM。

PLD的三种主要类型:
与阵+或阵结构可实现组合逻辑。
与或阵固定与可编程的不同组合构成三种PLD。
ROM(可编程只读存储器)
(programmable read-only memory)

PAL(可编程阵列逻辑器件)
(programmable array logic device)

3.PLA(可编程逻辑阵列器件)
(programmable logic array device)

6.7 PLA
PLA与PROM相似,为节省逻辑,将PROM中全译码器用可编程与阵代替。与阵不提供全译码,只提供输入变量有限译码,即只能产生有限最小项,但逻辑所需最小项可在与阵可编程选择产生。或阵可编程求和。
例:3输入2输出PLA内部逻辑构成。

注意:多扇入与或门的表示;
可编程异或门实现或门输出的求反。
可编程连接实现逻辑为:


PLA熔丝图可用真值表表示。
Inputs
Outputs
Product
(T)
(C)
term
A
B
C
F1
F2
A
1
1
0
-
1
-
AC
2
1
-
1
1
1
BC
3
-
1
1
-
1
B
4
0
1
0
1
-
与阵:1,与原码连接;0,与反码连接;
-,与原反码均不连接。
或阵:1,与积项连接。-,与积项不连接。
T:真值(true)。原码输出,异或门控制输入为0。
C:补(complement)。补码输出,异或门控制输入为0。
PLA的大小输入数。典型16。
积项数。典型48。
输出数。读写8。
n入、k积项、m输出PLA含有n反相门,k个与门,m个或门和异或门,可编程连接点为:
2n×k+k×m+m。
PLA的编程掩膜编程提交编程表。FPLA可通过开发系统用硬件编程器编程。
提交的编程表应最简。(积项最少,积项中含有变量数最少。
例:用PLA实现下列组合逻辑。


 
选和F2,可最少积项。得编程表:
Inputs
Outputs
Product
(C)
(T)
term
A
B
C
F1
F2
AB
1
1
1
-
1
1
AC
2
1
-
1
1
1
BC
3
-
1
1
1
-

4
0
0
0
-
1
对于实际复杂的逻辑函数化简通常借助计算机辅助设计完成上述过程得到PLA编程表。
6.8 PAL
与阵可编,或阵固定。
编程简单,不如PLA灵活。
原理图:4输入,4输出,宽3与或。

注意:输出可返连回与阵参与逻辑运算。
积项不可多或门共享。
积项太多时,可多段共同完成。
例:用PAL实现下述组合逻辑。


 
化简得:





Product
AND Inputs
term
A
B
C
D
W
Outputs
1
1
1
0
-
-

2
0
0
1
0
-
3
-
-
-
-
-
4
1
-
-
-
-

5
-
1
1
1
-
6
-
-
-
-
-
7
0
1
-
-
-

8
-
-
1
1
-
9
-
0
-
0
-
10
-
-
-
-
1

11
1
-
0
0
-
12
0
0
0
1
-

注意:当与门所有输入都不用时,所有输入均编程连接,使得输出为0()。简化表示在与门符号中打×。
实际商用PAL器件复杂灵活,典型特性:
8输入;8输出;宽8与或阵。
输出可三态驱动,并可作为输入。
有时加入触发器,可实现时序逻辑。
PAL的实际使用也借助计算机辅助设计。
6.9 GAL
结构沿袭PAL与-或结构,并配置输出宏单元(OLMC)。编程技术采用EECMOS。
电路结构:
宏单元结构:
异或门可对组合输入求反。
D触发器可用于时序。
数据选择器选择:0,第一积项(可作使能)。
三态控制选择器:0(高阻3),1(使能),OE(外部),与阵第一积项(设计编程)。
反馈选择器:本级寄存器;本级宏单元;邻宏单元;无反馈。
输出选择器:组合;寄存器。
宏单元工作模式:
专用输入。数据输出端作为专用输入端。
专用组合输出(三态选通)。
选通组合输出(第一积项选通)。
时序组合输出(邻宏单元有寄存器输出)。
寄存器输出。
GAL器件特点:
电可擦。2。高速,低功耗。3。编程快;4。使用灵活(可代替中小规模集成电路);5.可加密;6.电子标签(便于管理);7.可靠(20年)。
6.10 大规模集成电路可编程逻辑器件
(VLSI PLDs)
利用 VLSI 的设计可把含有数千至数百万门的数字系统集成于单片IC中。
VLSI 设计的主要方法:
1.全定制设计(full custom design)。
昂贵,用于高密度、高速、大量情况。
2.标准单元设计(standard cell design)。
将予设计互联,成本中等,密度、性能低于全定制。
3.门阵列(gate array)。
数千至数百万相同的门集成于单独的芯片上,根据数字系统设计需要进行互联与布线。制作通用、经济。由于设计复杂,需采用CAD。
VLSI的最新发展产生了大容量可编程逻辑器件,典型二类为:CPLDs (comlex programmablelogic devices)和FPGAs(field-programmable gate arrays 现场可编程门阵列)。共同特点是:
含有大量未授权的组合逻辑;
予完成的触发器;
在组合逻辑、触发器、芯片的输入输出之间进行可编程互联。
不同厂家的 VLSI PLDs 具有不同结构与特点,现举二例介绍。
Altera MAX 7000 CPLDs
采用EEPROM浮栅技术。结构如下图。

16个相同的逻辑阵列块。经可编程互联阵逻辑阵列块之间、输入输出实现互联。
每个逻辑阵列块含有16个宏单元(macrocell)
每个宏单元具有一个触发器加上类似PLD的组合逻辑电路。
宏中,触发器可编程为D、T,JK、SR,并可予置、清0、时钟使能。特殊的连接使得每个宏的积项可扩充多于宽5。
IO块置于芯片四周,外侧宏与其相连。能可编程控制为三态、输入或输出。
Xilinx XC4000
电路结构:

三种可编程逻辑模块阵列:
CLBs(configurable logic blocks)。
IOB(input/output blocks).
ICR(interconnect capital resource)和SRAM。
芯片的编程信息存在片内的SRAM中,其又可由PROM加载。SRAM加载后,进入工作模式。不同信息的加载使得同一芯片完成不同功能。
SRAM中数据控制片中的晶体管的通断,多路选择器和查找表。查找表完成组合逻辑。

互联
互联由开关矩阵和水平垂直连线实现。
 
节点6个连通晶体管可编程控制连接。
有长线、单长线、双长线用于连线。
逻辑 CLB完成。

三个查找表实现组合逻辑F,G,H,,两四变量和一三变量或一9变量函数。
两个二选一多工器分配组合输出。
两个四选一多工器分配两个D触发器输入。只用组合输出时,触发器可存数据。
两异或门可选择触发器的正负触发。
触发器的时钟使能也可选择。
触发器可非同步set与reset。
IO
可设定为输入或输出。
编程设计由于其复杂性,必须借助开发系统。
FPGA的加载(配置)
加载内部SRAM的三种模式:
主动模式――加电后内部控制电路自动将予存于EPROM中的配置数据读入。
外设模式――器件本身作为外设,从总线接受配置数据。
从串模式――串行从外部接受配置数据。
6.11 PLD的结构二类:
粗颗粒(Coarse-grained)CPLD。多个类似GAL器件可编程互联。
细颗粒(Fine-grained)FPGA。多个类似门阵列可编程互联。
二者通称大容量PLD(HCPLD-High capacity PLD)。
为使用灵活、方便,PLD所采取措施:
逻辑改变时,引脚定义可不变。
速度功耗可选。
多种时钟选择。
寄存器可异步置复位。
可实现复杂逻辑。
多种封装。
符合PCI(Peripheral Componect Interconnect外部接口)技术规范。
提供5V和3.3V二种器件。
可控制输出摆率。
总线友好(Bus-Friendly)。总线高阻时,自动输出逻辑电平,抗干扰。
在板热槽安全(board hot-socketing),掉电和上电不干扰和损害其它器件,5.5v电压安全。热插拔(live insertion)。
嵌入大容量RAM,可建立高速大容量查找表。
6.12 PLD应用注意事项选择合适器件,进行合理设计。
组合复杂选CPLD,时序多选FPGA。
注意定时关系,消除竞争冒险。
为便于扩展修改,保留20%的逻辑单元和引脚。
引脚处理。
输入不悬空;不用输入接地;隐埋悬空。
电源滤波。加0.2u电容去耦。
尽可能去插座。
器件间连线长,考虑匹配。
注意环境温度。
6.13可编程逻辑器件的开发专用硬件数字系统的实现方法:
专用集成电路(ASIC-Application Specific Integrated circuit)。
优点:速度快,集成度高。
缺点:成本高,开发周期长,不灵活。
PLD
优点:使用灵活,开发周期短。
目前,PLD器件的等效门数可达百万,工作频率100MHz以上。
PLD在实现数字系统方面的优越性使其得到广泛的应用与发展。由于其复杂性和灵活性,其使用必须借助开发系统。
开发系统的组成:
软件:在计算机中运行,实现设计,检验设计,产生编程文件。
常用开发软件:
ABEL,Synario(Data I/O 公司)。
CUPL(Logical Device)。
硬件:编程器。计算机控制,对PLD编程或擦除。
PLD开发过程:
设计开始
通过?
设计实现步骤:
设计输入形成设计文件。
文本:输入输入输出管脚、逻辑关系。
图形:逻辑图。
硬件描述语言:(HDL-Hardware Description Language)
VHDL(IEEE 1987,VHSIC HDL-Very Speed Intergrated Circuit HDL)。
支持真值表、逻辑方程、状态图、算术运算、组合运算、条件逻辑、逻辑比较、宏函数、等。
设计层次化。
例:一位全加器。
entity full_adder is (实体)
port (a,b,cin,in bit;
sum,cout,out bit);
end full_adder; (结构体)
architecture behavior of full_adder is
begin
sum a xor b xor cin;
cout ((not a)and b and cin)or(a and (not b)and cin)or(a and b);
end behavior;
设计编译和器件适配。
编译软件对设计文件进行逻辑化简、综合、优化,并用一个或多个器件适配,产生器件编程文件。可人工干预。指示错误。
设计校验。
逻辑功能仿真,定时仿真。
器件编程将适配器、编程电缆与插于计算机的编程卡或计算机并口连接,运行编程软件,将编程数据写入器件。
器件校验
简单的校验是将写入与读出编程数据比对。
复杂PLD无法简单校验,联合测试行动组JTAG(Joint Test Group)开发了IEEE边界扫描测试(BST-Boundary ScanTest)技术规范。
采用该技术的PLD具有专门测试引脚,可输入测试数据,并读出测试结果,以检查芯片好坏和编程校验。
6.14 在系统编程 (ISP)
在系统可编程逻辑器件ISP PLD (In-System Programmable PLD)。在PLD 器件中加入了编程与测试逻辑及控制电路。
特点:不使用编程器,计算机通过并口经编程电缆直接对ISP PLD器件编程。
优点:不取下器件,直接在系统电路板上对硬件设计进行修改与验证;在系统调试;生产流程简化;实现多功能硬件;系统维修方便等。
通常,ISP PLD器件设有编程接口,具有三种工作模式(编程;工作;诊断)。通过接口可实现三种工作模式。
ISP PLD器件可并行与串行编程。