数字电子技术基础(新形态版) 课件 第7章 - 半导体存储器_第1页
数字电子技术基础(新形态版) 课件 第7章 - 半导体存储器_第2页
数字电子技术基础(新形态版) 课件 第7章 - 半导体存储器_第3页
数字电子技术基础(新形态版) 课件 第7章 - 半导体存储器_第4页
数字电子技术基础(新形态版) 课件 第7章 - 半导体存储器_第5页
已阅读5页,还剩56页未读, 继续免费阅读

下载本文档

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

文档简介

《数字电子技术基础》教学课件张俊涛陕西科技大学电子信息与人工智能学院第七章半导体存储器

Memory

7.2RAM

SRAM7.3存储容量的扩展本章内容

7.4ROM的应用本章小结,习题7.1ROM

DRAM

7.7

设计实践7.5*

可编程逻辑器件

7.6*

存储器的功能描述7.7.1DDS信号源设计

7.7.2LED点阵驱动电路设计

7.7.3数码序列显示模块的描述能够以结构化方式存储大量二值信息的半导体器件。

掩膜ROM

PROMEPROM

*E2PROM

*快闪存储器

*静态RAM(SRAM)*动态RAM(DRAM)

◆什么是半导体存储器?◆半导体存储器的分类◆存储器容量的表示方法2n×b●只读存储器(ROM)●随机存取存储器(RAM)存储器单元数×每个单元的存储位数2k×8程序存储器数据存储器7.1只读存储器(ROM)◆ROM的一般结构ROM由地址译码器、存储矩阵和输出缓冲器三部分组成。(3)输出(三态)缓冲器用于控制是否将存储数据输出到总线上。(1)地址译码器用于对输入的n位地址进行译码,产生2n个字线信号,与存储单元相对应。(2)由二极管/三极管/MOSFET构成的存储阵列,其中2n×b表示有2n个存储单元,每个单元存储b位数据。ROM:ReadOnlyMemoryROM数据表字线与位线的交叉点称为存储结点(Storagecell)。8×4位二极管ROM1.掩膜ROM掩膜式ROM在制造时以存储结点上有无晶体管代表不同的存储数据。D3=(Y0'Y1'Y2'Y7')'D2=(Y0'Y1'Y3'Y6')'D1=(Y0'Y2'Y3'Y5')'D0=(Y1'Y2'Y3'Y4')'二极管:有:0/1无:1/0反相2.可编程只读存储器-PROM8×4位MOS管阵列ROM

PROM(ProgrammableROM)称为可编程ROM,内部结构与掩膜式ROM类似,只是在制造时每个存储结点上晶体管的发射极是通过熔丝(fuse)接通的,相当于每个结点预存的数据全部为1。MOSFET:有:0无:1PROM:OTP器件-One-TimeProgrammableFuse:有:1无:03.可擦除的PROM-EPROM27Cxxx系列

EPROM(ErasablePROM)称为可擦除PROM,存储结点采用图7-5所示的浮栅MOS管存储数据,可以通过特定波长的紫外线照射将存储的数据擦掉,从而能够实现多次编程。

浮栅MOS管有两个栅极:浮栅Gf和控制栅GC,其中浮栅Gf的四周被SiO2绝缘层包围。

对EPROM编程时,给需要存入数据0的存储单元的控制栅上加上高压,使得浮栅Gf周围的绝缘层暂时被击穿而将负电荷注入到浮栅中。编程完成后,浮栅中的负电荷由于没有放电通路因此能够长期保存下来。AT28CxxxAT24Cxxx4.电可擦除的EPROM-E2PROM

E2PROM(ElectricallyEPROM)称为电可擦除EPROM,存储结点采用图7-7所示的FlotoxMOS管存储数据。

FlotoxMOS管浮栅周围的绝缘层更薄,在浮栅的下方有隧道区,可以通过给控制栅上加反极性电压进行擦除。由于E2PROM能够用电擦除,所以使用比EPROM方便得多。

在读操作中,浮栅中有负电荷的存储单元阻止了MOS管导通,没有负电荷的存储单元中的MOS管能够正常导通,从而表示了0/1两种不同的存储数据。

