《数字系统设计基础》课件第8章_第1页
《数字系统设计基础》课件第8章_第2页
《数字系统设计基础》课件第8章_第3页
《数字系统设计基础》课件第8章_第4页
《数字系统设计基础》课件第8章_第5页
已阅读5页,还剩226页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.1半导体存储器综述8.2易失性存储器8.3非易失存储器8.4存储器的扩展8.5可编程逻辑器件简介习题

第8章半导体存储器与可编程逻辑器件半导体存储器(SemiconductorMemory)是一种能存储大量二值信息(或称为二值数据)的电子数据存储元件,是用半导体集成电路实现的。随着半导体技术发展,很多集成电路产品中已经集成了半导体存储器。各种各样的半导体存储器集成电路IC(IntegratedCircuit)是计算机中必不可少的组成部分,是集成电路最主要的产品之一,广泛地应用于各种电子产品中。可编程逻辑器件PLD(ProgrammableLogicDevice)是数字集成电路家族中的一类特殊成员,其特性是可以根据设计要求,通过特殊的硬件编程语言,对器件进行编程,并通过特定的装置,将编程信息写入到器件,实现设计要求。很多可编程器件可以反复编程,从而实现电路可重构(Reconfigurable)。

半导体存储技术是PLD编程技术的基础,本章将介绍半导体存储器以及可编程逻辑器件的基本概念和原理。

1.存储器的分类

目前所使用的各种半导体存储器,从存取功能上可以分为只读存储器ROM(ReadOnlyMemory)和读写存储器RWM(ReadWriteMemory),由于历史的原因,随机存取的RWM也称为随机存取存储器RAM(RandomAccessMemory)。注意,大多数的ROM也是随机存取的。

按照存储功能划分的存储器的分类如图8-1所示。8.1半导体存储器综述图8-1存储器分类

RAM是易失性存储器(VolatileMemory)。易失性存储器在掉电后,存储在其中的信息会很快消失。根据存储数据的原理不同,RAM又分为静态随机存取存储器SRAM(StaticRAM)和动态随机存取存储器DRAM(DynamicRAM)。SRAM利用双稳态存储数据,不需要刷新电路即能保存它内部存储的数据,其具有较高的性能,但它的集成度较低。而DRAM利用电荷存储数据,每隔一段时间就要刷新充电一次,否则内部的数据即会消失,其优点是集成度高。

SRAM用途非常广泛,可用于个人计算机、工作站和路由器;可用于各类嵌入式系统中,如玩具、数码相机和手提电话等消费类电子以及汽车电子中;还可以用于LCD显示屏以及打印机等其它众多类型的电子产品中。DRAM通常作为计算机的外存。

ROM是非易失性存储器(NonvolatileMemory),存储在其中的信息在掉电后仍然存在,主要用于计算机、航空、远程通信和消费类电子产品中,用来存储程序和微代码。非易失性存储器中所存储的数据信息理论上可以是永久不变的。

ROM又分为掩膜ROM、可编程PROM(ProgrammableROM)、可擦除可编程EPROM(ErasablePROM)和电可擦除可编程EEPROM(ElectronicEPROM)。EPROM的擦除是用紫外光完成的。FLASH(快闪存储器)的全称是FLASHEEPROM,它也属于电可擦除可编程ROM的一类,因此我们也将其归为

ROM。在有些文献中将其单独分开。也可以对存储器按照存储方式进行分类,大部分是可以随机访问的,而有些存储器则是按照顺序访问的,例如先进先出的FIFO,先进后出的FILO等等。从制造工艺上又可以把存储器分为双极型和MOS型。MOS工艺电路,尤其是CMOS工艺电路具有功耗低、集成度高的优点,所以目前大容量的存储器都是采用MOS工艺制作的。

2.存储的基本概念

1)容量

在不同的抽象层次上可以用不同的方式表示一个存储单元的容量,电路设计者用位(bit)表示存储器容量,位数即存储器所需要的单元数。芯片设计者用字节(byte)或者字节的

倍数,即千字节(Kbyte)、兆字节(Mbyte)和吉字节(Gbyte)以及太字节(Tbyte)表示存储量,1Tbyte=103Gbyte=106Mbyte=109Kbyte。而在系统层,则可以用“字数×字宽”表示,字代表基本的运算单位,例如256×16表示有256个单元,每个单元是16位。

2)读/写参数

存储器的读/写参数是存储器最重要的参数之一,只有按照严格的时序对存储器进行读/写,才能保证存储器的工作正确。

写入时间:从提出写请求到最终把数据写入到存储器之间的时间间隔。

读出时间:从提出读请求到数据在输出端上有效之间的时间间隔。

读/写周期:前后两次读或两次写之间所要求的最小时间间隔。

图8-2给出了存储器读/写时序的示意图。图8-2存储器读/写时序示意图

3)存储器的基本结构

要实现一个N×M的存储器,最简单的方法是把它们存入到连续的单元中,如图8-3所示。图8-3存储器的基本结构对这些单元的访问,可以通过一个选择线S0~Sn-1实现每次访问一个单元。这种方法虽然简单,但是当存储器比较大,例如实现一个1M×8存储器时,则需要100万个选择信号,这么多的信号不利于芯片的管脚封装。为了减少这些选择信号,可以通过一个译码器来实现。当通过一个二进制的地址(A0~AK-1)访问某个单元时,译码器把这个地址转化成N=2K根选择线,任何时候,只有一根选择线有效。这样,从存储器芯片的管脚来看,100万(220)根选择线需要20根地址线,从而解决了存储器的封装和其它设计问题。通常情况下,存储器中的字数远远多于每个字存储的位数。按照上述方式组织存储单元将使存储器变得长而窄,导致存储器芯片设计变得比较困难。因此,在存储器的芯片结构中通常是将多个字放在一个行中,这样,一根选择线就同时选中多个字。为了从这多个字中再选择出所需要的字,则再加上一个称为列译码的额外电路,地址则被划分成列(A0~AK-1)地址、行地址(AK~AL-1),使得行地址可读写一行的存储单元,而列地址则从所选择的行存储单元中找出一个所需要的字,如图8-4所示。图8-4具有译码器的存储器结构水平选择线可以选择一行单元,称为字线(Wordline),也称为数据线,而把一列单元连接到输出电路的线称为位线(Bitline)。图8-4中的灵敏放大器(Senseamplifier)则是把内部的电压放大到外部接口所需要的电压值。

1.静态随机存取存储器SRAM

SRAM是由静态易失性存储单元组成的阵列,其地址译码集成在片内,可以对每个单元进行读写操作。SRAM由于靠连续的供电来维持所存数据的完整性,故属于易失性存储类。

SRAM的基本结构包括一个或者多个由存储单元构成的矩形阵列以及完成地址译码和数据存储的外围电路。下面对SRAM存储单元做简单的介绍。8.2易失性存储器图8-5SRAM四管存储单元结构

1)SRAM存储单元

(1)四管构成的SRAM存储单元。

