常用存储器芯片设计指南常用存储器芯片设计指南常用存储器芯片设计指南常用存储器芯片设计指南现代通讯产品中,各种存储器的应用已经是越来越广泛,可以这么说,产品中包含的存储器的特性的好坏,直接关系到产品整体性能。因此,存储器芯片的设计,在通讯产品的设计中,也显得愈发重要。目前在通讯产品中应用的存储器,主要有FLASH、SSRAM、SDRAM、串行PROM等,由此延伸出去还有在接口电路中经常应用的FIFO、双口RAM等,下面的内容就是这些常用存储器芯片的原理介绍和在产品中的设计指南。FLASH介绍介绍介绍介绍一一一一、、、、BOOTROM简介简介简介简介我们在CPU最小系统中一般采用AM29LV040B-90//SST39VF040-90-4C-NH(代码:10300067,512kB,8位总线宽度,PLCC32封装,3.3V供电)作为BOOTROM。BOOTROM中存放的是系统自举程序,实现CPU系统的自举。当系统上电后,CPU首先运行BOOTROM中的程序,完成对CPU系统的初始化。图1AM29LV040B-90//SST39VF040-90-4C-NH引脚图该FLASH芯片可在线读写,但作为BOOTROM时,我们一般用烧录机烧写入程序,不对其进行在线写。其读操作时序如图2所示。图2读操作时序下面给出一个MPC860最小系统的应用例子。地址总线数据总线BBBBOOOOOOOOTTTTMMMMPPPPCCCC888866660000BCBBABBDBBA[31..13]BD[0..7]B\OE\CS0驱动缓冲驱动ABDBSST39VF040244245244图3MPC860BOOT电路图因为我们不需要在线写,所以为防止BOOTFLASH的程序被改写,一般将/WE信号接高电平。MPC860用8位数据口的方式访问BOOT,经缓冲之后的数据线为BD00-BD07。MPC860地址线使用A31-A13,经一级驱动与BOOT相连。使用/CS0片选端,地址范围0x08000000~0x0807FFFF,使用内部等待,等待周期为8。BOOTROM中存放的是系统自举程序,实现MPC860系统的自举。当系统上电后,MPC860首先运行BOOTROM中的程序,该程序首先完成MPC860的初始化,然后根据参数,将FlashROM中的应用程序复制到SDRAM空间中,然后将控制权移交给该应用程序运行;或准备应用程序加载,进入调试状态。二二二二::::大容量大容量大容量大容量FLASH由于FLASH具有在掉电情况下保持数据和容量大的特性,因此在公司的绝大多数运用中是用在CPU系统中存放系统的应用软件的,其运作过程如下:系统上电后,首先BOOTROM的片选被选中,它里面放的是CPU的初始化程序,这样CPU就起来了,接着FLASH条的版本程序被下载到内存条中,从而整个软件就在CPU系统中运行起来,这样一来可以提高系统运行速度,二来是方便版本的管理。因为一般来说系统支持远程加载和更新软件版本的功能,因此一般说来FLASH中必须开辟两个相同的区域,分别作为软件版本的保护和备份,这样一旦出现在系统动态加载软件失败时,能保证备用软件版本的正常启动,使系统不致崩溃。典型介绍典型介绍典型介绍典型介绍生产FLASH的厂商很多,我们将以广为运用INTEL的28F128J3A芯片为例子来介绍,使大家对FLASH的操作有一个大致的了解,此芯片单片容量为128MBIT,(16BITX8M)。由于此系列的FLASH(28F128J3,28F640J3,28F320J3)的引脚完全兼容,因此可以简单地通过器件替换提供128MBIT,64MBIT,32MBIT的容量。28F128J3A芯片的管脚简单,分数据总线,地址总线,控制线,电源,地这么几类;在使用的时候,只需接出使能,片选,写控制三根控制线即可,其他的控制线可以接固定电平,下图就是某CPU子卡的FLASH接法:MPC地址总线数据总线控制总线FLASHBABBDBBCBBD[0-15]/CS1CS动动BOEBWEBA[30-7]28F128FLASH28F128J3A的操作是通过CPU分来现的,其是通过数据总线,地址总线,控制线现某个固定电平;下就是28F128J3A有对应的的定:从上表可以看出28F128J3A大部分命令的实现分为两步实现:例如Block_Erase命令,而普通的读命令Read_Array只要一步。对于28F128J3A的某些操作,是非常简单的,例如读操作:在芯片复位/上电后芯片默认为Read_Array模式,这样可以直接读取芯片的数据,但是如果在写FLASH或发布了其他命令后再想读取,那么就必须重新发布Read_Array命令才能读取;对于其他的操作,尤其是分两步完成的命令,其操作是通过几个不同命令组合而成,具有一定的流程,并且在过程中经常需要不断地从FLASH读取状态信息以进行下一步操作来保证操作的正确。在这里举两个操作流程的例子,通过这个例子,可以大致了解FLASH的操作:第一个是Read_Status_Register命令,这个命令是用来读取芯片目前的状态,其他操作的流程中经常用到此命令以保证操作的正确,下图是进行Read_Status_Register命令的流图:第二个例子是使用Write_to_Buffer命令过程,我们可以看到,在其过程中,我们可以看到需要发布Read_Status_Register命令检查芯片的状态信息以判断下一步:FPGA配置用配置用配置用配置用PROM简介简介简介简介这类可编程ROM是专为FPGA加载配置所用。其针对不同容量、型号、厂家的FPGA,其存储大小、性能不尽相同;但其使用的电路、方法、时序基本相同。而且,基本上是只可一次性擦写。下面就以XILINX公司XC17S00A系列为例介绍一下。图1XC17S00A引脚图FPGA的配置数据是事先烧入PROM中的,FPGA采用的是主串行配置方式,上电后FPGA产生配置时钟给PROM,PROM则按照图3的时序对FPGA进行配置,当配置完成后FPGA的DONE信号就不使能PROM。图2PROM配置FPGA电路图3PROM的配置时序我们公司这类器件没有一个是通用的,我们不推荐使用PROM配置这种方式。最好用CPU进行FPGA配置,这样做增加了FPGA版本的灵活性,也大大降低了成本。SSRAM介绍介绍介绍介绍SSRAM支持高性能CPU、DSP、网络套片等多种应用场合。目前在公司多种产品中也有比较广泛的应用。一一一一、、、、SSRAM的选用的选用的选用的选用在选用SSRAM时,一般需要考虑以下几个方面:(1)根据设计需求、接口芯片的具体要求等确定SSRAM的芯片容量大小、数据宽度以及芯片速度等级;(2)根据以上信息确定SSRAM型号,并尽可能在公司通用件库中选型;(3)根据信号定义及信号时序等确定SSRAM及其接口芯片的具体的电路连接关系。二二二二、、、、SSRAM的电路设计的电路设计的电路设计的电路设计1、概述一般来说,SSRAM的信号主要包括以下几部分:数据线、地址线、时钟以及写使能、输出使能等控制信号等。在进行具体的电路设计时,一般只需将这些主要信号与其接口的特定芯片的对应信号直接对连即可,对于一些比较特殊的时序要求可以通过EPLD内做逻辑实现。对于SSRAM上的一些不用的输入信号进行适当的上、下拉处理。2、应用实例下面以RNC中的一块单板ASC上采用的SSRAM为例,来说明SSRAM的具体应用。首先根据设计要求,ASC单板上的ATM层UNI/NNI管理接口芯片ALM需要一片数据宽度为32位的SSRAM作为外部存储器。综合考虑ALM外部存储器所需的容量大小以及目前SSRAM的价格因素及芯片可采购性等各方面因素,可以选择公司通用件CY7C1381B-100AC(代码12300217)来实现。CY7C1381B-100AC数据宽度为32位,其信号线主要包括地址线、数据线、时钟和一些控制信号,其具体信号如下表所示。信号类型信号名信号说明处理方式数据线DQA[0:8]数据线与其接口芯片直连DQB[0:8]DQC[0:8]DQD[0:8]地址线A[0:18]地址线与其接口芯片直连时钟线CLK时钟输入,用来捕获芯片的所有同步输入与其接口芯片直连主要控制信号/OE输出使能与其接口芯片直连/GW全局写使能输入与其接口芯片直连/CE1芯片片选信号下拉CE2上拉/CE3下拉/BWa,/BWb,/BWc,/BWd字节写选择输入上拉(因为使用/GW信号,/BWa,/BWb,/BWc,/BWd,/BWE将被忽略)/BWE字节写使能上拉(理由同上)/ADV有效时,在burst访问模式时地址自动增加上拉或下拉,可根据实际需要通过电阻选焊实现/ADSC控制器地址选通上拉或下拉,本应用中下拉/ADSP处理器地址选通上拉或下拉,本应用中上拉MODEBurst序列选择,接地时选择线性burst顺序,悬空或上拉时选择交织burst上拉或下拉,可根据实际需要通过电阻选焊,本应用中选择下拉分析ALM及所选SSRAM的具体接口信号可知,电路连接方面基本上只要将二者数据线、地址线、时钟以及几个主要控制信号直连,其他的信号做一些上下拉处理即可。如下图所示,给出了二者接口的电路连接框图。同时在表1中最后一列也给出了在该例中SSRAM各具体信号的相应处理方式。CY7C1381B-100ACDATA[0:31]ADDR[0:18]OENWENCLKSOENSWENSCLKSADDR[0:18]SDATA[0:31]ALMCLK/GW/OEDQA[0:8]DQB[0:8]DQC[0:8]DQD[0:8]A[0:18]其他控制信号上下拉处理SDRAM应用应用应用应用存储器是容量数据处理电路的重要组成部分。随着数据处理技术的进一步发展,对于存储器的容量和性能提出了越来越高的要求。同步动态随机存储器SDRAM(SynchronousDynamicRandomAccessMemory)因其容量大、读写速度快、支持突发式读写及相对低廉的价格而得到了广泛的应用。SDRAM的控制比较复杂,其接口电路设计是关键。1....SDRAM的主要控制信号和基本命令的主要控制信号和基本命令的主要控制信号和基本命令的主要控制信号和基本命令SDRAM的主要控制信号为:·CS:片选使能信号,低电平有效;·RAS:行地址选通信号,低电平有效;·CAS:列地址选通信号,低电平有效;·WE:写使能信号,低电平有效。SDRAM的基本命令及主要控制信号见表1。表表表表1SDRAM基本操作及控制信号基本操作及控制信号基本操作及控制信号基本操作及控制信号命令名称CSRASCASWE命令禁止(NOP:Commandinhibit)HXXX空操作(NOP:Nooperation)LHHH激活操作(ACT:Selectbankandactiverow)LLHH读操作(READ:Selectbankandcolumn,andstartREADburst)LHLH写操作(WRITE:Selectbankandcolumn,andstartWRITEburst)LHLL突发操作停止(BTR:Burstterminate)LHHL预充电(PRE:Deactiverowinbankorbanks)LLHL自动刷新或自我刷新(REF:Autorefreshorselfrefresh)LLLH配置模式寄存器(LMR:Loadmoderegister)LLLL所有的操作控制信号、输入输出数据都与外部时钟同步。一个完备的SDRAM接口很复杂。对于常规的SDRAM应用来说,处理的事件相对来说比较简单,因而可以简化设计而不影响性能。接口电路SDRAM的主要操作可以分为:初始化操作、读操作、写操作、自动刷新操作。(1)初始化操作SDRAM上电一段时间后,经过初始化操作才可以进入正常工作过程。初始化主要完成预充电、自动刷新模式寄存器的配置。(2)激活操作SDRAM在进行读写之前,必须将位于某一个BANK或所有BANK中的行(row)地址进行激活,之后才能进