5.快闪存储器(FlashEPROM)

快闪存储器(FlashEPROM)简称为闪存,是从EPROM和E2PROM发展而来的只读存储器,具有工作速度快、集成度高、可靠性好等优点。

快闪存储器的存储结点采用叠栅MOS管存储数据。叠栅MOS管的结构、符号以及存储结点的结构分别如图7-8所示。

叠栅MOS管的结构与浮栅MOS管相似,但浮栅四周的绝缘层更薄,而且浮栅与源区重叠区域的面积极小,因此浮栅-源区间的电容要比浮栅-控制栅小得多。当控制栅和源极间加电压时,大部分压降将降在浮栅与源极之间的电容上,因而对读写电压要求不高,编程很方便。

快闪存储器自20世纪80年代问世以来,以其高密度、低成本、读写方便等优点,成为U盘、SD卡和固态硬盘等大容量存储器的主流产品。Atmel公司出产的部分E2PROM和快闪存储器的型号和参数如表所示。7.2随机存取存储器(RAM)◆RAM的一般结构

按照存储数据原理的不同,将RAM分为SRAM(StaticRAM,静态RAM)和DRAM(DynamicRAM,动态RAM)两种类型。

RAM的结构框图如图所示,由地址译码器、存储阵列和读/写控制电路三部分组成。

CS'为片选端,OE'为输出控制端,WE'为写控制端,均为低电平有效。1.SRAMSRAM用锁存器存储数据,存储结点的结构和符号如图所示。RAM:RandomAccessMemory8×4位SRAMSRAM具有以下两种操作:(1)读。当CS'和OE'均有效时,给定存储单元地址后,所选中存储单元中的数据从DOUT端输出;(2)写。给定存储单元地址后,将需要存储的数据输入到DIN线上,然后控制CS'和WE'有效,使所选中存储单元的锁存器打开,输入数据被存储。2.DRAM

单管DRAM存储结点的结构如图所示,由MOS管T和栅极电容CS组成。

DRAM是利用MOS管栅极电容可以存储电荷的原理而实现数据的存储。

由于DRAM存储结点的结构非常简单,因此单片DRAM的容量很大,用于需要大量存储数据的场合。(1)在进行写操作时,字线X上给出高电平,MOS管T导通,位线B上的数据经过MOS管被存入电容CS中。(2)在进行读操作时,字线X同样给出高电平使MOS管导通,这时电容CS中的数据经过MOS管输出到位线上,使位线B上得到相应的信号电平,再经过读写放大器输出给外部电路。

由于MOS管的栅极电容极小而且有漏电流存在,电荷不能长期保存,所以在使用DRAM时需要定时进行刷新(Refresh)补充电荷以避免存储数据丢失。

无论是应用锁存器存储数据的SRAM还是应用栅极电容存储数据的DRAM,在断电后数据都会丢失,所以RAM称为易失性存储器。?思考与练习1.SRAM和DRAM的根本区别是什么?各有什么优、缺点?2.RAM和ROM的主要区别是什么?各适用于什么场合?7.3存储容量的扩展其中存储器单元数称为字数,每个单元的存储位数称为位数。存储器单元数×每个单元的存储位数◆存储器容量的表示方法1.位扩展方式2.字扩展方式1024×11024×8256×81024×80~255256~511512~767768~10237.4ROM的应用

在数字系统中,应用ROM的数据存储作用构成函数发生器等,ROM还可以用来实现组合逻辑函数和进行代码转换。1.实现组合逻辑函数

ROM具有多个地址输入端和多个数据输出端,所以可以很方便地实现多输入-多输出的组合逻辑函数。256×82.实现代码转换

代码转换电路本质上为组合逻辑电路,当然可以按组合逻辑函数的一般方法进行设计,但最简单的方法是基于ROM设计,通过查表的方式实现代码转换。将待转换的代码作为ROM的地址,将真值表写入ROM中,那么ROM的输出即为转换结果。256×123.构成函数发生器函数发生器是用来产生正弦波、三角波、锯齿波或其它任意波形的电路系统。#include<math.h>#include<stdio.h>#definePI3.1415926intmain(void){floatx;unsignedcharsin8b;unsignedinti;FILE*fp;fp=fopen("sin256x8.bin","w");for(i=0;i<256;i++){x=sin(2*PI/256*i);sin8b=((x+1)/2*255);fputc(sin8b,fp);}fclose(fp);}7.5*

