题解 | #单端口RAM#

单端口RAM

https://www.nowcoder.com/practice/a1b0c13edba14a2984e7369d232d9793

`timescale 1ns/1ns

module RAM_1port(
    input                   clk,
    input                   rst,
    input                   enb,
    input       [6:0]       addr,
    input       [3:0]       w_data,
    output wire [3:0]       r_data
);

reg [3:0] mem [127:0];

//单端口RAM的读写使能enb-------enb=1时,对寄存器进行写操作;enb=0时,对寄存器进行读操作;
// 数据量太多,考虑使用generate... for...语句

// 写入RAM
genvar i;
generate for(i=0;i<128;i=i+1)
    begin : ram_w
        always@(posedge clk or negedge rst) begin
            if(!rst)
                mem[i] <= 0;
            else if(enb)
                mem[addr] <= w_data ;
            else
                mem[addr] <=mem[addr];
            end
    end                  
endgenerate


//读RAM

assign r_data = (~enb)? mem[addr]:4'd0;

endmodule

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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