SRAM的存储单元结构有多种,图8-5所示是一种由4只晶体管构成的SRAM存储单元,这种SRAM也称4TSRAM。其中管子M1和M2构成了一个双稳态电路,M3、M4受控于字线作为字线地址的选择,它们分别与位线B和-B相连。这样,位线上的一对互为反相信号可以通过M3和M4向触发器置数,也就是写入过程。同时,触发器内所存储的数据也可以通过管子M3和M4向位线B和-B传送,即所谓的读出过程。负载单元的作用是通过电源补充存储单元中高电平端的漏电流。如图8-5中,假设触发器中写入“1”,则M1管关闭,M2管导通,由于M1、M3均存在PN结反向漏电,因此要保持M1漏端的高电平,需要电源VDD通过L1进行电荷补偿。通过合适的半导体加工工艺,4T

SRAM存储单元的面积可以做得非常小,因此,4TSRAM的优点就是有较小的面积。但是4T结构的单元也存在着一些缺点。一是由于VDD通过L1与M1或者L2与M2到地GND之间总是存在着电流通路,因此,存储单元总存在着静态功耗。随着SRAM容量的增加,其功耗也变得越来较大。二是存储单元中节点高电平的保持完全靠一个与电源相连的高值电阻,这个高值的负载电阻是用多晶实现的。如果在该节点上受到意外的干扰或感应,使电荷丢失,电源来不及补充电荷,这时高电平不能保持,器件就会失效。

多晶电阻的阻值越高,或亚阈值电流越大,越难以及时补偿漏电流,单元存储的信号可能会丢失。三是基于4T的SRAM设计比较困难。基于上述原因,目前基本不采用4T的SRAM,而是采用6TSRAM。

(2)六管构成的SRAM存储单元。

目前大部分的SRAM生产厂家采用6个晶体管构成的存储单元,其存储原理如图8-6所示。图8-66TSRAMCMOS电路图8-7双稳态电路的工作原理双稳态电路的工作原理如图8-7所示,实际上就是图8-6中的M1、M2、M5、M64只管子,就是由两个反相器(M1、M5和M2、M6构成两只反相器)组成的反馈环路。如果左边的值a=1,那么跟踪上面一个反相器的信号路径表明

=0。如果通过下面一个反相器继续跟踪信号到左边将得到a=1。这表明状态a=1是稳定的,这种稳定状态是可以通过电路本身维护的。分析可以同样应用于a=0的情况。当没有外界信号作用时,双稳态电路可以长久保持其所处的某种稳定状态,所以也就称之为静态存储器。由于6TSRAM的存储单元采用CMOS结构,因此,解决了4TSRAM存储单元的静态功耗问题。另外,CMOS结构提高了存储的可靠性和抗干扰能力。下面我们将描述6TSRAM的工作过程。

2)SRAM的工作过程

SRAM的工作状态包括写入、读出和数据保持三种。写入状态是指将数据线上的数据写入到存储位单元的存储节点中;读出状态是指将存储在存储位单元内部存储节点上的数

据读出到数据输出口;数据保持状态是指在读写状态都不执行时,存储在存储节点上的数值保持原来状态。

(1)数据写入。

如图8-6所示,假定位线B端为“1”时,对存储单元进行写“1”。当写入数据为“1”时,位线B和-B分别加上高电平和低电平,字线WL加上高电平,晶体管M3、M4导通,这时无论存储节点上位线a和b原来处于什么电平,位线将强制对a点电容充电,对b点电容放电,此时M2和M5导通而M1和M6截止,单元中存储数据“1”。写“0”时刚好相反,在位线B和-B上分别加低电平和高电平,门管打开,写入数据“0”。通常SRAM存储单元都做成阵列结构,多个存储单元共用一根字线,在连续进行写入操作时,如果时序上配合不当,就有可能用上次位线上的数据对同一根字线上其它单元中的数据改写。另外,SRAM存储单元的中MOS管合适的宽长比值是保证存储单元能够高速进行写入数据操作的关键。

(2)数据读出。

SRAM在进行读操作时,首先要保证两条位线B和-B都预充到相等的高电平,然后使得字线WL为高电平,两个门管M3和M4都导通,此时,相当于把单元的存储节点a和b

连接到位线B和-B上,如果单元存“1”,即M2和M5导通而M1和M6截止,位线-B通过导通的M2和门管M4放电,而位线B保持高电平,从而位线B和-B得到正向的电压差。相反,如果单元存“0”,则位线通过单元中导通的M1和M3放电,而位线-B保持预充的高电平。这样在两根位线上得到一个反向的电压差。由于单元管的尺寸很小,而位线通过单元管放电的速度很慢,为了提高读出速度,只要在位线上建立起一定的电压差就可以了,而不必等到一边位线下降到低电平。通过列译码器控制的列开关,把选中的单元位线读出的微小信号差ΔV送到公共数据线,再通过公共数据线送到读出敏感放大器,把微小的信号差放大为合格的高低电平,最后通过缓冲器转换成单端信号输出。

(3)保持数据。

在写入或者读出操作后,字线WL降为低电平,晶体管M3和M4截止,将上述稳态触发器和位线隔断,这样,位线上的电平变化不再影响触发器的状态。存储高电平的节点电容会有电荷泄漏,可通过PMOS负载单元进行补充,因而,SRAM单元能够长久地保持数据。

3)SRAM的分类

SRAM存在多种类型,但是其种类的区分在接口上,图8-8给出了SRAM的一种分类。图8-8SRAM的分类

(1)异步SRAM(AsynchronousSRAM)。

异步SRAM的运行与输入信号的状态有关,并不与特定的时钟相关。图8-9给出了一个异步SRAM的功能框图,存储访问由三个信号控制:

①片选(CS):选择是否使用该芯片,当芯片没有被选中,那么该芯片进入等待(standby)状态,输出在高阻状态。②输出使能(OE):控制输出。控制输出是高阻还是有效数据。

③写使能(WE):允许读或者写周期。图8-9一种异步SRAM结构异步SRAM又分为低速和高速两种。低速SRAM元件提供低电压,价位较低,主要应用在高密度硬盘驱动(HDD)和工业控制上。高速SRAM元件的访问时间在15~35ns之间,主要用于通信系统的局部存储或者是计算机系统的Cache缓存。

(2)同步SRAM(SynchronousSRAM)。

同步的SRAM有与微处理器同步的读、写周期,具有更快的访问速度。因此,同步SRAM可以应用于个人计算机和工作站上。图8-10是一种同步SRAM的电路结构,

图中的Clock与微处理器的时钟是一致的。图8-10一种同步SRAM结构①突发方式(BurstMode)。

为了快速地访问SRAM中的内容,同步SRAM可以在突发方式下工作。所谓的突发是指不需要修改地址,可以连续地对同步SRAM内的一片地址进行读/写。图8-11给出了同步SRAM的读/写时序示意图。在突发方式下,第一个数据的地址放在了地址总线上,而其它三个数据块的地址则用内置的计数器改变,这样,数据访问的速率就与微处理器的时钟一致。而在非突发方式下,数据的访问需要两个周期。图8-11同步SRAM的时序示意图②流水线SRAM(PipelinedSRAM)。