可编程逻辑器件1.可编程逻辑器件

可编程逻辑器件经历了从PROM、EPROM、E2PROM到FPLA、PAL、GAL、EPLD以及目前广泛应用的CPLD和FPGA的发展历程,在结构、工艺、功耗、规模和速度等方面都得到了重大的发展。74HC0074HC0274HC04/1474HC1074HC3274HC86------------74HC125/126CD4051/52/53------------74HC14874HC138/139CD451174HC151/15374HC283------------74HC160/16174HC190/19174HC573/57474HC595CD4060-------------74HC121/123NE555/LM555-------------ADC0809DAC0832(1)第一阶段从20世纪70年代初到70年代中期,主要有PROM、EPROM和E2PROM三类。这些器件结构简单、规模小,主要作为存储器件(Memory)使用,只能够实现一些简单的组合逻辑电路。EPROM存储单元:浮栅MOS管E2PROM存储单元:FlotoxMOS管PROM有Fuse:1无Fuse:0(2)

第二阶段从20世纪70年代中期到80年代中期,出现了PAL和GAL器件。这类器件内部由“与-或阵列”组成,同时又集成了少量的触发器,能够实现较为复杂的功能电路,并正式命名为PLD。(3)第三阶段从20世纪80年代中期到90年代末期,Altera公司和Xilinx公司分别推出了CPLD

(ComplexPLD,复杂可编程逻辑器件)和FPGA

(FieldProgrammableGateArray,现场可编程门阵列)。其中FPGA具有结构灵活、集成度高等优点,成为产品原型设计的首选。(4)第四阶段从20世纪90年代末至今,随着半导体制造工艺达到了纳米级,可编程逻辑器件的密度越来越大,出现百万门至上千万门的FPGA。

目前,许多FPGA产品系列内嵌了硬件乘法器、硬核处理器和Gbits差分串行接口等,超越了ASIC的规模和性能,同时也超越了传统意义上FPGA的概念,不仅能够支持软硬件协同设计,而且还能够实现高速与灵活性的完美结合,使可编程逻辑器件的应用范围扩展到系统级,出现了SOPC(SystemOnProgrammable-Chip,在系统可编程)技术。

乘积项结构的PLD一般采用熔丝、E2PROM或者Flash等ROM工艺制造的,加电后就能工作,断电后信息也不会丢失。另外,由于乘积项结构的PLD采用结构规整的与-或阵列结构,从输入到输出的传输延迟时间是可预期的,因此不易产生竞争-冒险,常用于接口电路设计中。LB:logicblockIOB:input/outputblockProgrammableinterconnect

FPGA的内部不再是由“与阵列”和“或阵列”构成,其基本逻辑单元称为查找表(Look-Up-Table,简称LUT),用户通过配置查找表对其逻辑功能进行定义。基于查找表实现逻辑电路的原理是:

任意n变量逻辑函数共有2n个取值组合,如果将n变量逻辑函数的函数值预先存放在一个2n×1位的RAM中,然后根据输入变量的取值组合查找RAM中相应存储单元中的函数值,就可以实现任意n变量逻辑函数。用户通过配置FPGA查找表中RAM的数据,就可以用相同的电路结构实现不同的逻辑函数。

4变量LUT的基本公式为

Y=D0m0+D1m1+D2m2+D3m3+.....+D14m14+D15m15其中m0,...,m15为4变量逻辑函数的全部最小项。

(1)要实现三变量逻辑函数

Y1=AB'+A'B+BC'+B'C时,由于Y1可表示为

Y1=m1+m2+m3+m4+m5+m6因此将16×1位的RAM中的数据配置成“0111_1110_0000_0000”即可。

(2)若要实现四变量逻辑函数

Y2=A'B'C'D+A'BD'+ACD+AB'时,由于Y2可表示为

