具有一个地址的简单单端口 RAM,用于读/写操作。
module ram_single #( parameter DATA_WIDTH=8, //数据总线宽度 parameter ADDR_WIDTH=8 //地址总线的宽度 )( input [(DATA_WIDTH-1):0] data, //要写入的数据 input [(ADDR_WIDTH-1):0] addr, //写/读操作地址 input we, //写使能信号 input clk, //时钟信号 output [(DATA_WIDTH-1):0] q //读取数据 ); reg [DATA_WIDTH-1:0] ram [2**ADDR_WIDTH-1:0]; reg [ADDR_WIDTH-1:0] addr_r; always @(posedge clk) begin //WRITE if (we) begin ram[addr] <= data; end addr_r <= addr; end assign q = ram[addr_r]; //READ endmodule