流水线SRAM在存储和输出之间加了一级寄存器,如图8-12所示。输出通道中的寄存器可以使管线式SRAM比标准的SRAM有更高的时钟频率,但是会造成更大的延时。图8-12流水线SRAM图8-13说明了流水和标准同步SRAM的突发时序。在流水同步SRAM中,4字的突发读周期需要5个时钟,而标准的同步SRAM则需要4个周期。有研究表明,对于时钟在66MHz的同步SRAM,管线式SRAM比单周期突发的性能好,然而,为了避免总线的竞争,从写到读的转换过程,流水SRAM要求有一个周期的延时。图8-13流水线式同步SRAM与标准同步SRAM

(3)特殊的SRAM。

① FIFO。

FIFO是FirstInFirstOut的缩写,是先进先出的意思,图8-14给出了一种FIFO结构示意图。

FIFO中读和写的操作是独立完成的,读、写的时钟可以是相同的,也可以是不同的。如果时钟相同则称为同步FIFO,如果不同则称为异步FIFO。写数据通过写入端顺序写入SRAM,通过读出端可以将数据按照写入顺序读出。在FIFO中采用了双端口结构的SRAM,其中读地址计数器和写地址计数器用于产生访问RAM所需要的地址。标志产生逻辑是用于判定FIFO的空满逻辑。图8-14一种FIFO结构示意图②多端口SRAM(MultiportSRAMs)。

多端口快速SRAM(通常是双端口,有时候是四端口)的存储单元采用快速SRAM存储单元,但是使用了特殊的片上电路,它允许多端口同时访问相同的数据。图8-15所示是4个CPU共享一个存储器。在存储器中,每个SRAM存储单元使用额外6只晶体管(即10个晶体管的存储单元)以允许4个CPU访问数据。图8-15多端口SRAM

2.动态存储器DRAM

DRAM(DynamicRAM,动态RAM)是利用电容电荷而不是反馈环路来存储信息的,因此,DRAM的存储单元面积比SRAM要小得多,且易于集成,但是所存储的内容会因为电荷的泄漏而丢失,必须对单元进行周期性地读取和刷新。随着工艺进步和需求的变换,DRAM与外部接口部分在不断发生变化。最初的DRAM是异步的,后发展成同步的DRAM,现在同步DRAM成为主流的存储器。同步DRAM的最大特点就是其读/写操作与系统时钟同步,可以取消等待周期,减少了数据传输的延迟。而异步DRAM使用异步方式工作,在存取数据时,系统必须等待若干时序才能写入和读出数据。

SDRAM出现了虚拟通道存储器以及双倍数据流DDRSDRAM(DoubleDataRateSDRAM),前者是为了进行快速存取,而在SDRAM内设置了部分缓冲存储器,后者则是在同一时钟的上升沿和下降沿同时可以获得数据。DDRⅡDRAM也采用在时钟的上升沿和下降沿同时进行数据传输;但DDRⅡ内存却拥有两倍于DDR内存预读取能力(即4bit数据预读取)。换句话说,DDRⅡ内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以4倍内部控制总线的

速度运行。DDRⅢ为8bit预取设计,这样DRAM内核的频率只有接口频率的1/8。

1)DRAM的存储单元

单管(1T)动态RAM单元是由一个晶体管T和一个电容CS构成的,如图8-16所示,其中CD是寄生电容。如果CS上存在电荷,表示逻辑1;不存在电荷,表示逻辑0。与SRAM

相同,DRAM通过选择字线将电容连接到位线上实现对单元的访问。图8-16单管DRAM存储单元结构当进行读取操作时,首先将位线预充电到UPRE,当字线选通该单元时,则CS与CD形成了并联的关系。这样,X点的电压值发生变化,可以测得X上电压的变化量,读出放大电路根据电压变化量的高低,判定数据线上的“1/0”。读出操作改变了存储单元的CS值,所以每次读出操作完成后必须对单元重新写入。假设UBIT是在CS上的初始电压,UBL是在电荷重新分布后在位线上的电压。电压的变化量计算如下:

DRAM的电容CS在物理尺寸上必须尽可能地小,以实现高密度集成,但是位线是与许多DRAM单元相连接的,从而产生了相对较大的位线电容(寄生电容)CD,单元电容比位线电容要小得多(CSCD)。因此,电压的摆幅非常小,一般是250mV,这么微弱的变化量需要用放大电路进行放大。因此,每个位线都有一个放大电路对读出的电压进行放大。

2)基本操作

动态DRAM广泛应用于各类电子产品中,虽然它们的封装和大小不同,但是,它们的操作是基本相同的。DRAM的基本操作是把存储在DRAM中的数据读出来,将数据写入到

DRAM中,以及对DRAM中的数据进行周期性的刷新。

为了使DRAM能正确地工作,需要提供与DRAM制造厂家规定的相匹配的信号时序,下面介绍一些控制DRAM的工作时序信号。

(1)存储器读操作。

图8-17给出了一个简化的存储器读操作时序图,一个存储器读操作的步骤可概括如下:

①在下降之前的规定时间内(tASR)必须将行地址信号加到存储器的地址输入端,并在下降之后保持一定的时间(tRAH)。此外,必须从高电平降到低电平并维持在低电平(tRAS)。②在下降之前的规定时间内(tASC)必须将列地址信号加到地址输入端,并在下降之后保持一定的时间(tCAH)。

③为了进行读操作,在转换到低电平之前的规定时间内(tRCS),必须将设定为高电平,并在转换到高电平之后的一定时间内(tRCH)仍必须维持在高电平。

此外,必须从高电平转换到低电平并维持在低电平(tCAS)。④在规定的时间窗口中降到低电平。的周期是可选择的,如果需要,可以接低电平。

⑤数据在器件的数据输出端出现,这取决于、

和都下降到低电平的时刻和提供地址的时间(tAA)。

⑥在和回到无效状态(分别为tRP和tCRP)后,就认为完成了读操作。图8-17DRAM读操作

(2)存储器写操作。

图8-18给出了简化的存储器写操作的时序图,一个存储器写步骤可以概括如下:

①在电平下降之前的规定时间内,行地址(信号)必须加到存储器的地址输入端,并在低电平下维持一定时间。另外,必须从高电平降到低电平。

②在电平降低之后到电平降低之前的规定时间内,列地址(信号)必须加到存储器上的地址输入端,并保持一定时间。③在进行写操作的一定时间内(twp),必须设定为低电平。过渡定时(twcs,twch)由下降到低电平的时间来决定。

④在电平降低之前规定的时间内(tDS)数据必须加到数据输入端并维持一定时间(tDS)。另外,必须从高电平转向低电平。

⑤在写周期完成后,和必须回到它们的无效状态。图8-18写周期

(3)DRAM刷新。

