Verilog实现RAM(6-双端口异步读写SRAM)

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

在之前的工作中,我们对常见存储器件进行了名词扫盲,通过调用IP核实现了简单的单端口同步读写SRAM、对单端口同步读写SRAM进行了Verilog描述、对单端口同步写,异步读SRAM、以及单端口异步读写SRAM进行了设计与分析;并在此基础上利用Verilog描述了双端口同步读写SRAM,这些工作见:

Verilog实现RAM(5-双端口同步读写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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值