题解 | #RAM的简单实现#

RAM的简单实现

http://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_reg    [255:0];

integer    i;

always@(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin 
        for(i=0;i<256;i=i+1)
            ram_reg[i]<= 0;
    end
    else    if(write_en)begin 
        ram_reg[write_addr]<=write_data; 
    end
    else    begin 
        ram_reg[write_addr]<=ram_reg[write_addr]; 
    end
    
end

always@(posedge clk or negedge rst_n)begin 
    if(!rst_n)begin 
       read_data <=0; 
    end
    else    if(read_en)begin 
        read_data <= ram_reg[read_addr];
    end
    else    begin 
        read_data <= read_data; 
    end
end


endmodule
全部评论

相关推荐

熊大不大:哈哈,你就说你是男生,也是受害者
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务