这一篇首要讲讲ROM\RAM\Flash的一些琐细知识点,网上也能找到许多材料。
1 ROM
1.1概述
只读存储器(Read-only memory, ROM),当然从广义上来讲,也有一些器材,例如Flash,EPROM等等,经过某种手法能够编程的,也归于ROM的领域的。ROM一般用在一些程序的存储和数据的存储,这儿程序多半是比较固定的程序(Firmware,固件,一种跟硬件强相关的程序,例如驱动等等),这儿的数据多半是固化的表项,查找表等等不会怎样改动的表项。
1.2根本原理
HDL规划中,关于小ROM,深度和位宽都不大,一般运用组合逻辑就能够做一个ROM。假如数据比较大,比方1K*4B这种,就换一种ROM,运用标准单元Mask ROM,来做存储,如下图所示。百度百科对MASK ROM的界说,是制造商为了要大量生产,事前制造一颗有原始数据的ROM或EPROM当作样本,然后再大量生产与样本相同的 ROM,这一种做为大量生产的ROM样本便是MASK ROM,而烧录在MASK ROM中的材料永久无法做修正。
1.3分类
一种是真的写了就无法改的ROM;一种是能够写一次的ROM(one-TIme Programmable read-only memory),运用的高压反熔丝技能;一种是可擦出的能、能写屡次的ROM(Erasable programmable read only memory),运用紫外线擦除;一种是电擦除的EEPROM(Electrically Erasable programmable read only memory,EEPROM),再到后来东芝搞的Flash。工业界第一种ROM和最终一种的Flash用的比较多。
2 Flash
1.1原理
非丢失性的存储,是在ROM的基础上演进出来的。现在干流是NAND和NOR。模仿的团队来做flash。能够恣意地址拜访。关于接连地址读拜访,NAND和NOR的带宽距离不大。NAND是存储块拜访,NOR能够Byte拜访。总的来说,NOR特色便是比较细的拜访,根本发动程序放NOR中,稳定性和可靠性也略微高一些;NAND拜访数据块比较好,一般数据放NAND中,并且本钱也较低。
图: NOR Flash的时序
ale: address lock enable;一般Flash不会直接集成到芯片中,假如集成在芯片外面,IO数量添加,NOR解决办法便是数据和地址复用,当ale为高的时分,addr上走的是地址,当ale为低且csn为低的时分,addr上走的是数据。
wen:write enable;用于指示读仍是写。
rdy:关于芯片和FLash别离,由于是异步接口,所以运用rdy信号用来握手。关于MCU来讲,假如把小的NOR flash集成到芯片内部,就能够直接运用同步接口,也便是SRAM的接口。
图:NAND Flash时序
CLE:Chip Lock Enable;
能够看到NAND也是数据和地址线复用的。NAND能够大块的数据读写,多了些Command。NAND Flash在MCU中的比较少。Flash跟ROM和RAM不同,不想数字的能够直接用东西生成,这个需求模仿团队自己做。
3 RAM
1.1根本概念
StaTIc Random Access Memory,静态的,随机的拜访。静态的,不必改写,不像DRAM需求随时改写,可是SRAM没有DRAM的集成度高,面积比较大。别的,速度和功耗比DRAM好一些。
图:存储一个bit的SRAM的结构
6个CMOS管子组成一个SRAM单元,Q1和Q3组成反相器,Q2和Q4组成反相器,两个反相器组成一个环路,这样,只需不掉电,这个逻辑环就不会变,跟触发器原理有点相似。Q5用于操控输入,Q6用于操控输出,两个管子相当于输入和输出的开关。
1.2 分类
single port SRAM:不会产生读写抵触,由于之后一个端口,要么读,要么写;尽量做到先写后读,或许初始化再度,不然读出来的数据有或许不对(原因是SRAM的软失效)。关于软失效,能够加一个ECC校验,例如寸10bir,其间2bit是校验位。
Two port SRAM:FOGA的读写抵触答应,可是ASIC不能够,在同一个时间,读地址和写地址不要相同。FIFO一般是TP SRAM。
Dual port SRAM:也是两个端口A、B,能够A读B写,也能够A写B读,不在局限于只能谁读谁写。可靠性,面积和率都不是很好。
工程上,运用两个SRAM,做乒乓操作,完结TP SRAM的功用,一个读的时分,别的一个写。两个SRAM加起来面积或许比TP SRAM小一些。关于几百几K的bit位,直接用D触发器来存储比较好。
1.3 接口
SRAM有一个需求注意下,便是Redundancy接口,用于扩展SRAM的,在比较的大的memory中会用,例如cache,这个接口可选的。用法的话,举个比如这个便是说,当SRAM中有一块坏掉了,这个时分就在尾部在接一块SRAM存储,就把坏块的地址映射到新加的存储块中,这个时分就要用的Redundancy了。
1.4 时序
关于Single port SDRAM的时序,如下图:
读是在一个时钟周期完结,假如是接连写,红点处,write enable是能够一直拉低的;读的话,是要在下一个时间才干采到数据,注意下。