题解 | #RAM的简单实现#

RAM的简单实现

https://www.nowcoder.com/practice/2c17c36120d0425289cfac0855c28796

`timescale 1ns/1ns
module ram_mod(
	input clk,
	input rst_n,
	
	input write_en,
	input [7:0]write_addr,
	input [3:0]write_data,
	
	input read_en,
	input [7:0]read_addr,
	output reg [3:0]read_data
);
reg		[3:0] RAM [0:7] ;
integer i;
	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			for(i=0;i<8;i=i+1) begin
				RAM[i] <= 4'b0;
			end
		end
		else if(write_en) begin
			RAM[write_addr] <= write_data ;
		end
	end
	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			read_data<= 4'b0 ;
		end
		else if(read_en) begin
			read_data <= RAM[read_addr] ;
		end
	end
endmodule

全部评论
用两个always的话,如果某一时刻读取的地址和写入的地址一样,那么写入的数据是立即赋值给读取,还是写入数据的上一个数据给读取。
点赞 回复 分享
发布于 2023-09-21 11:59 北京

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务