简单双端口RAM设计(带下载链接)

1,设计需求

设计一个双端口的RAM,具有独立的读写时钟,独立读写地址和数据端口,具有复位功能,并具有读和写的使能信号。

2,端口设计

写通道(write)

Wrclk  

输入端口  

写通道的时钟信号

Aclear

 输入端口

 RAM复位信号

Wren   

输入端口 

RAM写使能信号

Wraddr[…]

输入端口

 RAM写数据的地址端口

Wdata[…]

输入端口 

 RAM的写数据端口

读通道(read)

Rdclk

输入端口

 读通道的时钟信号

Rden  

输入端口 

读通道的使能信号

Raddr[…]

 输入端口 

 要读出的数据的地址信息

Rdata[…]

输出端口  

读出的数据

3,设计框图

 

 

 

4,代码设计

(1)参数定义 

数据宽度和地址宽度  

(2)输入输出端口 

各个信号的含义如第二小节所示。 

(3)双端口RAM定义

定义了一个位宽为 data_width,深度为 2^addr_width 的ram存储器。

 

4)在写时钟的驱动下,双端口RAM写数据以及复位功能设计

在本写时钟下给出写地址和写数据,在下一个写时钟周期,数据被写入到RAM中。 

(5)再读时钟的驱动下,双端口RAM读数据的功能设计

本读时钟给出读地址信息,在下一个读时钟信号,输出对应地址的数据。  

 

5,功能仿真(仿真代码

(1)信号初始化,并复位  

(2)进行写数据仿真

模拟产生写地址信息以及写数据,并使写使能信号有效。

写地址和写数据在本时钟上升沿产生,并在下一个时钟的上升沿写入RAM中。

 

(3)进行读数据仿真

模拟产生读地址信号,并使读使能信号有效。

读地址在本时钟上升沿产生,数据在下一个时钟的上升沿从RAM中读出。

 

 

6,仿真波形

(1)写数据过程的仿真波形

可以看出,写地址和写数据在本时钟上升沿产生,并在下一个时钟的上升沿写入RAM中。 

(2)读数据过程的仿真波形

可以看出,读地址在本时钟上升沿产生,数据在下一个时钟的上升沿从RAM中读出。 

 

 

 7,源代码下载

在公众号对话框内回复

双端口RAM

即可得到工程文件下载链接。

本工程基于 Quartus 18.2 ,联合 Modelsim 进行功能仿真。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值