DRAM存储器单元是电容器,它所包含的电荷可随着时间泄漏掉,导致数据丢失。为了防止这一现象发生,必须对DRAM进行刷新,即必须周期性地在各个存储器单元上再存储电荷。DRAM刷新频率取决于制造工艺技术和存储器单元本身的设计。读或写入存储单元的过程对选中的单元有刷新作用。然而,因为在规定的时间限制范围内不是所有的单元都被读或都被写入,所以在刷新间隔期,必须访问阵列中的每一单元并再存储电荷。刷新周期是指特定的时间周期,在这一周期中DRAM阵列中的所有行必须被激活和预充电(刷新);刷新间隔是各行刷新操作之间的时间周期,这里假设各行刷新操作的时间分配是均匀的。刷新率定义为刷新时间除以所需的周期数。

3)SDRAM

由于异步DRAM在性能上已经接近极限,同步DRAM更能满足高性能电子设备应用要求。

如在个人计算机设备和嵌入式计算机中,同步DRAM(DDRSDRAM)已经占据主导地位,因而大容量、更高速DDRⅡ型SDRAM和DDRⅢ型SDRAM发展将成为未来的主流产品。

SDRAM的信号沿用了DRAM中的很多信号,但是SDRAM将内部分为若干个存储块,这是SDRAM的一个很重要的特征。下面以MicronSDRAM存储器MT48LC128M4A2为例,介绍SDRAM的基本操作。图8-19为MicronSDRAM芯片管脚分配图。该存储器是一个CMOS512MbitSDRAM,采用3.3V供电,内部可以配置成四组(quadbank)与接口时钟同步的DRAM,所有的信号都在时钟的上升沿采样或者更新,内

部采用流水线方式输出。该芯片可以配置成128Mbit×4,64Mbit×8或者32Mbit×16的工作方式,图8-20给出了64Mbit×8的工作模式下的内部结构。图8-19MicronSDRAM芯片管脚分配图图8-20SDRAM64Mbit×8工作模式的内部结构

(1)输入信号。

BA0~BA1:组输入信号,在ACTIVE、READ、WRITE和PRECHARGE命令下,决定四个组中的哪个组工作。

A0~A12:地址输入信号,在ACTIVE命令有效时,用于行地址选择。在READ/WRITE命令有效时,不同的模式用不同的地址线选择列地址:在128Mbit×4方式下,A0~A9,A11和A12用于选择列单元地址;在64Mbit×8方式下,A0~A9,A11用于选择列单元地址;在32Mbit×16方式

下,A0~A9用于选择列单元地址,通过这些地址选择各自组中的单元。

A10用于自动预充电选择,在PRECHARGE命令时采样A10,如果其为高电平,则所有的组都进行“预充电”;如果为低电平,则选择某个组进行预充电。

RAS#,CAS#:命令输入信号,这些信号和WE#片选信号一起定义SDRAM操作命令。

CLK:工作时钟,频率为100MHz或者133MHz。

CKE:工作时钟使能信号,为高电平时,允许时钟工作;为低电平时,禁止时钟工作。

DQ0~DQ7:输出数据。

DQM:输入/输出屏蔽(mask)信号,DQM对写操作而言是输入屏蔽信号,而对读而言是输出使能信号。当DQM=HIGH时,在写周期,输入信号被屏蔽;在读周期,输出是高阻状态。

VSS,VSSQ:接地信号。

VDD,VDDQ:电源信号。

(2)SDRAM命令及其相关操作。

表8-1给出了MT48LC128M4A2的操作命令,这些命令是由CS#、RAS#、CAS#、WE#组合而成的。

表8-1SDRAM命令一览表对表8-1中的命令解释如下:

COMMANDINHIBIT:禁止SDRAM执行新的命令,而已经执行的SDRAM命令不受影响。

在该命令下,CLKE信号的高低电平无关。