Y2=m1+m4+m6+m8+m9+m10+m11+m15因此,将16×1位的存储器中的数据配置成“0100_1010_1111_0001”即可。LUT中的配置数据为:“0000_0000_0000_0001”。FPGA内部互连网络FPGA内部包含以下三种基本资源:(1)可编程逻辑阵列块(LB);(2)可编程输入/输出块(IOB/IOE);(3)可编程内部互连网络。

但是,由于FPGA基于查找表、采用“滚雪球”的方式实现逻辑函数,因此对于多输入-多输出的逻辑电路,从输入到输出的传输延迟时间是不可预期的,所以基于FPGA实现的数字系统时容易产生竞争-冒险现象,设计时尽量采用同步时序电路以避免竞争-冒险。

由于LUT占用芯片的面积很小,因此FPGA具有很高的集成度,目前单芯片FPGA的规模从几十万门到上千万门。

同时,基于LUT结构的FPGA比基于“与-或阵列”结构的CPLD具有更高的资源利用率,所以特别适合于实现大规模和超大规模数字系统。

FPGA作为ASIC领域中的一种半定制电路出现的,既克服了ASIC的不足,又克服了“与-或阵列”结构PLD资源利用率低的缺点。FPGA将ASIC集成度高和可编程逻辑器件使用灵活、重构方便的优点结合在一起,特别适合于产品原型设计或者小批量产品研发。7.6*

存储器的功能描述

VerilogHDL将存储器定义为寄存器变量的集合,通过寄存器数组来描述。

存储器定义的格式如下:

reg[msb:lsb]存储器名[upper:lower];其中,“[msb:lsb]”定义存储单元的位宽,“[upper:lower]”定义存储深度,即存储单元的个数。例如:”reg[7:0]memo[15:0];“定义了一个16×8位的存储器,每个单元存8位数据,共16个存储单元,地址为15~0。

存储器分为ROM和RAM两类。小容量的ROM可直接应用case语句定义存储数据。例如,描述二进制显示译码的Verilog代码:modulerom_16x7b(bincode,oHex7);input[3:0]bincode;outputreg[6:0]oHex7;//显示译码逻辑描述always@(bincode)case(bincode)//gfedcba,高电平有效

4'b0000:oHex7=7'b0111111;//显示04'b0001:oHex7=7'b0000110;//显示14'b0010:oHex7=7'b1011011;//显示24'b0011:oHex7=7'b1001111;//显示34'b0100:oHex7=7'b1100110;//显示44'b0101:oHex7=7'b1101101;//显示54'b0110:oHex7=7'b1111101;//显示64'b0111:oHex7=7'b0000111;//显示74'b1000:oHex7=7'b1111111;//显示84'b1001:oHex7=7'b1101111;//显示94'b1010:oHex7=7'b1110111;//显示A4'b1011:oHex7=7'b1111100;//显示b4'b1100:oHex7=7'b0111001;//显示c4'b1101:oHex7=7'b0011110;//显示d4'b1110:oHex7=7'b1111001;//显示E

4'b1111:oHex7=7'b1110001;//显示Fdefault:oHex7=7'b0000000;//不显示endcaseendmodule

RAM为时序逻辑电路,分为单口RAM、双口RAM、伪双口RAM三种类型。其中双口(dual-port)RAM具有两组I/O端口,都可以进行读写,而伪双口(simpledual-port)RAM与双口RAM的区别在于一个端口只读,另一个端口只写。

伪双口RAM的结构框图如图所示,其中clock为时钟端,wren为写控制端,wraddr为写地址端,data为数据输入端;rdaddr为读地址端,q为数据输出端。moduleDPRAM_simp#(parameterADDR_WIDTH=10,DATA_WIDTH=8)(clock,data,wraddr,wren,rdaddr,q);//存储器深度定义localparamRAM_DEPTH=1<<ADDR_WIDTH;//模块器端口定义inputclock;//时钟input[DATA_WIDTH-1:0]data;//写入数据input[ADDR_WIDTH-1:0]wraddr,rdaddr;//写地址和读地址inputwren;//写控制信号读控制信号outputreg[DATA_WIDTH-1:0]q;//数据输出//RAM存储体定义reg[DATA_WIDTH-1:0]ram_mem[RAM_DEPTH-1:0];//写过程always@(posedgeclock)

