异步简单双口RAM的实现

本文介绍了RAM的分类,包括单口RAM和双口RAM,并详细阐述了异步简单双口RAM的实现。在简单双口RAM中,只有一个读端口和一个写端口,适用于读写要求不高的场景。通过示例展示了如何建立一个8bit x 8的异步简单双口RAM,并在未完全写入时开始读取,验证了其正确性。
摘要由CSDN通过智能技术生成

RAM的分类

RAM,随机存取存储器,有单口和双口之分,单口RAM只有一个数据线和地址线,不能同时进行读取操作,双口RAM有读和写两个地址线和数据线。因此双口RAM使用要比单口RAM广泛。

双口RAM有真双口和简单双口之分,真双口有两个读端口和两个写端口,简单双口只有一个读端口和一个写端口,一般读写要求不高时,简单双口RAM就能满足我们的需求。另外根据时钟的不同,RAM还有同步异步之分,同步RAM是指读写采用同一个时钟,异步RAM是指读写的时钟不同。

异步简单双口RAM的实现

实现的双口RAM的功能是:建立一个宽度为8bit深度为8的RAM,然后把0-7写入,并在尚未完全写完时就开始读取数据,最终全部读出。程序如下:

module single_dualram(
	input	wire		clk1,//写时钟
	input	wire		clk2,//读时钟
	input	wire		we,//写使能
	input	wire		rd,//读使能
	input	wire [2:0]	we_addr,//写地址
	input 	wire [2:0]  rd_addr,//读地址
	input	wire [7:0]  datain,//写数据
	output  reg  [7:0]  dataout//读数据
	);
reg [7:0]mem[7:0];

always @(posedge clk1) begin
	if (we == 1'b1) begin
		mem[we_addr] <= datain;
	end
end

always @(posedge clk2) begin
	if (rd == 1'b1) begin
		dataout <= mem[rd_addr];
	end
end

endmodule
  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值