NOOPERATION(NOP):该命令向已经被选择(CAS#为低电平)的SDRAM发出一条空命令,在等待状态和空状态下,禁止不需要命令的执行,而已经执行的SDRAM命令不受影响。

LOADMODEREGISTER:装入模式寄存器命令,该命令把输入地址的值装入到模式寄存器,A12应该驱动到低,模式寄存器的详细介绍见后。只有当所有的组都空闲的时候才可以发送这个命令,该命令发出后,需要等待tMRD时间,然后才能发出后续的命令。

ACTIVE命令:选择组和有效的行地址。使用该命令使后续内存访问操作的特定组中某个行有效。BA0,BA1选择输入组,而A0~A12选择行。这个行选择将一直保持有效(open),直到向所选择的组发出一个PRECHARGE命令。在有效同一组中的不同行时,必须发出PRECHARGE命令。

READ命令:选择组和列地址,开始READ的突发操作。该命令用于初始化有效行的读突发操作。BA0,BA1选择输入组,在×8模式下,用A0~A9,A11选择开始的列地址,由A10决定是否进行自动预充电。如果A10为高,则在读突发结束的时候,自动进行预充电;如果A10为低,那么对后续的访问,行地址保持有效。根据两个周期前DQM信号的高低,决定出现在DQs上的数据是否可以提供有效的读出数据。如果DQM=1,那么两个周期后DQ输出为高阻。如果DQM=0,那么DQ上的数据为有效数据。

WRITE命令:选择组和列地址,开始WRITE的突发操作。该命令用于初始化有效行的写突发操作。BA0,BA1选择输入组,在x8模式下,用A0~A9,A11选择开始的列地址,由A10决定是否进行自动预充电。如果A10为高,则在读突发结束的时候,自动进行预充电;如果A10为低,那么对后续的访问,行地址保持有效。根据DQM信号的高低,决定DQs上的数据是否被写入到Memory中。如果DQM=1,那么DQs上的数据被忽略,不执行写命令。如果DQM=0,那么DQ上的数据写入到存储器对应的单元中。

BURSTTERMINATION:突发终止命令。该命令用于截断固定长度或者全页的突发操作。在BURSTTERMINATION前的WRITE或READ命令将被截断。该命令并不进行预充电,在发出PRECHARGE命令前,行地址保持有效。

PRECHARGE:使一个已打开的组或者所有组中的某一行无效,对其进行预充电。该命令用于使一个特定组的某个行或者所有组中的有效行无效。在PRECHARGE命令发出后,这个组对后续的行访问在一个特定的时间tRP内有效。输入信号A10决定是一个还是所有的组都无效,A10为低电平时,输入BA0,BA1用于选择组;A10为高电平时,BA0,BA1被当成“无关”,对所有的组进行预充电。当一个组被预充电后,那么这个组在空闲状态,在任何READ或者WRITE命令访问该组之前,必须激活这个组。

AUTOPRECHARGE:自动预充电命令,该命令对选择的组或者所有组执行PRECHARGE操作。用户并不需要显式地发出该命令,而是通过管脚A10和特定的WRITE或者READ命令一起设置SDRAM是否自动预充电。一旦READ或者WRITE命令结束,那么READ或WRITE命令所访问的行或者组将自动完成PRECHARGE操作,需要注意的是,AUTOREFRESH并不支持全页模拟工作模式。AUTOPRECHARGE命令可以在每个READ或者WRITE命令中设置。

AUTOPRECHARGE命令保证在一个突发的最早阶段初始化预充电,在预充电结束之前(需要tRP时间),用户不必向同一组发出命令。

AUTOREFRESH:在AUTOREFREASH命令发出前,所有的有效组(即用ACTIVE命令打开的组)都必须是PRECHARGE命令有效。在PRECHARGE命令完成后,等待最短的tRP时间后,才能发出AUTOREFREASH命令。由内部刷新控制器自动产生刷新地址,这个时候,所有地址都是无效的。512MbitSDRAM要求每64ms(tREF)有8192个自动刷新周期,而不管宽度选择。每7.8125μs执行一次自动刷新命令满足刷新要求,保证每行被刷新。或者,每64ms以突发方式,连续发出8192个刷新命令进行刷新,这种方式下,刷新命令的最小间隔为tRC。在AUTOREFRESH期间,CLKE保持高。

SELFREFRESH:自刷新命令,该命令用于保持SDRAM中的数据,即便系统的其它部分已经不工作了。当在SELFREFRESH命令时,SDRAM在没有外部时钟的情况下,可以保持SDRAM中的数据。该命令与AUTOREFRESH命令的区别是在SELFREFRESH时,CKE保持低。在SELFREFRESH命令后,除了CKE信号外,所有的对SDRAM的输入都是无关的。在进入SELFREFRESH模式后,SDRAM用它内部的时钟来完成其自动刷新周期。SDRAM在SELFREFRESH模式下,必须至少要保持tRAS这么短的时间,也可以保持无限长的时间。退出自刷新状态需要一系列的命令,首先,CLK必须在CKE变高前保持稳定,一旦CKE变高,SDRAM必须发出NOP命令(最小两个时钟周期),同时必须每7.81μs发出一条自动刷新命令。

Writeenable/outputenable:写使能或者输出使能。

Writeinhibit/outputHighZ:写禁止,输出高阻态。

3.模式寄存器

在SDRAM芯片中,有一个模式寄存器,该寄存器用于定义SDRAM工作的特定模式。可定义的参数包括:突发长度BL(BurstLength)选择,突发类型,CAS延时CL(CASLatency),工作模式和写突发模式等。通过LOADMODEREGISTER命令可以对模式寄存器进行编程,编程后的寄存器值保持不变,直到它被重新编程,或者设备掉电,模式寄存器各个寄存器的分配见图8-21。比特M0~M2说明BL类型,M3说明突发类型(顺序的或者是交织的),M4~M6说明CL的值,M7、M8说明工作模式,M9说明突发模式,M10和M11预留。地址A12没有定义但是在装载模式寄存器时,应该被驱动成低电平。当SDRAM的所有组均空闲时,才允许装入模式寄存器,控制器在初始化后续操作之前,必须等待规定的时间。图8-21模式寄存器各位的含义

①突发长度(BurstLength):

对SDRAM的读写访问是面向突发的,突发长度BL是可编程的。突发长度定义了一个READ或者WRITE命令访问SDRAM时定义的最大的列单元数目。无论对SDRAM的访

问类型是交织的还是顺序的,该芯片中有四种突发长度可用,它们分别是1、2、4和8。全页突发与BurstTerminate命令一起使用以产生任意长度的突发,注意不能使用没有规定的状态。当发出READ或者WRITE命令时,可以选择BL长度定义的若干列组成的块。当到达这个块的边界时,自动回到这列所设定的位置。在不同的模式和配置方式下,由不同的地址线选择确定块地址,最低地址位用于选择块内的起始地址,全页突发模式下,如果达到一页的边界时,将回到页的起始地址。不同模式和配置方式下列的起始位置见表8-2。表8-2在不同的模式和配置方式下列的起始位置一次给定的突发访问可以按照交织或者顺序的方式进行,由模式寄存器的第三位决定。

一次突发的访问次序由突发长度决定,突发的类型和开始列地址由表8-3决定。表8-3突发长度、起始地址和类型设置

②CAS延时(CASLatency)。

CL定义了READ命令和第一次输出数据可用之间的延时,该延时以时钟为单位。延时被设置成两个时钟周期或者三个时钟周期,如图8-22所示。如果在时钟沿n发出一条读命令,而CL延时是m个时钟,那么数据将在第n+m个时钟沿可用。

DQ将在第n+m-1个周期驱动到数据线,如果相关的访问时间都满足,那么数据将在n+m个时钟沿有效。例如,假设

一个时钟周期时间所有的相关的访问时间都满足,READ命令在T0时间被锁定,CL被编程为3个时钟周期,DQs在T2后开始驱动,数据在T3有效。图8-22CAS延时与READ命令之间的时序关系

③工作模式(OperationsMode)。

正常的工作模式是通过将M7和M8设置为0选择的,M7和M8用于未来的工作模式或者测试模式,不应该使用这些预留或者测试的模式,以免导致未知的操作或者不兼容的工作方式。

编程的突发长度可以用于READ和WRITE突发。

④写突发方式(WriteBurst)。

当M9=0时,BL通过M0~M2编程,可以用于READ和WRITE突发操作。当M9=1时,编程的突发长度只用于READ突发操作,而WRITE访问是非突发的,即按单元访问的。

4.初始化

SDRAM在上电后,必须按照预先定义的方式进行初始化,否则SDRAM芯片不能正常工作。

推荐的SDRAM初始化序列是:

(1)将电源同时加载到SDRAM芯片的VDD和VDDQ上;

(2)将CKE驱动到低LVTTL低电平并保持;

(3)提供稳定的时钟信号,稳定的时钟信号被定义成满足时钟管脚所规定的时序要求的周期信号。

(4)除了发出COMMANDINHIBIT命令或者NOP命令,至少等待100μs。

(5)在100μs周期内,在某个点开始,将CLKE设置为高,并继续保持高至少到这100μs结束(一般保持在高电平)。至少发出一个或者多个COMMANDINHIBIT或者NOP命

令。

(6)执行PRECHARGEALL命令。

(7)至少等待tRP规定的时间,在这个时间内,必须发出NOP或者DESELECT命令。所有组将完成它们的预充电,这样SDRAM芯片中所有组的元件都处于空闲状态。

(8)发出自动刷新命令(AUTOREFRESH)命令。

(9)至少等待tRFC时间,在这个期间,只允许发出NOPs或者COMMANDINHIBIT命令。

(10)发出自动充电命令。

(11)至少等待tRFC时间,只允许发出NOPs或者COMMANDINHIBIT命令。

(12)SDRAM准备好模式寄存器编程。因为模式寄存器在加电的时候是未知的,所以它应该在其它操作命令之前执行。使用LMR(LoadModeRegister)命令编程模式寄存器。通

过MODEREGISTERSET命令,且将BA1和BA0设置成0。模式寄存器保持该值,直到下一次对该寄存器重新编程或者芯片掉电。

注意:没有在初始化期间编程导致SDRAM使用默认的设置,这个设置可能不是用户所需要的。在LMR命令发出之前,输出应该是高阻,在LMR命令发出后,输出应该保证在高阻状态。

(13)至少等待tMRD时间,在这个时间只允许发出NOP或者DESELECT命令。

5.操作

下面介绍一些SDRAM典型操作的时序图。下面仅根据x8模式介绍SDRAM的操作。

1) Active操作

