凔海笔记之FPGA(十一):SDRAM
对于SDRAM,就以以下四个方面来写下自己的笔记吧
1、初探存储器
2、对SDRAM的认识
3、Verilog综合的SDRAM单字节读写时序
4、多字节读写和页读写
嗯,就这样
下图这个,学过数电的都知道哦。一个简单的D触发器,可以封装成右图。DI(Data input)数据输入,即写入的高电平,W(Write) 写信号,当为1时允许写入,置零则不可写,DO(Data Output)数据输出。
如果我们把八个D触发器连在一块呢?如下图,写入信号W置一时,这可以对八个触发器同时写入数据,实现了八位二进制数存储。
下面把它封装一下,就是8位锁存器了,可以存储八位二进制数据,再换种画法吧,如左图
上图则可存储一个八位的二进制数,如果我们存储八个二进制数呢?而不是一个八位二进制数,也就是我想读出八个存储器中的任意一个二进制数,怎么办嘞?
加个8-1选择器嘛,下图这货。
通过S0、S1、S2地址编码选择D0~D7当中的某一个输出。如下图连接在一起。
这样我们实现了选择一位输出,那么,我还想选择一位输入,又该当如何?
所谓的地址,就选择对某个触发器进行读写操作,在数据输入控制端置1则是写。这就构建了一个存储器,可以存储八个二进制,通过选择地址实现某位的读出与写入。它也有自己的名字,叫读/写存储器,但通常叫作随机访问存储器或 RAM。RAM可存储8个单独的1位数据,如下图所示:
可是,人是很不满足的,如果我想要存储8x2RAM呢?
这样就好了,哪怕我想要8X8RAM我也不怕,并呗
如我我想要16X1呢?
加俩2-1选择器呗,这样“选择输入”就好比是地址了,也就有4根地址线,实现了16X1RAM。那么,如果我想要1024X8怎么办,全是套路
上面构建的是RAM(Random Access Memory)又称为随机存取存储器,或读写存储器,正常工作时,RAM能读能写,断电以后RAM中存储的数据随之消失,故具有易失性。
RAM又可分为静态RAM(SRAM:Static Random Memroy)和动态RAM(DRAM:Dynamic Random Access Memory)。
SRAM 中的存储单元是一个触发器,有0/1俩个稳态,SRAM速度非常快,是目前读写最快的存储设备了,但它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级冲。
DRAM则是利用电容器存储电荷来保存0或1的,因此需要定时对其存储单元进行刷新。DRAM保留数据的时间很短,需要刷新和回写,故速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
同步动态随机存储器SDRAM(Synchronous Dynamic Random Access Memory)又是DRAM的一种,增加了同步时钟,提高了读写速率。我们接下来要说的就是SDRAM。
最后再插一句吧,与上述均不同的还有ROM(Read-Only Memory),它是另一种半导体存储器,即只读存储器,其数据可以长久保存,其中的数据一般由专用的装置写入。根据是否是否允许用户对ROM写入数据,又可将ROM分为固定ROM(或掩模ROM)和可编程ROM(PROM :Programmable Read-Only Memory)。PROM又可分为一次可编程ROM、光可擦除可编程存储器(EPROM)、电可擦除可编程(E2PROM)和闪存存储器(Flash memory)
山寨源:编码的奥秘
识浅薄出拙文,如察错误望赐教,小弟在此感涕零