`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02:55:01 07/11/06
// Design Name:
// Module Name: main
// Project Name:
// Target Device:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////
module main(clk,salida,dctl,sw);
input clk;
input [1:0] sw;
output reg [1:0] salida;
reg [17:0] contador;
reg [9:0] cnt;
reg clk2;
output [3:0] dctl;
//unidad base 10 [ms]
integer reloj = 160;
integer ancho = 15;
assign dctl=4'b1111; //apaga los displays
//modulo genera reloj base clk2 de 5 [ms]
always@(posedge clk)
begin
if(contador==249999) begin clk2=clk2+1;
contador<=0; end
else contador<=contador+1;
if(sw == 3) begin reloj = 160; ancho = 15; end
if(sw == 2) begin reloj = 160;
ancho = 9; end
if(sw == 1) begin reloj = 200;
ancho = 15; end
if(sw == 0) begin reloj = 200; ancho = 9; end
end
always@(posedge clk2)
begin
if(cnt==(reloj-1)) cnt<=0;
else cnt<=cnt+1;
if(cnt>0 && cnt<ancho)
salida[0]<=1;
else
salida[0]<=0;
if(cnt>(reloj/2-1) &&
cnt<(reloj/2+ancho)) salida[1]<=1;
else
salida[1]<=0;
end
endmodule