在SDRAMREAD和WRITE之前,必须根据BA0,BA1和地址线A0~A9,A11,通过ACTIVE命令打开一个组和组中的一行。在打开一行后,在大于规定的时间tRCD后就可以向该行发出READ或者WRITE命令,如图8-23所示。在ACTIVE命令之后,能发出WRITE和READ命令的最早时钟沿由tRCD除以时钟周期,并四舍五入到下一个整数值来确定。例如,假设SDRAM的工作频率是125MHz(8ns),tRCD=20ns,则在ACTIVE命令后的3个时钟周期(20/8=2.5,

四舍五入为3)可以发出WRITE或者READ命令。后续发给同一个组但是不同行的ACTIVE命令,只需要在前一个行被关闭(precharged)后就可以发出了。向同一组中发出连续CTIVE

命令的最小间隔由tRCD决定。图8-23ACTIVE命令和WRITE/READ命令之间的时序关系

2)读操作

READ突发操作通过READ命令进行初始化。在发出READ命令同时,突发操作起始列和组地址应该准备好,根据A10,在突发操作后,SDRAM可以自动执行自动预充电命令。图8-24给出了一个自动预充电禁止的时序。READ命令的突发操作后,从起始列开始的有效数据在CL周期后可以使用,在下一个时钟正沿后,可以使用后续输出的数据。当第一个组被访问后,可以向另外一个组发出ACTIVE命令,这个操作可以减少全部行访问开销,向不同组发出的连续两个ACTIVE命令之间的间隔为tRRD。

一旦完成了突发操作,假设没有其它初始化命令,DQ将变成高阻状态。一个全页模式突发靠突发终止(BurstTermination)命令来实现。从任何一个READ命令读出的数据可以被后续的READ命令截断,固定长度的读突发获得的数据可以立即跟着另外一个READ命令读出的数据。无论在哪一种情况下,可以保持一个连续的数据流。由一个新突发操作产生的第一个数据,它要么跟着前一个已经完成的突发操作的最后一个数据,要么跟着一个被截断的长突发所要求的最后一个数据。在前一次突发的最后一个数据有效前的x周期,应该发出一个READ命令,这里x=CL-1,如图8-25所示。图8-24读命令时序图8-25连续的READ突发操作任何一个READ突发读出的数据不但可以被后续的WRITE命令截断,而且固定长度的READ突发读出的数据可以立即跟着另一个WRITE命令写入的数据。此外,一个固定长度的READ突发在同一组内可以跟随预充电命令产生,或者被预充电命令截断。限于篇幅关系,不再介绍这部分内容,有兴趣的读者可以参看相关参考文献。

3)写操作

WRITE突发操作通过写命令来初始化,如图8-26所示。在发出WRITE命令的同时,突发操作起始列地址和组地址应该准备好,同时设置是否进行自动预充电(AUTOPRECHARGE)。如果自动预充电被使能,在突发操作完成之后,被访问的行自动执行预充电。图8-26写操作当执行WRITE突发操作时,第一个有效的输入数据与写命令同时有效。随后的输入数据在每一个后续的时钟上升沿有效。在没有其它命令的情况下,一旦完成固定长度的突发操作,DQ的值一直保持高阻,并忽略其它的输入数据。一个整页的写突发操作通过终止命令结束,如果没有终止命令,那么地址回到起始的行和列,持续进行这些操作。

任何一个写突发的写入数据可以被后续的写命令截断,固定长度的写突发写入的数据可以立即跟着另外一个写命令的数据。一个新的写命令可以在前一个写命令之后的任何一个时钟周期发出,同时DQ上应该提供相应的写入数据,如图8-27所示。

图8-27写命令与写到读命令

WRITE突发操作的数据也可以被READ命令截断。固定长度写突发的数据后可以立即跟着一个READ命令。当READ命令有效之后,就不再执行WRITE命令,如图8-27所示。除此之外,在同一组内,固定长度的WRITE突发写入的数据可以跟着预充电命令,或者被其截断;在同一组内,一个全页的WRITE突发也可以被预充电命令截断。更详细的命令解释和命令请阅读相关参考文献。非易失存储器中存储信息在掉电后仍然存在,这类存储器应用非常广泛,本小节介绍非易失存储器的基本原理。

8.3非易失存储器

1.一次性可编程只读存储器PROM(ProgrammableReadOnlyMemory)

ROM数据的存储是靠生产厂家特定的掩膜将数据写入存储器,如果用户需修改已存储的数据,则需要由生产厂家重新生产一套新的掩膜,经过加工测试然后再交回用户,这个周期比较长,对用户来讲,非常不方便。PROM的出现解决了这个问题,PROM允许通过专用的编程器,将数据“烧录”到存储器中,这个过程叫做“编程”,烧录后的数据同样能维持断电后不丢失。一次性PROM单元是由熔丝和二极管或三极管构成的,图8-28给出了PROM的存储单元,图8-29给出PROM存储阵列示意图。当大电流通过熔丝时,熔丝断开,从而切断原来的连接。PROM产品在出厂时,所有存储元均被加工成同一状态“0”(或“1”)。用户对PROM编程是逐字逐位进行的,根据需要写入的信息,按字线和位线选择某个存储元三极管,通过脉冲电流,将该三极管的熔丝熔断,使该存储元的状态被改变成与原状态相反的状态。熔丝一旦熔断,便不可再恢复,因此,编程是一次性的。PROM的这种特性影响了它的使用,目前这种器件很少使用。图8-28PROM存储单元图8-29PROM存储阵列

2.EPROM

Intel公司在1971年首次开发了可擦除可编程的只读存储器EPROM(ErasablePROM),这种器件克服了PROM的缺点,允许用户利用编码器对器件反复编程、擦除,因此得到广泛的应用。

这种器件是通过施加高压信号进行编程,将器件置于紫外线,就可以擦除其内容。

EPROM型的晶体管与标准的MOS管具有相同的结构,但是与MOS不同的是,它增加了另外一个被称为浮栅的多晶硅,有时把这个晶体管称为FAMOS管。FAMOS管的栅极全部被二氧化硅绝缘层包着,没有引出线,如悬浮状,所以称作“浮栅”。图8-30给出了这两种晶体管的结构。

图8-30标准的晶体管和EPROM晶体管浮栅晶体管的一个特征就是它的阈值可以编程。在源和栅-漏终端之间施加一个相对高的电压(10V以上,这个电压称为编程电压。编程电压不同,最后浮栅管的阈值电压不同),该电压可以产生一个高电场,使漏极与衬底之间的PN结击穿,雪崩击穿产生的高能电子穿过氧化物堆积在浮置栅上,如图8-31(a)所示,使浮栅管导通。在未编程的状态,浮栅门没有充电,因此,不影响栅门的正常操作。

图8-31浮栅晶体管在浮栅上被捕获的电子有效地降低了栅上的电压,浮栅上积累的负电荷降低了氧化层中的电场,所以最终它变得不能加速热电子。移去电压后已引起的负电荷仍留在原来的位

