RAM和ROM结构原理
FPGAFPGA 结构介绍结构介绍 由于 PLD 大都是基于 ROM 或者 RAM 的,因此先介绍下 ROM 和 RAM 1. 1.RAMRAM((Random-Access Memory,Random-Access Memory,随机存储器)随机存储器) RAM 正常状态下就可以随时快速的向存储器里写入和读出数据,断电丢失 RAM 可以分为 SRAM(静态随机存储)和 DSRAM(动态随机存储) 1.1.1.1.SRAMSRAM 一个 SRAM 通常由存储矩阵、地址译码器和读/写控制电路三部分组成 地址线采用双译码方式,一般的会将地址线分为行地址和列地址 ➢行地址,选择某一行,在通过列地址选择这一行中的某些存储单元 ➢减少译码地址线;例如一个1024x4 的一个 SRAM,一共有1024 个单元,单译码的 话就需要用到 1024 根选通线,双译码的话只需要64+16=80 根选通线 1.1.1.1.1.1.静态存储单元控制静态存储单元控制 A.SRAM 通过行列译码选择存储单元进行读写控制 Xi Xi 0 0 1 1 B.存储单元实现存储的方式 Yj Yj 0 1 0 1 T6T6 截止 截止 导通 导通 T5T5 截止 截止 导通 导通 T8T8 截止 导通 截止 导通 T7T7 截止 导通 截止 导通 读读/ /写写 不能 不能 不能 能 表 1 行列译码真值表 靠锁存器来实现, 要写入的数据为 Q, 经过 A3 的反相之后 Q’, 此时经过 G1 输出为 Q; 当撤去 Q’和 Q 的外部输入后,G1 的输出 Q,经过 G2 到达 G1 的输入端,状态得以保持 C.选择对应的存储单元后,通过CS’和 R/W’进行存储单元读写的控制 假设 I/O 此时输入为 Q CS’CS’ 1 0 0 R/W’R/W’ - 0 1 与门与门 1 1 0 1 0 A3A3 Z 导通 Z A2A2 Z 导通 Z 与门与门 2 2 0 0 1 A1A1 Z Z 导通 读读/ /写写 不能 写 读 表 2 读写控制真值表 1.2.1.2.DRAMDRAM((Dynamic RandomDynamic Random- -Access Memory,Access Memory,动态随机存储器)动态随机存储器) DRAM 其结构大体上与 SRAM 类似,包括双地址译码,存储矩阵,读写控制 对于 DRAM,为了提高集成度减少引脚数目,一般都采用一位输入、一位输出和地址分时输 入(地址多路复用) 1.2.1.1.2.1.地址多路复用地址多路复用 这里一个行地址和列地址都是 10 位的一个 DRAM,可以看出他们的行、列地址都是共用的 相同的引脚,分为 2 次分别送入,分别由CAS’和 RAS’控制: 首先是行地址输入,行地址到达时,RAS’必须变为低,控制行锁存器锁存输入的行地址 然后是列地址输入,列地址到达时,CAS’必须为低,控制列地址锁存器锁存输入的列地址 1.2.2.1.2.2.MosMos 存储单元结构存储单元结构 DRAM 的存储单元是采用 mos 管加电容的方式实现的,电容有电荷时存放 1,无电荷时存放 0 A.行地址线为高电平时,相应的 mos 管导通,电容连接到位线上;此时刷新放大器读取 对应电容上的电压值,将读到的电压转换成逻辑0 或 1 B.由于在行地址线为高时,一行上所有的电容 C 都受到了影响,为了在读出数据之后仍 能保持原有的信息,刷新放大器在读取之后会对电容进行重写 C.列地址线为高电平时,相应的mos 管导通,位线导通 1.2.3.1.2.3.刷新操作刷新操作 由于电容存在有漏电流, ,保存电荷的时间有限,为了避免存储的数据丢失,必须定时的向 电容进行充电,称为刷新 刷新是按照行来操作的,因此不需要列地址,下图中,通过一个刷新计数器,产生10 位行 地址,来刷新电容 1.2.4.1.2.4.读读/ /写端口写端口 三态门控制,输入还是输出(写还是读) 下图是 CS’控制 1.3.1.3.SRAMSRAM 与与 DRAMDRAM 区别区别 存储方式 地址输入 运行速度 根据存储方式可以得知,断电后,里面所存储的数据都会丢失 SRAMSRAM 锁存器 行列地址同时输入 快 DRAMDRAM 电容,结构简单,需要刷新 先输入行,再输入列,共用相同端口 慢 2. 2.ROMROM((Read-Only MemoryRead-Only Memory,只读存储器),只读存储器) 一般 ROM 正常情况下只能从里面读取数据 2.1.2.1.掩模掩模 ROMROM 里面的内容已由厂家按要求写在芯片中,不可更改。以4x4 的掩模 ROM 来说明其实现的原 理 A1A1 0 0 1 1 A0A0 0 1 0 1 字线字线 W0 W1 W2 W3 D3D3 0 1 1 0 D2D2 1 0 0 1 D1D1 0 1 1 1 D0D0 1 1 0 0 每个位置都有 mos 管,这里只是没有画出来而已 通过 A0、A1 的值,会选择 W0--W3 中的一条字线输出,以 W0 字线为例:当 A1A0=00 时, W0 字线为高,其余字线为低 下图中,当W0 字线为 1,其余字线为0 时,可以看出,为0 的 3 个字线,其mos 管都是截 止的; W0 为 1 时,只看图中黑色方框,D0 中的 mos 管导通接地,D0=0;D1 中的 mos 管截止, D1 连接到 Vdd,D1=1.。 。 。 。 。 因此输出 D3D2D1D0=1010 可以看到,是先选择字线然后再输出位线值,一位位线就是一位输出数据 2.2.2.2.PROMPROM(可编程只读存储器)(可编程只读存储器) PROM 是使用熔丝加三极管进行编程, 一般出厂时都会连接所有的熔丝, 里面存入的数据全 为 1, 下面是一个 16x8 的一个 PROM 存储器 4 位地址线选择要存储的字线,8 根输出位线 当字线为高时,三极管导通,此时熔丝连接,位线输出高;当熔丝熔断时,位线连接到地, 此时输出为低 另外还有反熔丝型的 PROM, 其可编程连接元件是一个绝缘连接件 (通常用特殊的绝缘材质) , 未编程似乎所有的连接件均不导通,加电压后,绝缘被永久击穿,导通连接 2.3.2.3.可擦除、可再编程存储器(可擦除、可再编程存储器(EPROMEPROM,,EEROMEEROM,,FlashFlash)) 最开始的可编程 ROM 是用紫外线照射进行擦除的,被称之为EPROM; 后来又出现了电可擦除的,称之为E2PROM; 再后来出现了快速存储器,称之为Flash; 所有的可擦除、可编程的ROM 其连接元件都是基于浮栅mos 管 2.3.1.2.3.1.浮栅浮栅 mosmos 管管 浮栅 mos 管有两个控制栅极,一个为正常的CG 极,一个为特殊的 FG 极 FG 中无电荷时,mos 管正常工作 当 FG 中注入负电荷时, CG 的开启会被提高, 此时会高于 W 中正常的高电平, 相当于将 mos 管截止了 因此上图中,假设源极接Vss,位线 D 接地,FG 中无电荷时,存储为1;有负电荷时,存储 为 0 原理 擦除方式 擦除速度 写入速度 擦除次数 2.3