描述1024×8位伪双口RAM的VerilohHDL模块代码if(wren)ram_mem[wraddr]<=data;//读过程always@(posedgeclock)q<=ram_mem[rdaddr];endmodule7.7

设计实践7.7.1DDS信号源设计7.7.2LED点阵驱动电路设计7.7.3*数码序列显示模块的描述DDS是DirectDigitalSynthesizer的缩写。

DDS信号源的工作原理是:相位累加器在时钟的作用下实现相位循环累加,输出新的相位增量。波形ROM用于实现相位-幅值的转换,以相位累加器输出的相位值作为波形存储器的地址,从存储器中取出信号的幅值数据输出,再经过D/A转换器和低通滤波器转换为模拟信号。相位累加器DDS用于产生:(1)信号;(2)载波;(3)SPWM信号。波形ROMMHz7.7.1DDS信号源设计(1)Hz/kHz

将一个正弦周期(0~2π)均匀采样2n个点(对应最小的相位增量为2π/2n),并将采样点的模拟正弦幅度值经过量化编码为数字量后存入ROM中。

采用n位相位累加器(能够访问2n个存储单元)时,DDS输出的正弦信号频率fOUT与频率控制字N、相位累加器的时钟脉冲频率fclk之间的关系为:

将一个正弦周期(0~2π)均匀采样256个点时,需要用256×m的ROM。

正弦相位累加的原理可以通过图形来解释。设n=8【设计任务】设计DDS正弦波信号源。信号源有“UP”和“DOWN”两个键,按UP时频率步进增加,按DOWN时频率步进减小。要求输出信号的频率范围为100Hz~1500Hz,步进为100Hz。(2)为了保证输出正弦信号无失真,根据Nyquist采样定理,每个正弦周期至少应输出2个及以上的采样点,才能恢复出正弦波,而且输出的采样点数越多,越有利于后续低通滤波器的设计。但是,采样点数越多,所需要的存储容量越大,消耗的FPGA存储资源越多,因此需要折中考虑。当输出1500Hz正弦波,设计每个周期输出16个采样点时,则DDS信号源的时钟频率至少应取(1500Hz×16=)24kHz。

分析:(1)频率为100~1500Hz、步进为100Hz的正弦信号共有15种频率值,因此需要用4位频率控制字进行控制;

设计过程:根据上述分析,满足设计要求的DDS信号源的总体设计方案如图所示。首先利用多谐振荡器产生25.6kHz的时钟信号,根据设定的4位频率字控制8位加法器和8位寄存器实现相位累加,将得到的数值相位值作为256×8位ROM的地址,查询预先存入ROM中的256个正弦波数据表输出数字化正弦波幅度值,再经过8位DAC转换为模拟量再经过低通滤波器滤波输出模拟正弦波信号。

256点正弦波采样值可用C程序生成,归一化为8位数字量(0~255)后存入数据文件sin256x8.bin中,然后加载到ROM中。#include<math.h>#include<stdio.h>#definePI3.1415926voidmain(void){floatx;

unsignedcharsin8b;

unsignedinti;FILE*fp;fp=fopen("sin256x8.bin","w");for(i=0;i<256;i++){x=sin(2*PI/256*i);sin8b=((x+1)/2*255);fputc(sin8b,fp);}fclose(fp);}

具体的实现方案如图所示。

设计图中使用的是EPROM(4k×8位的2732,实际只用了256×8位),实际制作时建议用E2PROM或Flash存储器。modulepadder_addr(clk,fword,addrout,datinv);inputclk;input[14:0]fword;//15位控制字输入outputreg[14:0]addrout;outputregdatinv;//数据反相标志reg[16:0]qq;//15+2位相位控制字always@(posedgeclk)beginqq<=qq+fword;//相位累加case(qq[16:15])2'b00:beginaddrout[14:0]<=qq[14:0];datinv=0;end2'b01:beginaddrout[14:0]<=~qq[14:0];datinv=0;end2'b10:beginaddrout[14:0]<=qq[14:0];datinv=1;end2'b11:beginaddrout[14:0]<=~qq[14:0];datinv=1;endendcase

温馨提示

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

评论

0/150

提交评论