题解 | #单端口RAM#

单端口RAM

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

  1. testbench在当前周期检测读数据输出,因此要采用电平触发或者连续赋值语句;
  2. 使用可综合变量integer和可综合循环for完成深度128ram的初始化;

完整代码

`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
);
//*************code***********//
    reg[3:0] ram [127:0];

    integer i;
    always@(posedge clk or negedge rst)begin
        if(~rst)
            for(i=0;i<128;i=i+1)
                ram[i] <= 0;
        else
            ram[addr] <= enb? w_data: ram[addr];
    end
    
    assign r_data=enb? 4'd0: ram[addr];

//*************code***********//
endmodule
全部评论

相关推荐

10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务