Você está na página 1de 3

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//////////////////////////////////////////////////////////////////////////////////

module Sim_Alto_nivel();

reg clk, reset, a, b;


wire [4:0] Cuenta;

Alto Simulacion(
.clk(clk),
.reset(reset),
.a(a),
.b(b),
.Cuenta(Cuenta)
);

parameter T = 10;

always begin
clk = 1'b0;
#(T/2) clk = 1'b1;
#(T/2);
end

initial
begin

// valores iniciales
a = 1'b0;
b = 1'b0;
reset = 1'b0;

// Reset inicial
reset = 1'b1;
#20;
reset = 1'b0;
#20;

// Peaton entrando
a = 1'b1;
#40;
a = 1'b0;
#40;
b = 1'b1;
#40;
b = 1'b0;

// Peaton saliendo
b = 1'b1;
#40;
b = 1'b0;
#40;
a = 1'b1;
#40;
a = 1'b0;
#100;

// Carro entrando
a = 1'b1;
#40;
b = 1'b1;
#40;
a = 1'b0;
#40;
b = 1'b0;
#100;

// Carro entrando
a = 1'b1;
#20;
b = 1'b1;
#20;
a = 1'b0;
#20;
b = 1'b0;
#100;

// Carro entrando
a = 1'b1;
#20;
b = 1'b1;
#20;
a = 1'b0;
#20;
b = 1'b0;
#100;

// Carro saliendo
b = 1'b1;
#20;
a = 1'b1;
#20;
b = 1'b0;
#20;
a = 1'b0;
#50;

// Carro saliendo
b = 1'b1;
#20;
a = 1'b1;
#20;
b = 1'b0;
#20;
a = 1'b0;
#50;

// Peaton entrando
a = 1'b1;
#40;
a = 1'b0;
#40;
b = 1'b1;
#40;
b = 1'b0;

// Peaton saliendo
b = 1'b1;
#40;
b = 1'b0;
#40;
a = 1'b1;
#40;
a = 1'b0;
#100;
end
endmodule

Você também pode gostar