置上(如图8-31(c)所示),从而使中间的浮栅产生一个负电压。从器件的角度看,相当于增加了阈值电压。因为为了使器件导通,必须有一个更高的电压来克服所引起的这一负电压的影响,由此得到浮栅管的阈值电压升高。对应FAMOS管的截止或导通,可使位线上输出的电平为高或低,以表示该存储元存放的信息是“1”或“0”。由于浮栅被绝缘的二氧化硅包着,编程时堆积的电子没有放电回路,故电荷不会消失,信息能够长期保存。如果用紫外线照射FAMOS管,则浮栅上积累的电子由于吸收了足够的能量形成光电流而泄放,从而导致导电沟道消失,管子又恢复截止状态。为了使编程后能进行擦除和重写,在芯片的封装外壳装有透明的石英窗口。对编程好的EPROM要用不透光的胶纸将受光窗口封住,以免信息丢失。EPROM的优点是其内容可以擦除后重新写入数据,但其缺点是其重新改写时需将其拆下来在专门的编程器中进行改写。

3.E2PROM存储器

EPROM虽然具有可反复编程的优点,但EPROM只能整体擦除,不能逐个存储单元独立地擦除,擦除操作也比较麻烦。而电可擦除可编程只读存储器E2PROM(ElectronicallyErasableProgrammableReadOnlyMemory)克服了EPROM的这一不足。

E2PROM的结构与EPROM相似,E2PROM的内部电路与EPROM电路类似,但对其FAMOS中的结构进行了一些调整,隔离浮栅与沟道和漏极的那一小部分绝缘介质的厚度减少到大约10nm左右或者更薄,当约10V的电压加到这个薄绝缘层的时候,电子利用隧道穿越机理进入或者穿出浮栅,这种存储管子叫浮栅隧道氧化FLOTOX管(FloatingGateTunnelingOxide)。这个方法的主要优点是可逆,即把写入过程所加的电压反过来就可以实现擦除了,这种管子结构如图8-32所示。但是,这种双向控制带来的一个问题是,从浮栅上移去过多的电荷会形成耗尽层器件,不能用标准的电压关断浮栅管。因此,在浮栅管上又增加了一个额外的二极管与浮栅管串联,这个晶体管作为读操作期间的读取器件,而FLOTOX管则执行存储功能。这个不同于EPROM中FAMOS管既是编程器件又是读取器件。因此,和EPROM相比,E2PROM的面积比EPROM大2.5倍。图8-32E2PROM的元件

E2PROM不需要紫外光激发放电,擦除和编程只需加电就可以完成了,且写入的电流很小。这种器件不仅工作电流小、擦除速度快,而且允许改写的次数大大高于EPROM,

一般允许改写100~1000次。

4.FlashEEPROM

Flash存储器(有时也称为FlashRAM)是一种常用的非易失性存储器,它是EEPROM的一种变形,但与EEPROM不同的是,这种器件的擦除和编程是以块为单位的,而EEPROM是以字节为单位的,所以FlashEEPROM的更新速度比EEPROM快。Flash得到了广泛的应用,如我们最常见的U盘、便携式播放器等都包含有Flash存储器。

Flash存储器的目标是代替EPROM,克服EPROM紫外线擦除的方式,可以在系统中擦除EPROM的内容。Flash的存储单元综合了EPROM和EEPROM的优点,它既可以编程,也可以进行电可擦除,且每个存储单元只有一个晶体管。大多数FlashEEPROM器件采用雪崩热电子注入的方法实现编程,擦除则是和EEPROM一样,采用FowlerNordheim隧穿完成的。

两者主要的差别是FlashEEPROM是对整个芯片或者存储器的一片区域进行擦除,而EEPROM擦除的是一个单元。图8-33给出了FlashMemory存储单元的一种结构,它是Intel公司1988年设计的ETOXFlash单元结构(EPROMTunnelOxide)。它的结构与FAMOS类似,但是采用了一个薄的隧道氧化层(10nm)。图8-33FlashEEPROM存储单元结构最早的Flash基于NOR技术,如图8-34所示。编程的过程从擦除开始。

下面简单介绍NORFlash的工作原理,如图8-34所示。

图(a)为擦除操作:在栅上加0V电压,源端加12V电压。浮栅上的电子注射到源端,这样所有单元就被擦除了,接着读这些阵列检查这些单元是否已经被擦除了。如果尚未擦除,则继续进行擦除。图8-34NORFlash的工作原理图(b)为写操作:把一个高压脉冲加到所选器件的栅极,如果这个时候在漏端加上“1”,就会产生热电子并且注入到浮栅,使其阈值增加上升(相当该器件关闭)。如果不加“1”,则浮栅保持在原来的没有电子的状态,即相当于0状态。

图中(c)为读操作:为选择一个单元,将字线上升到5V,使位线有条件放电。

NOR结构读取速度很快,在擦除和编程操作较少而直接执行代码的应用场合,尤其是纯代码存储的应用中广泛使用,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。但是NOR结构需要精确控制管子的阈值电压,擦除和写的速度慢,因此,基于NOR技术的Flash存储器并不适应在纯数据存储和文件存储的应用中。为了克服这些缺点,研究

人员设计了基于NAND技术的闪速存储器,这种FLASH存储器具有快速编程,擦除和串行读取的特点,极大推动了Flash存储器市场的发展。现在大多数FLASH卡都是基于NAND技术的,容量已达到GB级。单片存储器的容量总是有限的,不一定满足应用要求。在实际应用中,经常需要将多片存储器组合起来,形成更大容量的存储器。这就是所谓存储器的扩展,存储器的扩展方法有位扩展方法和字扩展方法。

扩展存储器所需要芯片的数量=8.4存储器的扩展

1)位扩展方法

如果一片存储器的字数已够,但是每个字中的位数不够,则可采用位扩展方法将多片存储器连接成更多位数的存储器。采用这种方法扩展存储器时,各存储器芯片连接的地址信号是相同的,而存储器芯片的数据线则分别作为扩展后的数据线。扩展后的存储器实际上没有片选的要求,只进行数据位的扩展,整个存储器的字数与单片存储器的字数是相同的。在存储器工作时,所有的存储器芯片同时进行相同的操作。

【例8-1】

用1024×8位的RAM扩展成容量为1024×32位的存储器。

解所需要的存储器芯片数量为=4片。

连接方式:将4片的所有地址线、片选线(

)、读写控制线(

)连接在一起,将所有的数据线拼接成32位数据,如

图8-35所示。图8-35存储器的位扩展

2)存储器字扩展

字扩展用于存储芯片的位数满足要求而字数不够的情况,是对存储单元数量的扩展,整个存储器位数等于单片存储器的位数。扩展的方法是将地址分成两部分,低位地址和每个存储器芯片的地址并联连接,高位地址通过片选译码器译码后与各存储器的片选信号连接,各存储器的数据线中对应位连接在一起。在存储器工作时,由于高位地址译码器的输出信号任何时刻只有一位输出有效,因此只能选中一片存储器,其余未选中的存储器芯片不工作。

