在之前的工作中,我们对常见存储器件进行了名词扫盲,通过调用IP核实现了简单的单端口同步读写SRAM、对单端口同步读写SRAM进行了Verilog描述、对单端口同步写,异步读SRAM、以及单端口异步读写SRAM进行了设计与分析;并在此基础上利用Verilog描述了双端口同步读写SRAM,这些工作见:
现在在之前工作的基础上,进一步实现双端口异步读写SRAM
一、原理
双端口异步读写SRAM与双端口同步读写SRAM类似,唯一区别就在于写入/读出与时钟clk无关,只在控制信号的作用下(如:片选、使能、地址等)进行实时操作;
输入端口有:(异步没有clk)
reg [3:0]a1;//输入地址(RAM深度为16,对应地址位宽为4)
reg we1;// write enable,写使能时进行RAM写操作
reg oe1;// output enable,输出使能时RAM读取的结果才能输出
reg cs1;// 片选信号,选择读取哪一个RAM
// 第二套
reg [3:0]a2;//输入地址(RAM深度为16,对应地址位宽为4)
reg we2;// write enable,写使能时进行RAM写操作
reg oe2;// output enable,输出使能时RAM读取的结果才能输出
reg cs2;// 片选信号,选择读取哪一个RAM
输入输出端口有:
wire [7:0]d1;//读取RAM时数据输出/写入RAM时数据输入
wire [7:0]d2;//读取RAM时数据输出/写入RAM时数据输入
工作过程:
两组端口分别根据cs/we/oe的值执行不同的操作;
cs有效(为1)、we为1时,写使能,将d输入数据写入a对应地址处;
cs有效(为1)、we为0时,读使能,oe有效(为1)时将a地址处的数据读出到d上&#x