Professional Documents
Culture Documents
Code
Code
module main(data_in,data_out,addr,clk,we);
input clk,we;
reg we_reg;
reg[10:0] addr_reg;
begin
we_reg<=we;
data_in_reg<=data_in;
addr_reg<=addr;
end
begin
if(we_reg)
memory[addr_reg]<=data_in_reg;
else
data_out<=memory[addr_reg];
end
endmodule
TB:
module TB();
reg clk,we;
integer i;
main uut(data_in,data_out,addr,clk,we);
initial
begin
clk=0;
forever #5 clk=~clk;
end
initial begin
we=1;
for(i=0;i<2047;i=i+1)
begin
addr=2047-i;
data_in=i; #10;
end
#20470
we=0;
for(i=0;i<2047;i=i+1)
begin
addr=2047-i; #10;
end
$finish;
end
endmodule
Timing Constraint:
Period=2.6ns
Max Frequency=384Mhz
WNS=0.258ns