在之前的工作中,我们对常见存储器件进行了名词扫盲,通过调用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上;
双端口RAM同时进行读操作时不会冲突,即可以对同一地址进行读取,

本文介绍了如何使用Verilog实现双端口异步读写SRAM,详细阐述了其原理和代码实现。在原理部分,解释了异步读写与同步读写的区别,并给出了输入输出端口的定义。代码实现部分展示了如何修改双端口同步读写SRAM的Verilog代码以实现时钟无关的操作。通过仿真结果,证实了双端口异步读写SRAM的正确性,强调了其在读操作上可以并行而写操作需避免冲突。
最低0.47元/天 解锁文章
358

被折叠的 条评论
为什么被折叠?



