Verilog的4X4RAM

module ram_4x4#(parameter MASK = 3)(            //MASK是数据掩码
    input                    CLK,                            //时钟,在每一个上升沿操作RAM
    input    [3:0]            ADDR,                            //地址输入
    input [3:0]            DATA,                            //数据输入
    input                    EN,WR,                        //EN是操作使能位,WR是读写判断位:1为写入,0为写出
    output reg [3:0]    OUT);                            //输出寄存器
    
    reg [3:0] mem [0:(1<<4)-1];
    
    always @(posedge CLK) begin
        if(EN&&WR)    begin
            mem[ADDR] <= DATA & MASK;
        end
        else if(EN&&!WR) begin
            OUT <= mem[ADDR] & MASK;
        end
    end
endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值