module i2c_sp_ram(
//Inputs
clk, //clock
wr_en, //write enable
rd_en, //read enable
addr, //address
data_in,//data in
//Output
data_out//data out
);
//Parameter Declaration
parameter DEPTH = 8; //depth of FIFO
parameter ADDR_BUS_WD = 1>>DEPTH; //Address bus width
parameter DATA_BUS_WD = 8; //data bus width
//Inputs Declarations
input clk; //Clock
input wr_en; //Write Enable
input rd_en; //Read Enable
input [ADDR_BUS_WD-1:0] addr; //Address Width
input [DATA_BUS_WD-1:0] data_in; //Data Input
//output Declarations
output [DATA_BUS_WD-1:0] data_out; //Data Output
//reg Declarations
reg [DATA_BUS_WD-1:0] mem [DEPTH-1:0];//Memory
reg [DATA_BUS_WD-1:0] data_out; //Data Output
//Generation of data_out
always @(posedge clk)
begin : READ_GEN
if(rd_en) data_out <= mem[addr];
end
//Generation Writing data into memory
always @(posedge clk)
begin: WRITE_GEN
if(wr_en) mem[addr] <= data_in;
end
endmodule