【例8-2】

图8-36给出了用4个256×8芯片经字扩展构成一个1K×8存储器系统的连接方法。

所需要的存储器芯片数量为=4片。图8-36存储器的位扩展在实际应用中,往往会遇到字数和位数都需要扩展的情况,方法是先进行位扩展(或字扩展)再进行字扩展(或位扩展),这样就可以满足更大存储容量的要求。若使用l×k位存

储器芯片构成一个容量为M×N位(M>l,N>k)的存储器,那么这个存储器共需要(M/l)×(N/k)个存储器芯片。连接时可将这些芯片分成M/l个组,每组有N/k个芯片,组内采用位扩展法,组间采用字扩展法。

【例8-3】图8-37给出了用2114(1K×4)RAM芯片构成4K×8存储器的连接方法。图8-37存储器的字位扩展结构图8-37扩展既包含了字扩展,又包含了位扩展,一共用了(M/l)×(N/k)=(4/1)×(8/4)=8片2114芯片。因为两片2144扩展成8位,因此8片2114分成四组,这四组芯片需要4根2位地址线寻址,因此一共需要12位地址线。A9~A0用于片内寻址,而A11~A10用于选择一组芯片。可编程逻辑器件是一类特殊的芯片,与前面我们所介绍的通用芯片不一样的是,用户根据其设计的需要,以这类芯片为载体,对其编程实现所需要的逻辑功能。第一个可编程的IC是在1970年以PROM的形式出现的,刚开始的PLD结构比较简单,可编程单元的密度较低。

到20世纪70年代末以后,出现了规模更大、集成度更高的PLD,可以完成复杂的功能。1984年后出现了CPLD(ComplexProgrammableLogicDevice)和FPGA(FieldProgrammingGateArray)两类可编程逻辑器件。8.5可编程逻辑器件简介这两类器件无论在规模、工作速度和功耗等性能方面都有了很大的提高,可以在一片CPLD/FPGA芯片上实现非常复杂的逻辑功能,甚至是实现一个复杂系统,即所谓的片上系统。它们在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。

本节简单地介绍PLD,包括PROM、PLA(ProgrammableLogicArray)、PAL(Programmable

ArrayLogic)、GAL(GenericArrayLogic)、CPLD和FPGA。

在介绍这些PLD之前,首先给出PLD器件中常见到的表示方式,如图8-38所示。图8-38PLD中常用的符号

1.PROM

PROM是最早出现的PLD,它是由固定的“与”阵列和一个可编程的“或”阵列组成的,如图8-39(a)所示。例如,图8-39(b)给出了一个两输入、两输出的PROM阵列构成表示,不代表实际的电路图。图(b)的左边实点“·”表示“与”阵列的固定连接,右边“或”阵列的“*”表示可编程连接,这些可编程的连接可以通过基于熔丝连接、或基于EPROM或基于E2PROM的技术实现。与阵列的输入信号为互补缓冲输入,通过交叉点上的连接加到函数的与或表达式的乘积项中,“或”阵列的输入由与阵列的输出提供。N输入的PROM可以实现任意组合N输入的逻辑函数。图8-39PROM

【例8-4】

Y0=A

B=和Y1=A+B的逻辑关系,可以用图8-39(b)所示的PROM阵列实现,如图8-40所示。图8-40用PROM实现“异或”逻辑和“或”逻辑

【例8-5】

用PROM实现一个两位的乘法器。

用PROM实现乘法实际上就是给出索引值,在PROM阵列中查表。图8-41(a)给出了2×2的真值表,而图8-41(b)给出了PROM的实现。

PROM能够实现各种组合逻辑,但当输入信号的数目较多时,其与阵列的规模会变得很大,从而导致器件成本升高、功耗增加、可靠性降低等问题出现。目前这种器件已经比较

少用了。图8-41用PROM实现一个两位的加法器

2.PLA

可编程逻辑阵列PLA是20世纪70年代中期出现的一种可编程逻辑器件,解决了PROM结构对地址的限制。PLA是简单可编程逻辑器件中用户可配置性最好的器件,因为它的“与”和“或”阵列都是可配置的,图8-42给出了未编程的简单的2输入、2输出PLA结构。图8-42PLA的内部结构示意图与PROM不同,在“与”阵列中的与函数数目与输入数目无关,“或”阵列中或函数的数目也与阵列的与函数和器件的输入数目无关。因此,PLA不能实现任意的逻辑函数。

PLA是先经逻辑函数化简,再用最简“与或”表达式中的与项来编制“与”阵列。而PROM用最小项来设计译码阵列,一般ROM有2n根字线(即“与”项),且以最小项顺序编排,不可随意乱编。

PLA可以用来实现一些比较复杂布尔代数表达式。

【例8-6】

用PLA实现下面六变量输入的函数表达式,编程后的PLA如图8-43所示。

图8-43编程后的PLA3. PAL

可编程阵列逻辑PAL是20世纪70年代末推出的一种器件。它是PLA的一种变形,

与PLA不同的是它的“或”阵列是固定的。因此在用PAL构成实现某个逻辑函数的电路

时,每个输出所表示的与或函数中,与项数不能超过或门阵列所固定的数目。

图8-44给出了PAL的组成和一个3输入、可编程6个“与”项、3个固定输出的PAL

结构。用它可以实现3个3变量的逻辑函数。图8-44PAL为了扩展电路的功能并增加使用的灵活性,PAL在与或阵列的基础上,增加了多种输出及反馈电路,构成了各种型号的PAL器件。根据PAL器件的输出结构和反馈电路的不同,可将它们大致分成专用输出结构、可编程输入/输出结构、寄存器输出结构、异或输出结构等几种类型。

1)专用输出结构

图8-44(b)所示电路就属于专用输出,它的输出端是或门。另外,有的PAL还采用与或非门输出结构或互补输出结构。图8-45所示的PAL电路是与或非输出结构。专用输出结

构PAL器件的特点是与阵列编程后,输出只由输入来决定,即输出端只能作输出用,因此,专用输出结构的PAL器件适用于组合逻辑电路的设计,故专用输出结构又称为基本组合输出结构。图8-45PAL的与或非门结构

2)可编程输入/输出结构

图8-46给出了PAL电路的可编程输入/输出结构(也称为异步I/O结构)。具有可编程控制端的三态缓冲器,控制端由逻辑阵列的一个乘积项给出。同时,输出端又经过一个互

补输出的缓冲器反馈到与逻辑阵列上。编程时,当三态缓冲器的控制端(图中的C1和C2)为低电平时,三态缓冲器处于高阻态,此时,I/O端可作为输入端使用,通过另一个缓冲器

送到与阵列中。当三态缓冲器的控制端为高电平时,三态缓冲器被选通,I/O端只能作输出端使用,此时,与I/O端连接的缓冲器作反馈缓冲器使用,将输出反馈至与门。根据这一特性,可通过编程指定某些I/O端的方向,从而改变器件输入/输出线数目的比例,以满足各种不同的需要。图8-46PAL的可编程输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论