题解 | #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 北京

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务