0% found this document useful (0 votes)
16 views4 pages

Module Utt (

This document describes a module that implements a timer circuit using Verilog. The module uses buttons and LEDs to start, stop and display the time counted. It contains registers and always blocks to increment the time counters and update the LED displays in response to the button presses.

Uploaded by

SANTU
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views4 pages

Module Utt (

This document describes a module that implements a timer circuit using Verilog. The module uses buttons and LEDs to start, stop and display the time counted. It contains registers and always blocks to increment the time counters and update the LED displays in response to the button presses.

Uploaded by

SANTU
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

module utt(

input clk,sw1,sw2,sw3,sw0,N,S,W,E,
output reg led_segundos=0,
output reg led_minuto_1=0,output reg led_minuto_2=0,output reg
led_minuto_3=0,output reg led_minuto_4=0,output reg
led_minuto_5=0,output reg led_minuto_6=0,output reg led_minuto_7=0);
reg[25:0] counter_seg;
reg[25:0] counter_min;
always @(posedge clk)
begin
if (N==1)
begin
led_minuto_7 = 1;led_minuto_6 = 1;led_minuto_5 = 1;led_minuto_4 =
1;led_minuto_3 = 1;led_minuto_2 = 1;led_minuto_1 = 1;led_segundos = 1;

if (S==0 && W==0 && E==0)


begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 = 0;led_minuto_4 =
0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;led_segundos = 0;
counter_seg = 0;
counter_min = 0;
end
end
else if (S==1)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 =0;led_minuto_4 =
1;led_minuto_3 = 1;led_minuto_2 = 1;led_minuto_1 =1 ;led_segundos = 0;
if (N==0&& W==0 && E==0)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 = 0;led_minuto_4 =
0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;led_segundos = 0;
counter_seg = 0;
counter_min = 0;
end
end
else if (W==1)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 = 1;led_minuto_4 =
1;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;led_segundos = 0;
if (N==0 && S==0&& E==0)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 = 0;led_minuto_4 =
0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;led_segundos = 0;
counter_seg = 0;
counter_min = 0;
end
end
else if (E==1)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 = 0;led_minuto_4 =
0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;led_segundos = 0;
if (N==0 && S==0 && W==0)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 = 0;led_minuto_4 =
0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;led_segundos = 0;
counter_seg = 0;
counter_min = 0;
end
end

if(sw3==1)
begin
counter_seg = 0;
counter_min = 0;
led_segundos = 0;led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 =
0;led_minuto_4 = 0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;
end

else if (sw1==1)
begin
counter_seg = counter_seg + 1;
if (counter_seg==50_000_000)
begin
counter_min = counter_min + 1;
led_segundos = ~led_segundos; // Alternar el
estado del LED de los segundos
counter_seg = 0;
end
if (sw0==1&&sw2==1)
begin
end
end
else if (sw2==1)
begin
if (sw1==1&&sw0==1)
begin
end
end
else if (sw0==1)
begin
counter_seg = counter_seg + 1;
if (counter_seg==12_500_000)
begin
counter_min = counter_min + 1;
led_segundos = ~led_segundos; // Alternar el
estado del LED de los segundos
counter_seg = 0;
end
if (sw1==1&&sw2==1)
begin
end
end
else
begin
counter_seg = counter_seg + 1;
if (counter_seg==25000000)
begin
counter_min = counter_min + 1;
led_segundos = ~led_segundos;
counter_seg = 0;
end
end
if (counter_min==120)
begin
led_minuto_1 = 1;
end
if (counter_min==240)
begin
led_minuto_2 = 1;
end
if (counter_min==360)
begin
led_minuto_3 = 1;
end
if (counter_min==480)
begin
led_minuto_4 = 1;
end
if (counter_min==600)
begin
led_minuto_5 = 1;
end
if (counter_min==720)
begin
led_minuto_6 = 1;
end
if (counter_min==840)
begin
led_minuto_7 = 1;
end
if (counter_min==960)
begin
led_minuto_7 = 0;led_minuto_6 = 0;led_minuto_5 =
0;led_minuto_4 = 0;led_minuto_3 = 0;led_minuto_2 = 0;led_minuto_1 = 0;
counter_min=0;
end

end
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
//////////////////////
endmodule

NET "sw0" LOC = "V8" | IOSTANDARD = LVCMOS33 ;


NET "sw1" LOC = "U10"| IOSTANDARD = LVCMOS33 ;
NET "sw2" LOC = "U8" | IOSTANDARD = LVCMOS33 ;
NET "sw3" LOC = "T9" | IOSTANDARD = LVCMOS33 ;

NET "BTN_EAST" LOC = "T16" | IOSTANDARD = LVCMOS33 | PULLDOWN ;


NET "BTN_NORTH" LOC = "T14" | IOSTANDARD = LVCMOS33 | PULLDOWN ;
NET "BTN_SOUTH" LOC = "T15" | IOSTANDARD = LVCMOS33 | PULLDOWN ;
NET "BTN_WEST" LOC = "U15" | IOSTANDARD = LVCMOS33 | PULLDOWN ;

NET "LED<3>" LOC = "U19" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE


= 8 ;
NET "LED<2>" LOC = "U20" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;
NET "LED<1>" LOC = "T19" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;
NET "LED<0>" LOC = "R20" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;
NET "LED<7>" LOC = "W21" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;
NET "LED<6>" LOC = "Y22" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;
NET "LED<5>" LOC = "V20" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;
NET "LED<4>" LOC = "V19" | IOSTANDARD = LVCMOS33 | SLEW = SLOW | DRIVE
= 8 ;

NET "CLK_50MHZ" LOC = "E12"| IOSTANDARD = LVCMOS33 ;

You might also like