在之前的工作中,我们对常见存储器件进行了名词扫盲,并通过调用IP核实现了简单的同步读写SRAM;并进一步对同步读写SRAM进行了Verilog描述----实现一个位宽8bit,深度16bit的单端口SRAM;这部分工作见:
现在在之前工作的基础上,进一步实现单端口同步写,异步读SRAM
一、原理
异步SRAM,不是与特定的时钟信号同步运行,而是根据输入信号的状态运行的。因为没有信号表明读取时已确定了有效数据,也没有信号表明写入时已接收到数据,所以,需要获取制造商的数据手册,根据时序图,按“应该已读出有效数据”及“应该能接收数据”这样的条件,进行存储器的设计。(这段话摘自https://www.cnblogs.com/geekite/p/4384322.html)
与单端口同步读写SRAM类似,单端口同步写,异步读SRAM
输入端口有:
reg [3:0]a;//输入地址(RAM深度为16,对应地址位宽为4)
reg clk;//时钟
reg we;// write enable,写使能时进行RAM写操作
reg oe;// output enable,输出使能时RAM读取的结果才能输出
reg cs;// 片选信号,选择读取哪一个RAM
输入输出端口有:
wire [7:0]d;//读取RAM时数据输出/写入RAM时数据输入
工作过程类似:
写同步,故