Lab-05
Design of 1KB x 8 RAM and perform READ/WRITE operation
//RAM design
/code your verilog design here.
//1kb x 8
module ram(data,addr,we,clk,en,dout);
input [7:0] data;
input [9:0] addr;
input we;
input clk,en;
output reg[7:0] dout;
reg [7:0] ram[1023:0];
always @(posedge clk) begin
if(en)
if(we)
ram[addr]=data;
else
dout=ram[addr];
else
dout=8'bz;
end
endmodule
//RAM testbench
//code your test bench here.
//remember to name the dump file as designname.vcd.
module ram_tb;
reg we,clk,en;
reg[7:0] data;
reg[9:0] addr;
wire[7:0] dout;
ram DUT(data,addr,we,clk,en,dout);
initial begin
clk=0;
en=1;
we=1;
#10;
en=1;
data=32;
addr=10;
#10;
data=12;
addr=20;
#10;
we=0;
addr=10;
#10;
addr=20;
#10 en=0;
#20 en=1;
$finish;
end
always #5 clk=~clk;
endmodule