Guest User

Untitled

a guest
Dec 9th, 2019
119
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module project (clk, rst, hex3, hex2, hex1, hex0, keys,sw, ledg, ledr);
  2.  
  3. input clk, rst;
  4. input [9:0] sw;
  5. input [4:0] keys;
  6. output [9:0] ledr;
  7. output [7:0] ledg;
  8. output [6:0] hex3, hex2, hex1, hex0;
  9. reg [9:0] stater;
  10. reg [7:0] stateg;
  11. reg [6:0] state3, state2, state1, state0, kat, val, gee, ralph, atemp, s1, s2,s3,s4, m1, m2,m3,m4, h1, h2;
  12. reg [27:0] tempt, tempp, tempy, tempm, tempz, tempa, temps, tempc,tempw, temp, counter; // for initialization and display
  13. reg tempc2, tempw2, tempst;
  14. reg sw_not3, trig3, sw_not2, trig2, sw_not1, trig1, sw_not0, trig0;
  15. reg temp7, military;
  16.  
  17. //default for each initialization
  18. initial stater = 0;
  19. initial stateg = 0;
  20. initial tempt = 0;
  21. initial tempp = 268435339;
  22. initial tempy = 0;
  23. initial tempm = 0;
  24. initial tempz = 0;
  25. initial tempa = 99;
  26. initial temps = 9999;
  27. initial h1 = 2;
  28. initial h2 = 1;
  29.  
  30. //assignment
  31. assign hex3 = state3;
  32. assign hex2 = state2;
  33. assign hex1 = state1;
  34. assign hex0 = state0;
  35. assign ledr = stater;
  36. assign ledg = stateg;
  37.  
  38. //for 1 second
  39. parameter hs = 25_000_000;
  40. parameter s = 50_000_000;
  41. parameter m = 3_000_000_000;
  42. parameter h = 180_000_000_000;
  43.  
  44. always @ (posedge clk)
  45. begin
  46. sw_not3 <= ~keys[3]; trig3 <= sw_not3 & keys[3];
  47. sw_not2 <= ~keys[2]; trig2 <= sw_not2 & keys[2];
  48. sw_not1 <= ~keys[1]; trig1 <= sw_not1 & keys[1];
  49. sw_not0 <= ~keys[0]; trig0 <= sw_not0 & keys[0];
  50. end
  51.  
  52. always @(posedge clk)
  53. begin
  54.     if (sw[9] == 1)
  55.         counter <= 0;
  56.     else if (counter >= hs && sw[9] == 0)
  57.         counter <= 0;
  58.     else if (counter == s && sw[9] == 0)
  59.         counter <= 0;
  60.     else
  61.         counter <= counter + 1;        
  62. end
  63.  
  64. always @(posedge clk)
  65. begin
  66. if (sw == 10'b1000000000)
  67.     begin
  68.         kat <= 127; val <= 127; gee <= 127; ralph <= 127;
  69.         stateg <= 0; stater <= 0;
  70.         tempt <= 0; tempp <= 268435339; tempy <= 0;
  71.         tempm <= 0; tempz <= 0; tempa <= 99; temps <= 9999;
  72.         h1 <= 2; h2 <= 1;
  73.     end
  74. //777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
  75. else if (sw == 10'b0111000000) //for initial time
  76.     begin
  77.     kat <= tempt[27:21]; val <= tempt[20:14]; gee <= tempt[13:7]; ralph <= tempt[6:0];
  78.     h2 <= temp[27:21]; h1 <= temp[20:14]; m2 <= tempt[13:7]; m1 <= tempt[6:0];
  79.         if (tempt == 0)
  80.         begin
  81.             tempt[27:21] <= 1;
  82.             tempt[20:14] <= 2;
  83.             tempt[13:7] <= 0;
  84.             tempt[6:0] <= 0;
  85.             kat <= tempt[27:21]; val <= tempt[20:14]; gee <= tempt[13:7]; ralph <= tempt[6:0];
  86.         end
  87.         else if(trig2) //for hour 1-12
  88.         begin
  89.             tempt[20:14] <= tempt[20:14]+1;
  90.             if(tempt[20:14] == 2 && tempt[27:21] == 1) //parang kat == 1 and val == 2 so bale 12
  91.             begin
  92.                 tempt[27:21] <= 0;
  93.                 tempt[20:14] <= 1;
  94.             end
  95.            
  96.             else if (tempt[20:14] == 9) //pag nakarating na si val ng 9, dapat mag add kay kat para maging tens ganun
  97.                 begin
  98.                 tempt[27:21] <= tempt[27:21]+1;
  99.                 tempt[20:14] <= 0;
  100.                 end
  101.         end
  102.            
  103.             else if (tempp[6:0] == 10 && (tempt[27:21] != 1 && tempt[27:21] != 2)) //kapag PM plus 12
  104.                 begin
  105.                     temp[27:21] <= tempt[27:21] + 1;
  106.                     temp[20:14] <= tempt[27:21] + 2;
  107.                 end
  108.                
  109.             else if (trig1) // up minutes
  110.             begin
  111.                 tempt[6:0] <= tempt[6:0]+1;
  112.                
  113.                 if(tempt[13:7] == 5 && tempt[6:0] == 9) //gee == 5 and ralph == 9
  114.                 begin
  115.                     tempt[6:0] <= 0;
  116.                     tempt[13:7] <= 0;
  117.                 end
  118.                
  119.                 else if(tempt[13:7] < 5 && tempt[6:0] == 9) // add lang kay gee pag di pa nakakaabot ng 59
  120.                 begin
  121.                     tempt[6:0] <= 0;
  122.                     tempt[13:7] <= tempt[13:7] + 1;
  123.                 end
  124.             end
  125.             else if (trig0 ) // down minutes
  126.                 begin
  127.                 tempt[6:0] <= tempt[6:0]-1;
  128.  
  129.                     if(tempt[13:7] == 0 && tempt[6:0] == 0)
  130.                     begin
  131.                         tempt[6:0] <= 9;
  132.                         tempt[13:7] <= 5;
  133.                     end
  134.                
  135.                     else if(tempt[13:7] > 0 && tempt[6:0] == 0)
  136.                     begin
  137.                         tempt[6:0] <= 9;
  138.                         tempt[13:7] <= tempt[13:7] - 1;
  139.                     end
  140.                 end
  141.     end
  142. //6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
  143. else if (sw == 10'b0110000000) //set time period
  144.     begin
  145.         kat <= tempp[27:21]; val <= tempp[20:14]; gee <= tempp[13:7]; ralph <= tempp[6:0];
  146.             if(trig3)
  147.             begin
  148.             if(tempp[6:0] == 10) //P to A
  149.                 begin
  150.                     tempp[6:0] <= 11;
  151.                     stater[9] <= 0;
  152.                        
  153.                 end
  154.             else if (tempp[6:0] == 11) //A to P
  155.                 begin
  156.                     tempp[6:0] <= 10;
  157.                     stater[9] <= 1;
  158.                 end
  159.             end
  160.            
  161.             else if (tempp == 268435339)
  162.             begin
  163.                 tempp[27:21] <= 127;
  164.                 tempp[20:14] <= 127;
  165.                 tempp[13:7] <= 127;
  166.                 tempp[6:0] <= 11;
  167.                 kat <= tempp[27:21]; val <= tempp[20:14]; gee <= tempp[13:7]; ralph <= tempp[6:0];
  168.             end
  169.     end
  170. //5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  171. else if (sw == 10'b0101000000) //set year
  172.     begin
  173.         kat <= tempy[27:21]; val <= tempy[20:14]; gee <= tempy[13:7]; ralph <= tempy[6:0];
  174.        
  175.             if (tempy == 0)
  176.             begin
  177.                 tempy[27:21] <= 2;
  178.                 tempy[20:14] <= 0;
  179.                 tempy[13:7] <= 0;
  180.                 tempy[6:0] <= 0;
  181.                 kat <= tempy[27:21]; val <= tempy[20:14]; gee <= tempy[13:7]; ralph <= tempy[6:0];
  182.             end
  183.            
  184.             else if(trig2)
  185.             begin
  186.                 tempy[20:14] <= tempy[20:14] + 1;
  187.                 if (tempy[20:14] == 9)
  188.                     tempy[20:14] <= 0;
  189.             end
  190.  
  191.             else if(trig1)
  192.             begin
  193.                 tempy[13:7] <= tempy[13:7] + 1;
  194.                 if (tempy[13:7] == 9)
  195.                     tempy[13:7] <= 0;
  196.             end
  197.            
  198.             else if (trig0)
  199.             begin
  200.                 tempy[6:0] <= tempy[6:0] + 1;
  201.                 if (tempy[6:0] == 9)
  202.                     tempy[6:0] <= 0;
  203.             end
  204.     end
  205. //4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
  206. else if (sw == 10'b0100000000) //set month and day
  207.     begin
  208.         kat <= tempm[27:21]; val <= tempm[20:14]; gee <= tempm[13:7]; ralph <= tempm[6:0];
  209.             if (tempm == 0)
  210.             begin
  211.                 tempm[27:21] <= 0;
  212.                 tempm[20:14] <= 1;
  213.                 tempm[13:7] <= 0;
  214.                 tempm[6:0] <= 1;
  215.                 kat <= tempm[27:21]; val <= tempm[20:14]; gee <= tempm[13:7]; ralph <= tempm[6:0];
  216.             end
  217.            
  218.             else if(trig3) //up button for month
  219.             begin
  220.                 tempm[20:14] <= tempm[20:14] + 1;
  221.                 if (tempm[20:14] == 9)
  222.                     begin
  223.                         tempm[27:21] <= 1;
  224.                         tempm[20:14] <= 0;
  225.                     end
  226.                 else if (tempm[20:14] == 2 && tempm[27:21] == 1)
  227.                     begin
  228.                         tempm[27:21] <= 0;
  229.                         tempm[20:14] <= 1;
  230.                     end
  231.             end
  232.  
  233.             else if(trig2) //down button for month
  234.             begin
  235.                 tempm[20:14] <= tempm[20:14] - 1;
  236.                 if (tempm[20:14] == 0 && tempm[27:21] > 0)
  237.                     begin
  238.                         tempm[20:14] <= 9;
  239.                         tempm[27:21] <= 0;
  240.                     end
  241.                 else if(tempm[20:14] == 1 && tempm[27:21] == 0)
  242.                     begin
  243.                         tempm[20:14] <= 2;
  244.                         tempm[27:21] <= 1;
  245.                     end
  246.             end
  247.  
  248.         else if(trig1) //up day
  249.             begin
  250.                 tempm[6:0] <= tempm[6:0] + 1;
  251.                 if (tempm[27:21] == 0 && tempm[20:14] == 2) //for february
  252.                     begin
  253.                         if(tempm[13:7] == 2 && tempm[6:0] == 9)
  254.                             begin
  255.                                 tempm[13:7] <= 0;
  256.                                 tempm[6:0] <= 1;       
  257.                             end
  258.  
  259.                         else if (tempm[6:0] == 9)
  260.                             begin
  261.                                 tempm[13:7] <= tempm[13:7] + 1;
  262.                                 tempm[6:0] <= 0;
  263.                             end
  264.                     end
  265.                 else if (tempm[13:7] == 3 && tempm[6:0] == 1) //for any month
  266.                     begin
  267.                         tempm[13:7] <= 0;
  268.                         tempm[6:0] <= 1;
  269.                     end
  270.                 else if (tempm[6:0] == 9)
  271.                     begin
  272.                         tempm[13:7] <= tempm[13:7] + 1;
  273.                         tempm[6:0] <= 0;
  274.                     end
  275.             end
  276.         else if (trig0) //down day
  277.            
  278.             begin
  279.                 tempm[6:0] <= tempm[6:0] - 1;
  280.                 if (tempm[27:21] == 0 && tempm[20:14] == 2) //for february
  281.                     begin
  282.                         if(tempm[13:7] == 0 && tempm[6:0] == 1)
  283.                             begin
  284.                                 tempm[13:7] <= 2;
  285.                                 tempm[6:0] <= 9;       
  286.                             end
  287.  
  288.                         else if (tempm[6:0] == 0 && tempm[13:7] > 0)
  289.                             begin
  290.                                 tempm[13:7] <= tempm[13:7] - 1;
  291.                                 tempm[6:0] <= 9;
  292.                             end
  293.                     end
  294.                 else if (tempm[13:7] == 0 && tempm[6:0] == 1) //for any month
  295.                     begin
  296.                         tempm[13:7] <= 3;
  297.                         tempm[6:0] <= 1;
  298.                     end
  299.                 else if (tempm[6:0] == 0 && tempm[13:7] > 0)
  300.                     begin
  301.                         tempm[13:7] <= tempm[13:7] - 1;
  302.                         tempm[6:0] <= 9;
  303.                     end
  304.             end
  305.     end
  306. //3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
  307. else if (sw == 10'b0011000000) //set time zone
  308.     begin
  309.         kat <= tempz[27:21]; val <= tempz[20:14]; gee <= tempz[13:7]; ralph <= tempz[6:0]; 
  310.             if (tempz == 0)
  311.             begin
  312.                 tempz[27:21] <= 127;
  313.                 tempz[20:14] <= 12;
  314.                 tempz[13:7] <= 12;
  315.                 tempz[6:0] <= 14;
  316.                 kat <= tempz[27:21]; val <= tempz[20:14]; gee <= tempz[13:7]; ralph <= tempz[6:0];
  317.             end
  318.            
  319.             else if (trig3)
  320.             begin
  321.                 tempz[20:14] <= tempz[20:14] +1;
  322.                 tempz[13:7] <= tempz[13:7] +1;
  323.                 tempz[6:0] <= tempz[6:0] +1;
  324.                     if (tempz[20:14] == 14 && tempz[13:7] == 14 && tempz[6:0] == 16 )
  325.                     begin
  326.                         tempz[20:14] <= 10;
  327.                         tempz[13:7] <= 10;
  328.                         tempz[6:0] <= 12;
  329.                     end
  330.             end
  331.     end
  332. //22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
  333. else if (sw == 10'b0010000000) //set alarm time
  334.     begin
  335.         kat <= tempa[27:21]; val <= tempa[20:14]; gee <= tempa[13:7]; ralph <= tempa[6:0];
  336.            
  337.             if (tempa == 99)
  338.             begin
  339.                 tempa[27:21] <= 0;
  340.                 tempa[20:14] <= 0;
  341.                 tempa[13:7] <= 0;
  342.                 tempa[6:0] <= 0;
  343.                 kat <= tempa[27:21]; val <= tempa[20:14]; gee <= tempa[13:7]; ralph <= tempa[6:0];
  344.             end
  345.            
  346.             else if (trig2) //for hour 00 to 23. So dapat may conversion pa ng 12hr to military time para gumana yung alarm
  347.             begin
  348.                 tempa[20:14] <= tempa[20:14]+1;
  349.                 if(tempa[20:14] == 3 && tempa[27:21] == 2) //parang kat == 2 and val == 3 so bale 23
  350.                 begin
  351.                     tempa[27:21] <= 0;
  352.                     tempa[20:14] <= 0;
  353.                 end
  354.                 else if (tempa[20:14] == 9) //pag nakarating na si val ng 9, dapat mag add kay kat para maging tens ganun
  355.                 begin
  356.                     tempa[27:21] <= tempa[27:21]+1;
  357.                     tempa[20:14] <= 0;
  358.                 end
  359.             end
  360.        
  361.             else if (trig1) // up minutes
  362.             begin
  363.                 tempa[6:0] <= tempa[6:0]+1;
  364.                 if(tempa[13:7] == 5 && tempa[6:0] == 9) //gee == 5 and ralph == 9
  365.                 begin
  366.                     tempa[6:0] <= 0;
  367.                     tempa[13:7] <= 0;
  368.                 end
  369.                 else if(tempa[13:7] < 5 && tempa[6:0] == 9) // add lang kay gee pag di pa nakakaabot ng 59
  370.                 begin
  371.                     tempa[6:0] <= 0;
  372.                     tempa[13:7] <= tempa[13:7] + 1;
  373.                 end    
  374.             end
  375.            
  376.             else if (trig0) // down minutes
  377.             begin
  378.                 tempa[6:0] <= tempa[6:0]-1;
  379.                 if(tempa[13:7] == 0 && tempa[6:0] == 0)
  380.                 begin
  381.                     tempa[6:0] <= 9;
  382.                     tempa[13:7] <= 5;
  383.                 end
  384.                 else if(tempa[13:7] > 0 && tempa[6:0] == 0)
  385.                 begin
  386.                     tempa[6:0] <= 9;
  387.                     tempa[13:7] <= tempa[13:7]-1;
  388.                 end
  389.             end
  390.     end
  391. //11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  392. else if (sw == ) //set snooze time
  393.     begin
  394.         kat <= temps[27:21]; val <= temps[20:14]; gee <= temps[13:7]; ralph <= temps[6:0];
  395.         s3 <= temps[6:0]; s4 <= temps[13:7]; m3 <= temps[20:14]; m4 <= temps[27:21];
  396.             if (temps == 9999)
  397.                 begin
  398.                     temps[27:21] <= 0;
  399.                     temps[20:14] <= 5;
  400.                     temps[13:7] <= 0;
  401.                     temps[6:0] <= 0;
  402.                     kat <= temps[27:21]; val <= temps[20:14]; gee <= temps[13:7]; ralph <= temps[6:0];
  403.                 end
  404.            
  405.             else if (trig3) //up button for minute
  406.                 begin
  407.                     temps[20:14] <= temps[20:14]+1;
  408.                     if (temps[20:14] == 9 && temps[27:21] == 9)
  409.                     begin
  410.                         temps[27:21] <= 0;
  411.                         temps[20:14] <= 0;
  412.                     end
  413.                     else if (temps[20:14] == 9 && temps[27:21] < 9)
  414.                     begin
  415.                         temps[27:21] <= temps[27:21] + 1;
  416.                         temps[20:14] <= 0;
  417.                     end
  418.                 end
  419.  
  420.             else if (trig2) //down button for minute
  421.                 begin
  422.                     temps[20:14] <= temps[20:14]-1;
  423.  
  424.                     if(temps[27:21] == 0 && temps[20:14] == 0)
  425.                     begin
  426.                         temps[20:14] <= 9;
  427.                         temps[27:21] <= 9;
  428.                     end
  429.            
  430.                     else if(temps[27:21] > 0 && temps[20:14] == 0)
  431.                     begin
  432.                         temps[20:14] <= 9;
  433.                         temps[27:21] <= temps[27:21] - 1;
  434.                     end
  435.                 end
  436.  
  437.             else if (trig1) //up seconds
  438.                 begin
  439.                     temps[6:0] <= temps[6:0] + 1;
  440.                     if (temps[13:7] == 5 && temps[6:0] == 9)
  441.                     begin
  442.                         temps[13:7] <= 0;
  443.                         temps[6:0] <= 0;
  444.                     end
  445.                     else if (temps[6:0] == 9 && temps[13:7] < 5)
  446.                     begin
  447.                         temps[13:7] <= temps[13:7] + 1;
  448.                         temps[6:0] <= 0;
  449.                     end
  450.                 end
  451.            
  452.             else if (trig0) //down seconds
  453.                 begin
  454.                     temps[6:0] <= temps[6:0]-1;
  455.  
  456.                     if(temps[13:7] == 0 && temps[6:0] == 0)
  457.                     begin
  458.                         temps[6:0] <= 9;
  459.                         temps[13:7] <= 5;
  460.                     end
  461.            
  462.                     else if(temps[13:7] > 0 && temps[6:0] == 0)
  463.                     begin
  464.                         temps[6:0] <= 9;
  465.                         temps[13:7] <= temps[13:7] - 1;
  466.                     end
  467.                 end
  468.     end
  469. //ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
  470.     else if (sw == 0 && counter == s) //display
  471.     begin
  472. //00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  473.      //time display
  474.      case()
  475.             begin
  476.                 kat <= h2;
  477.                 val <= h1;
  478.                 gee <= m2;
  479.                 ralph <= m1;
  480.                 if (!keys[3])
  481.                 begin
  482.                     if (tempp == 10 && (h2 != 1 && h1 != 2)) //PM tapos >12
  483.                         begin
  484.                         val <= h1 - 2;
  485.                         kat <= h2 - 1;
  486.                         end
  487.                     else if (tempp == 11 && (h2 == 0 && h1 == 0)) //AM tapos 00 sa military time
  488.                         begin
  489.                         kat <= 1;
  490.                         val <= 2;
  491.                         end
  492.                     else
  493.                         begin
  494.                         kat <= h2;
  495.                         val <= h1;
  496.                         end
  497.                 gee <= m2;
  498.                 ralph <= m1;
  499.                 end
  500.                                
  501.                 else if (!keys[2])
  502.                     begin
  503.                     kat <= m2;
  504.                     val <= m1;
  505.                     gee <= s2;
  506.                     ralph <= s1;
  507.                     end
  508.                            
  509.                 else if (!keys[1])
  510.                     begin
  511.                     kat <= tempp[27:21];
  512.                     val <= tempp[20:14];
  513.                     gee <= tempp[13:7];
  514.                     ralph <= tempp[6:0];
  515.                     end
  516.             end
  517.     end
  518. //(sw 1 and 0) are 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  519.     else if (sw[1:0] == 1 && sw[9:2] == 0) // date display
  520.         begin
  521.             if (s1 < 9  && counter == s)
  522.                 s1 <= s1 + 1;
  523.             else if (s1 == 9 && s2 < 5  && counter == s )
  524.                 begin
  525.                 s1 <= 0;
  526.                 s2 <= s2 + 1;
  527.                 end
  528.             else if (s1 == 9 && s2 == 5 && m1 < 9  && counter == s)
  529.                 begin
  530.                 s1 <= 0;
  531.                 s2 <= 0;
  532.                 m1 <= m1 + 1;
  533.                 end
  534.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 < 5  && counter == s)
  535.                 begin
  536.                 s1 <= 0;
  537.                 s2 <= 0;
  538.                 m1 <= 0;
  539.                 m2 <= m2 + 1;
  540.                 end
  541.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h1 == 9 && h2 < 2  && counter == s)
  542.                 begin
  543.                 s1 <= 0;
  544.                 s2 <= 0;
  545.                 m1 <= 0;
  546.                 m2 <= 0;
  547.                 h1 <= 0;
  548.                 h2 <= h2 + 1;
  549.                     if(tempp[6:0] == 11 && h1 == 2 && h2 == 1  && counter == s) //A to P
  550.                         begin
  551.                         tempp[6:0] <= 10;
  552.                         stater[9] <= 1;
  553.                         end
  554.                 end
  555.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h2 == 2 && h1 < 3  && counter == s)
  556.                 begin
  557.                 s1 <= 0;
  558.                 s2 <= 0;
  559.                 m1 <= 0;
  560.                 m2 <= 0;
  561.                 h1 <= h1 + 1;
  562.                 h2 <= 2;
  563.                 end
  564.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h2 == 2 && h1 == 3  && counter == s)
  565.                 begin
  566.                 s1 <= 0;
  567.                 s2 <= 0;
  568.                 m1 <= 0;
  569.                 m2 <= 0;
  570.                 h1 <= 0;
  571.                 h2 <= 0;
  572.                     if(tempp[6:0] == 10) //P to A
  573.                         begin
  574.                         tempp[6:0] <= 11;
  575.                         stater[9] <= 0;
  576.                         end
  577.                 end
  578.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h1 < 9  && counter == s)
  579.                 begin
  580.                 s1 <= 0;
  581.                 s2 <= 0;
  582.                 m1 <= 0;
  583.                 m2 <= 0;
  584.                 h1 <= h1 + 1;
  585.                 end
  586.             begin
  587.                 kat <= tempm[27:21];
  588.                 val <= tempm[20:14];
  589.                 gee <= tempm[13:7];
  590.                 ralph <= tempm[13:7];
  591.  
  592.                 if (trig3)
  593.                     begin
  594.                         kat <= tempy[27:21];
  595.                         val <= tempy[20:14];
  596.                         gee <= tempy[13:7];
  597.                         ralph <= tempy[6:0];
  598.                     end
  599.             end    
  600.         end
  601. //(sw 1 and 0) are 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222  
  602.     else if (sw[1:0] == 2 && sw[9:2] == 0) //world time display
  603.         begin
  604.        
  605.         if (s1 < 9  && counter == s)
  606.                 s1 <= s1 + 1;
  607.             else if (s1 == 9 && s2 < 5  && counter == s )
  608.                 begin
  609.                 s1 <= 0;
  610.                 s2 <= s2 + 1;
  611.                 end
  612.             else if (s1 == 9 && s2 == 5 && m1 < 9  && counter == s)
  613.                 begin
  614.                 s1 <= 0;
  615.                 s2 <= 0;
  616.                 m1 <= m1 + 1;
  617.                 end
  618.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 < 5  && counter == s)
  619.                 begin
  620.                 s1 <= 0;
  621.                 s2 <= 0;
  622.                 m1 <= 0;
  623.                 m2 <= m2 + 1;
  624.                 end
  625.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h1 == 9 && h2 < 2  && counter == s)
  626.                 begin
  627.                 s1 <= 0;
  628.                 s2 <= 0;
  629.                 m1 <= 0;
  630.                 m2 <= 0;
  631.                 h1 <= 0;
  632.                 h2 <= h2 + 1;
  633.                     if(tempp[6:0] == 11 && h1 == 2 && h2 == 1  && counter == s) //A to P
  634.                         begin
  635.                         tempp[6:0] <= 10;
  636.                         stater[9] <= 1;
  637.                         end
  638.                 end
  639.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h2 == 2 && h1 < 3  && counter == s)
  640.                 begin
  641.                 s1 <= 0;
  642.                 s2 <= 0;
  643.                 m1 <= 0;
  644.                 m2 <= 0;
  645.                 h1 <= h1 + 1;
  646.                 h2 <= 2;
  647.                 end
  648.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h2 == 2 && h1 == 3  && counter == s)
  649.                 begin
  650.                 s1 <= 0;
  651.                 s2 <= 0;
  652.                 m1 <= 0;
  653.                 m2 <= 0;
  654.                 h1 <= 0;
  655.                 h2 <= 0;
  656.                     if(tempp[6:0] == 10) //P to A
  657.                         begin
  658.                         tempp[6:0] <= 11;
  659.                         stater[9] <= 0;
  660.                         end
  661.                 end
  662.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h1 < 9  && counter == s)
  663.                 begin
  664.                 s1 <= 0;
  665.                 s2 <= 0;
  666.                 m1 <= 0;
  667.                 m2 <= 0;
  668.                 h1 <= h1 + 1;
  669.                 end
  670.                 gee <= m2; ralph <= m1; //for display
  671.        
  672.         begin
  673.         if (tempz[20:14] == 10 && tempz[13:7] == 10 && tempz[6:0] == 12 ) //timezone nyc
  674.                 begin
  675.                     if ((h1+5) > 9)
  676.                         begin
  677.                             temp[20:14] <= (h1+5) % 10;
  678.                             temp[27:21] <= h2 + 1;
  679.                         end
  680.                     else if (((h1+5)%10) == 4 && (h2+1) == 2)
  681.                         begin
  682.                             temp[27:21] <= 0;
  683.                             temp[20:14] <= 0;
  684.                         end
  685.                     else if (h2 == 2 && h1 < 4)
  686.                         begin
  687.                             temp[27:21] <= 0;
  688.                             temp[20:14] <= h1+1;
  689.                         end
  690.                     else
  691.                         begin
  692.                             temp[20:14] <= h1 + 5;
  693.                             temp[27:21] <= h2;
  694.                         end
  695.                 end
  696.             else if (tempz[20:14] == 11 && tempz[13:7] == 11 && tempz[6:0] == 13 ) //timezone rio
  697.                 begin
  698.                     if ((h1+3) > 9)
  699.                         begin
  700.                             temp[20:14] <= (h1+3) % 10;
  701.                             temp[27:21] <= h2 + 1;
  702.                         end
  703.                     else if (((h1+3)%10) == 4 && (h2+1) == 2)
  704.                         begin
  705.                             temp[27:21] <= 0;
  706.                             temp[20:14] <= 0;
  707.                         end
  708.                     else if (h2 == 2 && h1 < 4)
  709.                         begin
  710.                             temp[27:21] <= 0;
  711.                             temp[20:14] <= h1+1;
  712.                         end
  713.                     else
  714.                         begin
  715.                             temp[20:14] <= h1 + 3;
  716.                             temp[27:21] <= h2;
  717.                         end
  718.                 end
  719.             else if (tempz[20:14] == 12 && tempz[13:7] == 12 && tempz[6:0] == 13 ) //timezone lisbon
  720.                 begin
  721.                     temp[20:14] <= h1;
  722.                     temp[27:21] <= h2;
  723.                 end
  724.             else if (tempz[20:14] == 14 && tempz[13:7] == 14 && tempz[6:0] == 15 ) //timezone sydney
  725.                 begin
  726.                     if (h2 != 0)
  727.                         begin
  728.                             temp[20:14] <= h1;
  729.                             temp[27:21] <= h2 - 1;
  730.                         end
  731.                     else if (h2 == 0 && (h1+3) > 9)
  732.                         begin
  733.                             temp[20:14] <= (h1 + 3)%10;
  734.                             temp[27:21] <= h2;
  735.                         end
  736.                     else if (h2 == 0 && (h1+3) < 9)
  737.                         begin
  738.                             temp[20:14] <= h1 +3;
  739.                             temp[27:21] <= h2;
  740.                         end
  741.                 end
  742.             else if (tempz[20:14] == 13 && tempz[13:7] == 13 && tempz[6:0] == 15 ) //PH
  743.                 begin  
  744.                     kat <= h2;
  745.                     val <= h1;
  746.                 end
  747.             else if (trig3) //ny time
  748.                 begin
  749.                     if (temp[20:14] >= 5)
  750.                     begin
  751.                         if (temp[20:14] == 9 && temp[27:21] == 1)
  752.                         begin
  753.                             kat <= 0; val <= 0;
  754.                         end
  755.                         else
  756.                         begin
  757.                             kat <= temp[27:21]; val <= temp[20:14] -5;
  758.                         end
  759.                     end
  760.                     else if (temp[20:14] < 5)
  761.                     begin
  762.                         if (temp[20:14] != 0 && temp[27:21] == 0 )
  763.                         begin
  764.                             kat <= 2;
  765.                             val <= temp[20:14] - 1;
  766.                         end
  767.                         else
  768.                         begin
  769.                             kat <= temp[27:21] - 1;
  770.                             val <= temp[20:14] + 5;
  771.                         end
  772.                     end
  773.                 end
  774.             else if (trig2) // rio
  775.                 begin
  776.                     if (temp[20:14] >= 3)
  777.                     begin
  778.                         kat <= temp[27:21];
  779.                         val <= temp[20:14]-3;
  780.                     end
  781.                     else if (temp[20:14] < 3 && temp[27:21] != 0)
  782.                     begin  
  783.                         kat <= temp[27:21] - 1;
  784.                         val <= (temp[20:14]+3)%10;
  785.                     end
  786.                     else if (temp[20:14] < 3 && temp[27:21] == 0)
  787.                     begin
  788.                         kat <= temp[27:21] - 1;
  789.                         val <= 2;
  790.                     end
  791.                 end
  792.             else if (trig1) //lisbo
  793.                 begin
  794.                     kat <= temp[27:21];
  795.                     val <= temp[20:14];
  796.                 end
  797.             else if (trig0) // sydney
  798.                 begin
  799.                     if (temp[27:21] == 1 && temp[20:14] >3)
  800.                     begin
  801.                         kat <= 0;
  802.                         val <= temp[20:14] -4;
  803.                     end
  804.                     else if (temp[27:21] == 2 && temp [20:13] <= 3)
  805.                     begin
  806.                         kat <= 0;
  807.                         val <= temp[20:14] + 6;
  808.                     end
  809.                     else
  810.                     begin
  811.                         kat <= temp[27:21] + 1;
  812.                         val <= temp[20:14];
  813.                     end
  814.                 end
  815.             else if (!trig3 && !trig2 && !trig1 && !trig0)
  816.                 begin
  817.                     if (temp[20:14] > 1)
  818.                     begin
  819.                         if (temp[20:14] > 5 && temp[27:21] == 1)
  820.                         begin
  821.                             kat <= 0;
  822.                             val <= temp[20:14] -6;
  823.                         end
  824.                         else
  825.                         begin
  826.                             kat <= temp[27:21] +1;
  827.                             val <= (temp[20:14] + 8)%10;
  828.                         end
  829.                     end
  830.                     else if (temp[20:14] <= 1 && temp[27:21] != 2)
  831.                     begin
  832.                         kat <= temp[27:21];
  833.                         val <= temp[20:14]+8;
  834.                     end
  835.                     else if (temp[27:21] == 2)
  836.                     begin
  837.                         kat <= 0;
  838.                         val <= temp[20:14]+4;
  839.                     end
  840.                 end
  841.             end
  842.         end
  843. //(sw 3 and 2) are 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111      
  844.     else if (sw[3:2] == 1 && sw[1:0] >= 0 && sw[9:4] == 0) //alarm
  845.         begin
  846.             if (s1 < 9  && counter == s)
  847.                 s1 <= s1 + 1;
  848.             else if (s1 == 9 && s2 < 5  && counter == s )
  849.                 begin
  850.                 s1 <= 0;
  851.                 s2 <= s2 + 1;
  852.                 end
  853.             else if (s1 == 9 && s2 == 5 && m1 < 9  && counter == s)
  854.                 begin
  855.                 s1 <= 0;
  856.                 s2 <= 0;
  857.                 m1 <= m1 + 1;
  858.                 end
  859.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 < 5  && counter == s)
  860.                 begin
  861.                 s1 <= 0;
  862.                 s2 <= 0;
  863.                 m1 <= 0;
  864.                 m2 <= m2 + 1;
  865.                 end
  866.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h1 == 9 && h2 < 2  && counter == s)
  867.                 begin
  868.                 s1 <= 0;
  869.                 s2 <= 0;
  870.                 m1 <= 0;
  871.                 m2 <= 0;
  872.                 h1 <= 0;
  873.                 h2 <= h2 + 1;
  874.                     if(tempp[6:0] == 11 && h1 == 2 && h2 == 1  && counter == s) //A to P
  875.                         begin
  876.                         tempp[6:0] <= 10;
  877.                         stater[9] <= 1;
  878.                         end
  879.                 end
  880.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h2 == 2 && h1 < 3  && counter == s)
  881.                 begin
  882.                 s1 <= 0;
  883.                 s2 <= 0;
  884.                 m1 <= 0;
  885.                 m2 <= 0;
  886.                 h1 <= h1 + 1;
  887.                 h2 <= 2;
  888.                 end
  889.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h2 == 2 && h1 == 3  && counter == s)
  890.                 begin
  891.                 s1 <= 0;
  892.                 s2 <= 0;
  893.                 m1 <= 0;
  894.                 m2 <= 0;
  895.                 h1 <= 0;
  896.                 h2 <= 0;
  897.                     if(tempp[6:0] == 10) //P to A
  898.                         begin
  899.                         tempp[6:0] <= 11;
  900.                         stater[9] <= 0;
  901.                         end
  902.                 end
  903.             else if (s1 == 9 && s2 == 5 && m1 == 9 && m2 == 5 && h1 < 9  && counter == s)
  904.                 begin
  905.                 s1 <= 0;
  906.                 s2 <= 0;
  907.                 m1 <= 0;
  908.                 m2 <= 0;
  909.                 h1 <= h1 + 1;
  910.                 end
  911.            
  912.             if(h2 == tempa[27:21] && h1 == tempa[20:14] && m2 == tempa[13:7] && m1 == tempa[6:0]) // alarm
  913.                 if (counter >= hs)
  914.                     stateg <= ~stateg;
  915.             else if (trig2) // stop alarm
  916.                 stateg <= 0;
  917.             else if (trig1) //snooze time
  918.                 begin
  919.                 tempst <= 1;
  920.                 s3 <= temps[6:0]; s4 <= temps[13:7]; m3 <= temps[20:14]; m4 <= temps[27:21];
  921.                 end
  922.             else if (tempst == 1)
  923.             begin
  924.                     if (s3 > 0  && counter == s)
  925.                         s3 <= s3 - 1;
  926.                     else if (s3 == 0 && s4 > 0  && counter == s)
  927.                         begin
  928.                         s3 <= 0;
  929.                         s4 <= s4 - 1;
  930.                         end
  931.                     else if (s3 == 0 && s4 == 0 && m3 > 0  && counter == s)
  932.                         begin
  933.                         s3 <= 0;
  934.                         s4 <= 0;
  935.                         m3 <= m3 - 1;
  936.                         end
  937.                     else if (s3 == 0 && s4 == 0 && m3 == 0 && m4 > 0  && counter == s)
  938.                         begin
  939.                         s3 <= 0;
  940.                         s4 <= 0;
  941.                         m3 <= 0;
  942.                         m4 <= m4 - 1;
  943.                         end
  944.                     else if (s3 == 0 && s4 == 0 && m3 == 0 && m4 == 0  && counter == s)
  945.                         begin
  946.                         stateg <= ~stateg;
  947.                         end
  948.                     else
  949.                         stateg <= 0;
  950.                
  951.             end
  952.            
  953.            
  954.         end
  955. //sw[1:0] == 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
  956.         else if (sw[3:2] == 2 && sw[1:0] == 2 && sw[9:6] == 0) //countdown
  957.             begin
  958.                 if (sw[4] == 1 && sw[5] == 0)
  959.                 begin
  960.                     kat <= tempc[27:21]; val <= tempc[20:14]; gee <= tempc[13:7]; ralph <= tempc[6:0];
  961.                         if(trig3) //up minute
  962.                         begin
  963.                             tempc[20:14] <= tempc[20:14]+1;
  964.                        
  965.                             if(tempc[20:14] == 9 && tempc[27:21] == 9)
  966.                             begin
  967.                                 tempc[20:14] <= 0;
  968.                                 tempc[27:21] <= 0;
  969.                             end
  970.                        
  971.                             else if(tempc[27:21] < 9 && tempc[20:14] == 9)
  972.                             begin
  973.                                 tempc[20:14] <= 0;
  974.                                 tempc[27:21] <= tempc[27:21] + 1;
  975.                             end
  976.                         end
  977.  
  978.                         else if(trig2) //down minute
  979.                         begin
  980.                             tempc[20:14] <= tempc[20:14]-1;
  981.  
  982.                             if(tempc[20:14] == 0 && tempc[27:21] == 0)
  983.                             begin
  984.                                 tempc[20:14] <= 9;
  985.                                 tempc[27:21] <= 9;
  986.                             end
  987.                        
  988.                             else if(tempc[27:21] > 0 && tempc[20:14] == 0)
  989.                             begin
  990.                                 tempc[20:14] <= 9;
  991.                                 tempc[27:21] <= gee - 1;
  992.                             end
  993.                         end
  994.                
  995.                         else if (trig1) // up seconds
  996.                         begin
  997.                             tempc[6:0] <= tempc[6:0]+1;
  998.                        
  999.                             if(tempc[6:0] == 9 && tempc[13:7] == 5)
  1000.                             begin
  1001.                                 tempc[6:0] <= 0;
  1002.                                 tempc[13:7] <= 0;
  1003.                             end
  1004.                        
  1005.                             else if(tempc[13:7] < 5 && tempc[6:0] == 9)
  1006.                             begin
  1007.                                 tempc[6:0] <= 0;
  1008.                                 tempc[13:7] <= tempc[13:7] + 1;
  1009.                             end
  1010.  
  1011.                         end
  1012.                         else if (trig0) // down seconds
  1013.                         begin
  1014.                             tempc[6:0] <= tempc[6:0]-1;
  1015.  
  1016.                             if(tempc[13:7] == 0 && tempc[6:0] == 0)
  1017.                             begin
  1018.                                 tempc[6:0] <= 9;
  1019.                                 tempc[13:7] <= 5;
  1020.                             end
  1021.                        
  1022.                             else if(tempc[13:7] > 0 && tempc[6:0] == 0)
  1023.                             begin
  1024.                                 tempc[6:0] <= 9;
  1025.                                 tempc[13:7] <= tempc[13:7] - 1;
  1026.                             end
  1027.                         end
  1028.                 end
  1029.                
  1030.                 else if (sw[4] == 0 && sw[5] == 1)
  1031.                 begin
  1032.                     if (tempc2 == 0 )
  1033.                     begin
  1034.                         if (ralph > 0 && counter == s)
  1035.                             ralph <= ralph - 1;
  1036.                         else if (ralph == 0 && gee > 0 && counter == s)
  1037.                             begin
  1038.                             ralph <= 9;
  1039.                             gee <= gee - 1;
  1040.                             end
  1041.                         else if (ralph == 0 && gee == 0 && val > 0 && counter == s)
  1042.                             begin
  1043.                             ralph <= 9;
  1044.                             gee <= 5;
  1045.                             val <= val - 1;
  1046.                             end
  1047.                         else if (ralph == 0 && gee == 0 && val == 0 && kat > 0 && counter == s)
  1048.                             begin
  1049.                             ralph <= 0;
  1050.                             gee <= 0;
  1051.                             val <= 0;
  1052.                             kat <= kat - 1;
  1053.                             end
  1054.                         else if (ralph == 0 && gee == 0 && val == 0 && kat == 0 && counter == s)
  1055.                             begin
  1056.                             ralph <= 0;
  1057.                             gee <= 0;
  1058.                             val <= 0;
  1059.                             kat <= 0;
  1060.                             end
  1061.                     end
  1062.                     else if (trig3 && tempc2 == 0)
  1063.                         tempc2 <= 1;
  1064.                     else if (trig3 && tempc2 == 1)
  1065.                         tempc2 <= 0;
  1066.                     else if (trig0)
  1067.                         begin
  1068.                             ralph <= tempc[6:0];
  1069.                             gee <= tempc[13:7];
  1070.                             val <= tempc[20:14];
  1071.                             kat <= tempc[27:21];
  1072.                         end
  1073.                     else if (tempc2 == 1)
  1074.                         begin
  1075.                             ralph <= ralph;
  1076.                             gee <= gee;
  1077.                             val <= val;
  1078.                             kat <= kat;
  1079.                         end
  1080.                        
  1081.                 end
  1082.             end
  1083. //sw[3:2] - 33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
  1084.         else if (sw[3:2] == 3 && sw[1:0] == 2 && sw[9:6] == 0 && sw[4] == 0) //stopwatch
  1085.             begin
  1086.                 if (sw[5] == 0)
  1087.                 begin
  1088.                     kat <= 0; val <= 0; gee <= 0; ralph <= 0;
  1089.                 end
  1090.                 if (sw[5] == 1)
  1091.                 begin
  1092.                     if (tempw == 0)
  1093.                     begin
  1094.                         if (ralph < 9 && counter == s)
  1095.                             ralph <= ralph + 1;
  1096.                         else if (ralph == 9 && gee < 5 && counter == s)
  1097.                             begin
  1098.                             ralph <= 0;
  1099.                             gee <= gee + 1;
  1100.                             end
  1101.                         else if (ralph == 9 && gee == 5 && val < 9 && counter == s)
  1102.                             begin
  1103.                             ralph <= 0;
  1104.                             gee <= 0;
  1105.                             val <= val + 1;
  1106.                             end
  1107.                         else if (ralph == 9 && gee == 5 && val == 9 && kat < 9 && counter == s)
  1108.                             begin
  1109.                             ralph <= 0;
  1110.                             gee <= 0;
  1111.                             val <= 0;
  1112.                             kat <= kat + 1;
  1113.                             end
  1114.                         else if (ralph == 9 && gee == 5 && val == 9 && kat == 9 && counter == s)
  1115.                             begin
  1116.                             ralph <= 9;
  1117.                             gee <= 5;
  1118.                             val <= 9;
  1119.                             kat <= 9;
  1120.                             end
  1121.                     end
  1122.                     else if (trig3 && tempw == 0)
  1123.                         tempw <= 1;
  1124.                     else if (trig3 && tempw == 1)
  1125.                         tempw <= 0;
  1126.                     else if (trig0)
  1127.                         begin
  1128.                             ralph <= 0;
  1129.                             gee <= 0;
  1130.                             val <= 0;
  1131.                             kat <= 0;
  1132.                         end
  1133.                     else if (tempw == 1)
  1134.                         begin
  1135.                             ralph <= ralph;
  1136.                             gee <= gee;
  1137.                             val <= val;
  1138.                             kat <= kat;
  1139.                         end
  1140.                    
  1141.                 end
  1142.             end
  1143.    
  1144. case (kat)
  1145. 0:state3 <= 1;
  1146. 1:state3 <= 79;
  1147. 2:state3 <= 18;
  1148. 3:state3 <= 6;
  1149. 4:state3 <= 76;
  1150. 5:state3 <= 36;
  1151. 6:state3 <= 32;
  1152. 7:state3 <= 13;
  1153. 8:state3 <= 0;
  1154. 9:state3 <= 4;
  1155. 127:state3 <= 127;
  1156. endcase
  1157. case (val)
  1158. 0:state2 <= 1;
  1159. 1:state2 <= 79;
  1160. 2:state2 <= 18;
  1161. 3:state2 <= 6;
  1162. 4:state2 <= 76;
  1163. 5:state2 <= 36;
  1164. 6:state2 <= 32;
  1165. 7:state2 <= 13;
  1166. 8:state2 <= 0;
  1167. 9:state2 <= 4;
  1168. 10:state2 <= 7'b0001001; //n
  1169. 11:state2 <= 7'b0111001; //r
  1170. 12:state2 <= 7'b1110001; //L
  1171. 13:state2 <= 7'b0011000; //P
  1172. 14:state2 <= 7'b0100100; //S
  1173. 127:state2 <= 127;
  1174. endcase
  1175. case (gee)
  1176. 0:state1 <= 1;
  1177. 1:state1 <= 79;
  1178. 2:state1 <= 18;
  1179. 3:state1 <= 6;
  1180. 4:state1 <= 76;
  1181. 5:state1 <= 36;
  1182. 6:state1 <= 32;
  1183. 7:state1 <= 13;
  1184. 8:state1 <= 0;
  1185. 9:state1 <= 4;
  1186. 10:state1 <= 7'b1000100; //Y
  1187. 11:state1 <= 79; //I
  1188. 12:state1 <= 79; //I
  1189. 13:state1 <= 7'b1001000; //H
  1190. 14:state1 <= 7'b1000100; //Y
  1191. 127:state1 <= 127;
  1192. endcase
  1193. case (ralph)
  1194. 0:state0 <= 1;
  1195. 1:state0 <= 79;
  1196. 2:state0 <= 18;
  1197. 3:state0 <= 6;
  1198. 4:state0 <= 76;
  1199. 5:state0 <= 36;
  1200. 6:state0 <= 32;
  1201. 7:state0 <= 13;
  1202. 8:state0 <= 0;
  1203. 9:state0 <= 4;
  1204. 10:state0 <= 7'b0011000; //P
  1205. 11:state0 <= 7'b0001000; //A
  1206. 12:state0 <= 7'b0110001; //C
  1207. 13:state0 <= 1; //O
  1208. 14:state0 <= 7'b0100100; //S
  1209. 15:state0 <= 7'b1110001; //L
  1210. 16:state0 <= 7'b1000010; //d
  1211. 127:state0 <= 127;
  1212. endcase
  1213.     end
  1214. end
  1215.  
  1216. always @(posedge clk)
  1217. begin
  1218.     if (sw[9] == 1)
  1219.         counter <= 0;
  1220.     else if (counter >= hs && sw[9] == 0)
  1221.         counter <= 0;
  1222.     else if (counter == s && sw[9] == 0)
  1223.         counter <= 0;
  1224.     else
  1225.         counter <= counter + 1;        
  1226. end
  1227.  
  1228. endmodule
RAW Paste Data