题解 | #单端口RAM#

单端口RAM

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

题解主体

单口RAM的实现原理:

建立一个reg的数组,将数据存储进来,进行的是读、写互不干扰的读写机制,即要么读要么写。这个时侯需要设置enb,进行读写的开关控制。需要注意的是,写是对寄存器进行写,因此必须有时序电路构成。


硬件代码如下:

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

    integer i;

    always @(posedge clk or negedge rst) begin

        if(!rst) begin

            for (i=0; i<1023 ; i=i+1) begin

                mem[i] <= 'b0;

            end

        end

        else if (enb) begin

            mem[addr] <= w_data;

        end

    end

      

    assign r_data = (!enb)?mem[addr]:'b0;

参考答案

`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 [6:0]mem[127:0];
    integer i;
    always @(posedge clk or negedge rst) begin
        if(!rst) begin
            for (i=0; i<127 ; i=i+1) begin
                mem[i] <= 'b0;
            end
        end
        else if (enb) begin
            mem[addr] <= w_data;
        end
    end
	
    assign r_data = (!enb)?mem[addr]:'b0;


endmodule


全部评论
第1023和127个位置没有复位
点赞 回复 分享
发布于 2023-09-30 12:19 陕西
enb居然低电平有效
点赞 回复 分享
发布于 2023-08-02 22:35 山东
可以去研究下xilinx 的ip的
点赞 回复 分享
发布于 2022-03-12 08:53

相关推荐

11-25 09:41
已编辑
Java
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
14
2
分享

创作者周榜

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