Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module project(mrst,sw,key,clk,hex3,hex2,hex1,hex0,led);
  2.  
  3. input [8:0] sw;
  4. input [3:0] key;
  5. input mrst,clk;
  6.  
  7. reg [199:0] ctr;
  8.  
  9. //hex display
  10. output [6:0] hex3, hex2, hex1, hex0;
  11. reg [6:0] hex3, hex2, hex1, hex0;
  12.  
  13. //red and green led
  14. output [17:0] led;
  15. reg [17:0] led;
  16.  
  17. //this is for switch deboun ce
  18. reg p_not1, p_not2, p_not0, p_not3;
  19. reg [3:0] trig;
  20.  
  21. //temp reg for seconds and minutes, hours. 6 bits because 60 decimal kasya sa 6 bits
  22. reg [3:0] tr_ss_ones, tr_mm_ones, tr_hr_ones, tr_hr_tens;
  23. reg [2:0] tr_ss_tens, tr_mm_tens;
  24.  
  25. //set scoreboard
  26. reg [2:0] set1_p1, set1_p2; //set1
  27. reg [2:0] set2_p1, set2_p2; //set2
  28. reg [2:0] set3_p1, set3_p2; //set3
  29. reg [2:0] set4_p1, set4_p2; //set4
  30. reg [2:0] set;
  31.  
  32. //game scoreboard
  33. reg [5:0] gm_p1, gm_p2;
  34.  
  35. //tiebreaker scoreboard
  36. reg [5:0] gm_p1_tb, gm_p2_tb;
  37. reg [3:0] tbones_p1, tbtens_p1, tbones_p2, tbtens_p2;
  38. reg [3:0] tbones_s1_p1, tbtens_s1_p1, tbones_s1_p2, tbtens_s1_p2; // for 1st set
  39. reg [3:0] tbones_s2_p1, tbtens_s2_p1, tbones_s2_p2, tbtens_s2_p2; // for 2nd set
  40. reg [3:0] tbones_s3_p1, tbtens_s3_p1, tbones_s3_p2, tbtens_s3_p2; // for 3rd set
  41. reg [3:0] tbones_s4_p1, tbtens_s4_p1, tbones_s4_p2, tbtens_s4_p2; // for 4th set
  42.  
  43. parameter n0 = 1;
  44. parameter n1 = 79;
  45. parameter n2 = 18;
  46. parameter n3 = 6;
  47. parameter n4 = 76;
  48. parameter n5 = 36;
  49. parameter n6 = 32;
  50. parameter n7 = 15;
  51. parameter n8 = 0;
  52. parameter n9 = 4;
  53.  
  54. parameter sA = 8; //letter A
  55. parameter sd = 66; //letter d
  56. parameter dash = 126; // - dash
  57. parameter S = 36;
  58. parameter E = 48;
  59. parameter t = 112;
  60. parameter I = 121;
  61.        
  62.        
  63. initial hex0 = n0;
  64. initial hex1 = n0;
  65. initial hex2 = n0;
  66. initial hex3 = n0;
  67.  
  68. initial set1_p1 <=0;
  69. initial set2_p1 <=0;
  70. initial set3_p1 <= 0;
  71. initial set4_p1 <= 0;
  72.  
  73. initial set1_p2 <=0;
  74. initial set2_p2 <=0;
  75. initial set3_p2 <= 0;
  76. initial set4_p2 <= 0;
  77.  
  78.  
  79. //key debounce method
  80. always @ (posedge clk)
  81.     begin
  82.         p_not0 <= ~key[0];
  83.         trig[0] <= key[0] & p_not0;
  84.        
  85.         p_not1 <= ~key[1];
  86.         trig[1] <= key[1] & p_not1;
  87.        
  88.         p_not2 <= ~key[2];
  89.         trig[2] <= key[2] & p_not2;
  90.        
  91.         p_not3 <= ~key[3];
  92.         trig[3] <= key[3] & p_not3;  
  93.     end
  94.    
  95. // ctr for ss
  96. always @ (posedge clk)
  97.     if (mrst == 1)
  98.         ctr <= 0;
  99.     else if (ctr == 500000)
  100.         ctr <= 0;
  101.     else if (trig[1] == 1)
  102.         ctr <= ctr;
  103.     else
  104.         ctr <= ctr + 1;
  105. //tennis match clock
  106. always @ (posedge clk)
  107. begin
  108.     if (mrst == 1 || (trig[0] == 1 && sw[8] == 1) )
  109.     begin
  110.         tr_ss_ones <= 0;
  111.         tr_ss_tens <= 0;
  112.         tr_mm_ones <= 0;
  113.         tr_mm_tens <= 0;
  114.         tr_hr_ones <= 0;
  115.         tr_hr_tens <= 0;
  116.     end
  117.     //seconds  
  118.     else if (ctr == 500000)
  119.     begin
  120.         tr_ss_ones <= tr_ss_ones + 1;
  121.         if (tr_ss_ones == 9)
  122.             begin
  123.                 tr_ss_ones <=0;
  124.                 tr_ss_tens <= tr_ss_tens + 1;
  125.                 //if within if kasi satisfy niya muna then go
  126.                 if (tr_ss_tens == 5)
  127.                     begin
  128.                         tr_ss_tens <= 0;
  129.                         tr_mm_ones <= tr_mm_ones + 1;
  130.                         //
  131.                         if (tr_mm_ones == 9)
  132.                             begin
  133.                                 tr_mm_ones <= 0;
  134.                                 tr_mm_tens <= tr_mm_tens + 1;
  135.                                     //
  136.                                     if (tr_mm_tens == 5)
  137.                                         begin
  138.                                             tr_mm_tens <= 0;
  139.                                             tr_hr_ones <= tr_hr_ones + 1;
  140.                                             //
  141.                                             if (tr_hr_ones == 9)
  142.                                                 begin
  143.                                                     tr_hr_ones <= 0;
  144.                                                     tr_hr_tens <= tr_hr_tens + 1;
  145.                                                     //
  146.                                                     if(tr_hr_tens == 9)
  147.                                                         begin
  148.                                                             tr_hr_tens <= 0;
  149.                                                         end
  150.                                                 end
  151.                                         end
  152.                             end
  153.                     end
  154.             end
  155.     end                                                                                                            
  156. end
  157.        
  158. // case for different displays
  159. always @ (posedge clk)
  160. begin
  161.     case (sw)
  162.     9'b100000000:
  163.     //display for tennis match clock
  164.     begin
  165.         if (key[3] == 0)
  166.             begin
  167.             // this is for ones place in seconds
  168.             case (tr_ss_ones)
  169.                 0: hex0 <= n0;
  170.                 1: hex0 <= n1;
  171.                 2: hex0 <= n2;
  172.                 3: hex0 <= n3;
  173.                 4: hex0 <= n4;
  174.                 5: hex0 <= n5;
  175.                 6: hex0 <= n6;
  176.                 7: hex0 <= n7;
  177.                 8: hex0 <= n8;
  178.                 9: hex0 <= n9;
  179.                 default: hex0 <= n0;
  180.             endcase
  181.    
  182.             // tenths place ng seconds pwede yata mag case dito?
  183.             if (tr_ss_tens < 1)
  184.                 hex1 <= n0;
  185.             else if (tr_ss_tens >= 1 && tr_ss_tens < 2)
  186.                 hex1 <= n1;
  187.             else if (tr_ss_tens >= 2 && tr_ss_tens < 3)
  188.                 hex1 <= n2;
  189.             else if (tr_ss_tens >= 3 && tr_ss_tens < 4)
  190.                 hex1 <= n3;
  191.             else if (tr_ss_tens >= 4 && tr_ss_tens < 5)
  192.                 hex1 <= n4;
  193.             else if (tr_ss_tens >= 5 && tr_ss_tens < 6)
  194.                 hex1 <= n5;
  195.                
  196.             case (tr_mm_ones)
  197.                 0: hex2 <= n0;
  198.                 1: hex2 <= n1;
  199.                 2: hex2 <= n2;
  200.                 3: hex2 <= n3;
  201.                 4: hex2 <= n4;
  202.                 5: hex2 <= n5;
  203.                 6: hex2 <= n6;
  204.                 7: hex2 <= n7;
  205.                 8: hex2 <= n8;
  206.                 9: hex2 <= n9;
  207.                 default: hex2 <= n0;
  208.             endcase
  209.    
  210.             if (tr_mm_tens < 1)
  211.                 hex3 <= n0;
  212.             else if (tr_mm_tens >= 1 && tr_mm_tens < 2)
  213.                 hex3 <= n1;
  214.             else if (tr_mm_tens >= 2 && tr_mm_tens < 3)
  215.                 hex3 <= n2;
  216.             else if (tr_mm_tens >= 3 && tr_mm_tens < 4)
  217.                 hex3 <= n3;
  218.             else if (tr_mm_tens >= 4 && tr_mm_tens < 5)
  219.                 hex3 <= n4;
  220.             else if (tr_mm_tens >= 5 && tr_mm_tens < 6)
  221.                 hex3 <= n5;
  222.        
  223.     end
  224.     //
  225.     //
  226.     else  //hh:mm
  227.         begin
  228.             // this is for ones place in mm
  229.             case (tr_mm_ones)
  230.                 0: hex0 <= n0;
  231.                 1: hex0 <= n1;
  232.                 2: hex0 <= n2;
  233.                 3: hex0 <= n3;
  234.                 4: hex0 <= n4;
  235.                 5: hex0 <= n5;
  236.                 6: hex0 <= n6;
  237.                 7: hex0 <= n7;
  238.                 8: hex0 <= n8;
  239.                 9: hex0 <= n9;
  240.                 default: hex0 <= n0;
  241.             endcase
  242.    
  243.     // tenths place ng minutes pwede yata mag case dito?
  244.             if (tr_mm_tens < 1)
  245.                 hex1 <= n0;
  246.             else if (tr_mm_tens >= 1 && tr_mm_tens < 2)
  247.                 hex1 <= n1;
  248.             else if (tr_mm_tens >= 2 && tr_mm_tens < 3)
  249.                 hex1 <= n2;
  250.             else if (tr_mm_tens >= 3 && tr_mm_tens < 4)
  251.                 hex1 <= n3;
  252.             else if (tr_mm_tens >= 4 && tr_mm_tens < 5)
  253.                 hex1 <= n4;
  254.             else if (tr_mm_tens >= 5 && tr_mm_tens < 6)
  255.                 hex1 <= n5;
  256.        
  257.                 //hours ones
  258.                 case (tr_hr_ones)
  259.                     0: hex2 <= n0;
  260.                     1: hex2 <= n1;
  261.                     2: hex2 <= n2;
  262.                     3: hex2 <= n3;
  263.                     4: hex2 <= n4;
  264.                     5: hex2 <= n5;
  265.                     6: hex2 <= n6;
  266.                     7: hex2 <= n7;
  267.                     8: hex2 <= n8;
  268.                     9: hex2 <= n9;
  269.                     default: hex2 <= n0;
  270.                 endcase
  271.                     //hours tenths
  272.                 if (tr_hr_tens < 1)
  273.                     hex3 <= n0;
  274.                 else if (tr_hr_tens >= 1 && tr_hr_tens < 2)
  275.                     hex3 <= n1;
  276.                 else if (tr_hr_tens >= 2 && tr_hr_tens < 3)
  277.                     hex3 <= n2;
  278.                 else if (tr_hr_tens >= 3 && tr_hr_tens < 4)
  279.                     hex3 <= n3;
  280.                 else if (tr_hr_tens >= 4 && tr_hr_tens < 5)
  281.                     hex3 <= n4;
  282.                 else if (tr_hr_tens >= 5 && tr_hr_tens < 6)
  283.                     hex3 <= n5;
  284.         end
  285.     end
  286.     9'b010000000:
  287.     //display for game scoreboard
  288.         begin
  289.             case (gm_p1)
  290.             0: begin hex3 <= n0; led[7:4]= 4'b0000; end
  291.             15: begin hex3 <= n1; led[7:4]= 4'b1000; end
  292.             30: begin hex3 <= n3; led[7:4] <= 4'b1100; end
  293.             45: begin hex3 <= n4; led[7:4] <= 4'b1110; end
  294.             50: begin hex3 <= dash; led[7:4] <= 4'b1110; end
  295.             55: begin hex3 <= sA; led[7:4] <= 4'b1110; end
  296.             default: hex3 <= n0;
  297.             endcase
  298.            
  299.             case (gm_p1)
  300.             0: hex2 <= n0;
  301.             15: hex2 <= n5;
  302.             30: hex2 <= n0;
  303.             45: hex2 <= n0;
  304.             50: hex2 <= dash;
  305.             55: hex2 <= sd;
  306.             default: hex2 <= n0;
  307.             endcase
  308.            
  309.             case (gm_p2)
  310.             0: begin hex1 <= n0; led[3:0] <= 4'b0000; end
  311.             15: begin hex1 <= n1; led[3:0] <= 4'b1000; end
  312.             30: begin hex1 <= n3; led[3:0] <= 4'b1100; end
  313.             45: begin hex1 <= n4; led[3:0] <= 4'b1110; end
  314.             50: begin hex1 <= dash; led[3:0] <= 4'b1110; end
  315.             55: begin hex1 <= sA; led[3:0] <= 4'b1110; end
  316.             default: hex1 <= n0;
  317.             endcase
  318.            
  319.             case (gm_p2)
  320.             0: hex0 <= n0;
  321.             15: hex0 <= n5;
  322.             30: hex0 <= n0;
  323.             45: hex0 <= n0;
  324.             50: hex0 <= dash;
  325.             55: hex0 <= sd;
  326.             default: hex0 <= n0;
  327.             endcase    
  328.         end
  329.  
  330.     9'b001000000:
  331.     //display for set scoreboard
  332.         begin
  333.         hex3 <= S; //s
  334.         hex2 <= E; //e
  335.         hex1 <= t; //t
  336.         hex0 <= 7'h7f;
  337.         if (key[3] == 0)
  338.         begin
  339.         case (set1_p1)
  340.             0:  hex3 <= n0;
  341.             1:  hex3 <= n1;
  342.             2:  hex3 <= n2;
  343.             3:  hex3 <= n3;
  344.             4:  hex3 <= n4;
  345.             5:  hex3 <= n5;
  346.             6:  hex3 <= n6;
  347.             7:  hex3 <= n7;
  348.             default:  hex3 <= n0;
  349.         endcase
  350.         case (set2_p1)
  351.             0:  hex2 <= n0;
  352.             1:  hex2 <= n1;
  353.             2:  hex2 <= n2;
  354.             3:  hex2 <= n3;
  355.             4:  hex2 <= n4;
  356.             5:  hex2 <= n5;
  357.             6:  hex2 <= n6;
  358.             7:  hex2 <= n7;
  359.             default:  hex2 <= n0;
  360.         endcase
  361.         case (set3_p1)
  362.             0:  hex1 <= n0;
  363.             1:  hex1 <= n1;
  364.             2:  hex1 <= n2;
  365.             3:  hex1 <= n3;
  366.             4:  hex1 <= n4;
  367.             5:  hex1 <= n5;
  368.             6:  hex1 <= n6;
  369.             7:  hex1 <= n7;
  370.             default:   hex1 <= n0;
  371.         endcase
  372.         case (set4_p1)
  373.             0: hex0 <= n0;
  374.             1: hex0 <= n1;
  375.             2: hex0 <= n2;
  376.             3: hex0 <= n3;
  377.             4: hex0 <= n4;
  378.             5: hex0 <= n5;
  379.             6: hex0 <= n6;
  380.             7: hex0 <= n7;
  381.             default: hex0 <= n0;
  382.         endcase
  383.        
  384.             if (set1_p1 != 6)
  385.             begin
  386.             hex2 <= dash;
  387.             hex1 <= dash;
  388.             hex0 <= dash;
  389.             end
  390.         else if (set1_p1 == 6 && set2_p1 != 6)
  391.             begin
  392.             hex3 <= n6;
  393.             hex1 <= dash;
  394.             hex0 <= dash;
  395.             end
  396.         else if (set1_p1 == 6 &&  set2_p1 == 6 && set3_p1 != 6)
  397.             begin
  398.             hex3 <= n6;
  399.             hex2 <= n6;
  400.             hex0 <= dash;
  401.             end
  402.            
  403.     end
  404.         else if (key[2] == 0)
  405.         begin
  406.         case (set1_p2)
  407.             0:  hex3 <= n0;
  408.             1:  hex3 <= n1;
  409.             2:  hex3 <= n2;
  410.             3:  hex3 <= n3;
  411.             4:  hex3 <= n4;
  412.             5:  hex3 <= n5;
  413.             6:  hex3 <= n6;
  414.             7:  hex3 <= n7;
  415.             default:  hex3 <= n0;
  416.         endcase
  417.         case (set2_p2)
  418.             0:  hex2 <= n0;
  419.             1:  hex2 <= n1;
  420.             2:  hex2 <= n2;
  421.             3:  hex2 <= n3;
  422.             4:  hex2 <= n4;
  423.             5:  hex2 <= n5;
  424.             6:  hex2 <= n6;
  425.             7:  hex2 <= n7;
  426.             default:  hex2 <= n0;
  427.         endcase
  428.         case (set3_p2)
  429.             0:  hex1 <= n0;
  430.             1:  hex1 <= n1;
  431.             2:  hex1 <= n2;
  432.             3:  hex1 <= n3;
  433.             4:  hex1 <= n4;
  434.             5:  hex1 <= n5;
  435.             6:  hex1 <= n6;
  436.             7:  hex1 <= n7;
  437.             default:  hex1 <= n0;
  438.         endcase
  439.         case (set4_p2)
  440.             0: hex0 <= n0;
  441.             1: hex0 <= n1;
  442.             2: hex0 <= n2;
  443.             3: hex0 <= n3;
  444.             4: hex0 <= n4;
  445.             5: hex0 <= n5;
  446.             6: hex0 <= n6;
  447.             7: hex0 <= n7; // if nanalo si p2 sa tiebreaker set 4
  448.             default: hex0 <= n0;
  449.         endcase
  450.        
  451.         if (set1_p2 != 6)
  452.             begin
  453.             hex2 <= dash;
  454.             hex1 <= dash;
  455.             hex0 <= dash;
  456.             end
  457.         else if (set1_p2 == 6 && set2_p2 != 6)
  458.             begin
  459.             hex3 <= n6;
  460.             hex1 <= dash;
  461.             hex0 <= dash;
  462.             end
  463.         else if (set1_p2 == 6 &&  set2_p2 == 6 && set3_p2 != 6)
  464.             begin
  465.             hex3 <= n6;
  466.             hex2 <= n6;
  467.             hex0 <= dash;
  468.             end
  469.     end
  470.            
  471. end
  472. //  9'b000100000:
  473. //  //display for tiebreaker game set scoreboard
  474. //      begin
  475. //          hex3 <= t;
  476. //          hex2 <= I;
  477. //          hex1 <= E;
  478. //          hex0 <= 7'h7f;
  479. //          case (trig) //if any key is pressed switch to score during tiebreaker
  480. //              default:
  481. //                  begin
  482. //                      hex3 <= tbtens_p1;
  483. //                      hex2 <= tbones_p1;
  484. //                      hex1 <= tbtens_p2;
  485. //                      hex0 <= tbones_p2;
  486. //                  end
  487. //          endcase
  488. //      end
  489. //
  490. //  9'b000010000:
  491. //  //display for tiebreaker game score for first four sets
  492. //      begin
  493. //          hex3 <= n0;
  494. //          hex2 <= n0;
  495. //          hex1 <= n0;
  496. //          hex0 <= n0;
  497. //        
  498. //          if ( (set1_p1 != set1_p2) || (set2_p1 != set2_p2) || (set3_p1 != set3_p2) || (set4_p1 != set4_p2) ) //if no tiebreaker happened
  499. //              hex3 <= dash;
  500. //              hex2 <= dash;
  501. //              hex1 <= dash;
  502. //              hex0 <= dash;
  503. //            
  504. //          case (set)
  505. //              1:
  506. //                  begin
  507. //                      if (trig[3] == 1)
  508. //                          hex3 <= tbtens_s1_p1;
  509. //                          hex2 <= tbones_s1_p1;
  510. //                          hex1 <= tbtens_s1_p2;
  511. //                          hex0 <= tbones_s1_p2;
  512. //                  end
  513. //              2:
  514. //                  begin
  515. //                      if (trig[2] == 1)
  516. //                          hex3 <= tbtens_s2_p1;
  517. //                          hex2 <= tbones_s2_p1;
  518. //                          hex1 <= tbtens_s2_p2;
  519. //                          hex0 <= tbones_s2_p2;
  520. //                  end
  521. //              3:
  522. //                  begin
  523. //                      if (trig[1] == 1)
  524. //                          hex3 <= tbtens_s3_p1;
  525. //                          hex2 <= tbones_s3_p1;
  526. //                          hex1 <= tbtens_s3_p2;
  527. //                          hex0 <= tbones_s3_p2;
  528. //                  end
  529. //              4:
  530. //                  begin
  531. //                      if (trig[0] == 1)
  532. //                          hex3 <= tbtens_s4_p1;
  533. //                          hex2 <= tbones_s4_p1;
  534. //                          hex1 <= tbtens_s4_p2;
  535. //                          hex0 <= tbones_s4_p2;
  536. //                  end
  537. //          endcase
  538. //        
  539. //      end
  540.        
  541. endcase
  542. end
  543.  
  544. always @ (posedge clk)
  545. case (sw)
  546. 9'b010000000:
  547. //game scoreboard
  548. begin  
  549. if (gm_p1 == 60 || gm_p2 == 60)
  550.         begin
  551.          if (gm_p1 == 60)
  552.             begin
  553.                 if ( (set1_p1 < 6 && set1_p2 < 6) || ( (set1_p1 >=5 && set1_p2 >= 5) && (set1_p1 < 7 && set1_p2 < 7) && (set1_p1 != 6 || set1_p2 !=6) ) )
  554.                 set1_p1 <= set1_p1 + 1;
  555.                 else if ( ( ( (set1_p1 == 6 && set1_p2 < 5) || (set1_p1 < 5 && set1_p2 == 6) ) && (set2_p1 < 6 && set2_p2 < 6) ) || ( (set2_p1 >=5 && set2_p2 >= 5) && (set2_p1 < 7 && set2_p2 < 7) && (set2_p1 != 6 || set2_p2 !=6) ) )
  556.                 begin
  557.                 set2_p1 <= set2_p1 + 1;
  558.                 end
  559.                 else if ( ( ( (set2_p1 == 6 && set2_p2 < 5) || (set2_p1 < 5 && set2_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set3_p1 >=5 && set3_p2 >= 5) && (set3_p1 < 7 && set3_p2 < 7) && (set3_p1 != 6 || set3_p2 !=6) ) )
  560.                 begin
  561.                 set3_p1 <= set3_p1 + 1;
  562.                 end
  563.                 else if ( ( ( (set3_p1 == 6 && set3_p2 < 5) || (set3_p1 < 5 && set3_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set4_p1 >=5 && set4_p2 >= 5) && (set4_p1 < 7 && set4_p2 < 7) && (set4_p1 != 6 || set4_p2 !=6) ) )
  564.                 begin
  565.                 set4_p1 <= set4_p1 + 1;
  566.                 end
  567.             end
  568.            
  569.         else if (gm_p2 == 60)
  570.             begin
  571.                 if ( (set1_p1 < 6 && set1_p2 < 6) || ( (set1_p1 >=5 && set1_p2 >= 5) && (set1_p1 < 7 && set1_p2 < 7) && (set1_p1 != 6 || set1_p2 !=6) ) )
  572.                 set1_p2 <= set1_p2 + 1;
  573.                 else if ( ( ( (set1_p1 == 6 && set1_p2 < 5) || (set1_p1 < 5 && set1_p2 == 6) ) && (set2_p1 < 6 && set2_p2 < 6) ) || ( (set2_p1 >=5 && set2_p2 >= 5) && (set2_p1 < 7 && set2_p2 < 7) && (set2_p1 != 6 || set2_p2 !=6) ) )
  574.                 begin
  575.                 set2_p2 <= set2_p2 + 1;
  576.                 end
  577.                 else if ( ( ( (set2_p1 == 6 && set2_p2 < 5) || (set2_p1 < 5 && set2_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set3_p1 >=5 && set3_p2 >= 5) && (set3_p1 < 7 && set3_p2 < 7) && (set3_p1 != 6 || set3_p2 !=6) ) )
  578.                 begin
  579.                 set3_p2 <= set3_p2 + 1;
  580.                 end
  581.                 else if ( ( ( (set3_p1 == 6 && set3_p2 < 5) || (set3_p1 < 5 && set3_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set4_p1 >=5 && set4_p2 >= 5) && (set4_p1 < 7 && set4_p2 < 7) && (set4_p1 != 6 || set4_p2 !=6) ) )
  582.                 begin
  583.                 set4_p2 <= set4_p2 + 1;
  584.                 end
  585.                
  586.             end
  587.             gm_p1 <= 0;
  588.             gm_p2 <= 0;
  589.         end
  590.    
  591. else if (gm_p1 == 45 && gm_p2 == 45)
  592.     begin
  593.     if (trig[3] ==1)
  594.         begin
  595.         gm_p1 <= gm_p1 +10;
  596.         gm_p2 <= gm_p2 +5;
  597.         end
  598.     else if  (trig[1] ==1)
  599.         begin
  600.         gm_p1 <= gm_p1 +5;
  601.         gm_p2 <= gm_p2 +10;
  602.         end
  603.     else if(trig[2] == 1)
  604.         gm_p1 <= gm_p1 - 15;
  605.     else if(trig[0] == 1)
  606.         gm_p2 <= gm_p2 - 15;
  607.     end
  608.    
  609. else if ((gm_p1 == 55 && gm_p2 == 50) || (gm_p1 == 50 && gm_p2 == 55))
  610. begin
  611.     if (trig[2] ==1)
  612.         begin
  613.         gm_p1 <= gm_p1 -10;
  614.         gm_p2 <= gm_p2 -5;
  615.         end
  616.     else if (trig[0] ==1)
  617.         begin
  618.         gm_p1 <= gm_p1 -5;
  619.         gm_p2 <= gm_p2 -10;
  620.         end
  621.     else if (trig[3] ==1)
  622.         begin
  623.         if (gm_p1 == 55 && gm_p2 == 50)
  624.         begin
  625.         gm_p1 <= gm_p1 + 5;
  626.         gm_p2 <= 0;
  627.         end
  628.         else if (gm_p1 == 60)
  629.             begin
  630.                 if ( (set1_p1 < 6 && set1_p2 < 6) || ( (set1_p1 >=5 && set1_p2 >= 5) && (set1_p1 < 7 && set1_p2 < 7) && (set1_p1 != 6 || set1_p2 !=6) ) )
  631.                 set1_p1 <= set1_p1 + 1;
  632.                 else if ( ( ( (set1_p1 == 6 && set1_p2 < 5) || (set1_p1 < 5 && set1_p2 == 6) ) && (set2_p1 < 6 && set2_p2 < 6) ) || ( (set2_p1 >=5 && set2_p2 >= 5) && (set2_p1 < 7 && set2_p2 < 7) && (set2_p1 != 6 || set2_p2 !=6) ) )
  633.                 begin
  634.                 set2_p1 <= set2_p1 + 1;
  635.                 end
  636.                 else if ( ( ( (set2_p1 == 6 && set2_p2 < 5) || (set2_p1 < 5 && set2_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set3_p1 >=5 && set3_p2 >= 5) && (set3_p1 < 7 && set3_p2 < 7) && (set3_p1 != 6 || set3_p2 !=6) ) )
  637.                 begin
  638.                 set3_p1 <= set3_p1 + 1;
  639.                 end
  640.                 else if ( ( ( (set3_p1 == 6 && set3_p2 < 5) || (set3_p1 < 5 && set3_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set4_p1 >=5 && set4_p2 >= 5) && (set4_p1 < 7 && set4_p2 < 7) && (set4_p1 != 6 || set4_p2 !=6) ) )
  641.                 begin
  642.                 set4_p1 <= set4_p1 + 1;
  643.                 end
  644.             end
  645.         else if (gm_p1 == 50 && gm_p2 == 55)
  646.         begin
  647.             gm_p1 <= 45;
  648.             gm_p2 <= 45;
  649.         end
  650.         end
  651.     else if (trig[1] ==1)
  652.         begin
  653.         if (gm_p1 == 50 && gm_p2 == 55)
  654.         begin
  655.         gm_p2 <= gm_p2 + 5;
  656.         gm_p1 <= 0;
  657.         end
  658.         else if (gm_p2 == 60)
  659.             begin
  660.                 if ( (set1_p1 < 6 && set1_p2 < 6) || ( (set1_p1 >=5 && set1_p2 >= 5) && (set1_p1 < 7 && set1_p2 < 7) && (set1_p1 != 6 || set1_p2 !=6) ) )
  661.                 set1_p2 <= set1_p2 + 1;
  662.                 else if ( ( ( (set1_p1 == 6 && set1_p2 < 5) || (set1_p1 < 5 && set1_p2 == 6) ) && (set2_p1 < 6 && set2_p2 < 6) ) || ( (set2_p1 >=5 && set2_p2 >= 5) && (set2_p1 < 7 && set2_p2 < 7) && (set2_p1 != 6 || set2_p2 !=6) ) )
  663.                 begin
  664.                 set2_p2 <= set2_p2 + 1;
  665.                 end
  666.                 else if ( ( ( (set2_p1 == 6 && set2_p2 < 5) || (set2_p1 < 5 && set2_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set3_p1 >=5 && set3_p2 >= 5) && (set3_p1 < 7 && set3_p2 < 7) && (set3_p1 != 6 || set3_p2 !=6) ) )
  667.                 begin
  668.                 set3_p2 <= set3_p2 + 1;
  669.                 end
  670.                 else if ( ( ( (set3_p1 == 6 && set3_p2 < 5) || (set3_p1 < 5 && set3_p2 == 6) ) && (set3_p1 < 6 && set3_p2 < 6) ) || ( (set4_p1 >=5 && set4_p2 >= 5) && (set4_p1 < 7 && set4_p2 < 7) && (set4_p1 != 6 || set4_p2 !=6) ) )
  671.                 begin
  672.                 set4_p2 <= set4_p2 + 1;
  673.                 end
  674.             end
  675.         else if (gm_p1 == 55 && gm_p2 == 50)
  676.         begin
  677.             gm_p1 <= 45;
  678.             gm_p2 <= 45;
  679.         end
  680.         end
  681.         end
  682.        
  683. else if (gm_p1 < 45 || gm_p2 < 45)
  684.     begin
  685.     if (trig[3] == 1)
  686.         gm_p1 <= gm_p1 + 15;
  687.     else if(trig[2] == 1)
  688.         gm_p1 <= gm_p1 - 15;
  689.     else if(trig[1] == 1)
  690.         gm_p2 <= gm_p2 + 15;
  691.     else if(trig[0] == 1)
  692.         gm_p2 <= gm_p2 - 15;
  693.     end
  694.  
  695. end
  696. //9'b001000000:
  697. ////set scoreboard
  698. //
  699. //begin
  700.    
  701.        
  702. //        set <= 1;
  703. //        if (set1_p1 >= 6)
  704. //          begin
  705. //              led[17] <= 1;
  706. //              set2_p1 <= set1_p1 - 6;
  707. //              set <= 2;
  708. //              if (set2_p1 == 6)
  709. //                  begin
  710. //                      led[16] <= 1;
  711. //                      set3_p1 <= set3_p1 + 1;
  712. //                      set <= 3;
  713. //                      if (set3_p1 == 6)
  714. //                          begin
  715. //                              led[16] <= 1;
  716. //                              set4_p1 <= set4_p1 + 1;
  717. //                              set <= 4;
  718. //                              if (set4_p1 == 6)
  719. //                                  begin
  720. //                                      led[15] <= 1;
  721. //                                      //place for set5?
  722. //                                  end
  723. //                          end
  724. //                  end
  725. //          end
  726. //    
  727. //    
  728. //    if (gm_p2 == 60 && ( (gm_p2 - gm_p1) <= 2 ) && gm_p1 != 60 ) //yung score ni p2 - score ni p1 dahil sa kailangan dalawa lamang para manalo
  729. //    begin
  730. //        set1_p2 <= set1_p2 + 1;
  731. //        set <= 1;
  732. //        if (set1_p2 == 6)
  733. //          begin
  734. //              led[12] <= 1;
  735. //              set2_p2 <= set2_p2 + 1;
  736. //              set <= 2;
  737. //          end
  738. //            if (set2_p2 == 6)
  739. //              begin
  740. //                  led[11] <= 1;
  741. //                  set3_p2 <= set3_p2 + 1;
  742. //                  set <= 3;
  743. //              end
  744. //                if (set3_p2 == 6)
  745. //                  begin
  746. //                      led[10] <= 1;
  747. //                      set4_p2 <= set4_p2 + 1;
  748. //                      set <= 4;
  749. //                  end
  750. //                      if (set4_p2 == 6)
  751. //                          begin
  752. //                              led[9] <= 1;
  753. //                              //place for 5th set
  754. //                          end
  755. //    end  
  756. //end //end ng case ng set scoreboard
  757.  
  758. //9'b000100000:
  759. ////tiebreaker live scoreboard
  760. //begin
  761. //  if ( ( (set1_p1 == set1_p2) || (set2_p1 == set2_p2) || (set3_p1 == set3_p2) || (set4_p1 == set4_p2) ) && ( set1_p1 < 5 || set1_p2 < 5 || set2_p1 < 5 || set2_p2 < 5  || set3_p1 < 5 || set3_p2 < 5 || set4_p1 < 5 || set4_p2 < 5)  )
  762. //  //if score is 6-6 and first four sets, TIEBREAKER
  763. //    begin  
  764. //      case(trig)
  765. //          4'b1000: //if nakascore si p1
  766. //              begin
  767. //                  gm_p1_tb <= gm_p1_tb + 1;
  768. //                  tbones_p1 <= tbones_p1 + 1;
  769. //              end
  770. //          4'b0100: //if nakascore si p2
  771. //              begin
  772. //                  gm_p2_tb <= gm_p2_tb + 1;
  773. //                  tbones_p2 <= tbones_p2 + 1;
  774. //              end
  775. //          4'b0001: //reset in tiebreaker
  776. //              begin
  777. //                  gm_p1_tb <= 0;
  778. //                  gm_p2_tb <= 0;
  779. //                  tbones_p1 <= 0;
  780. //                  tbtens_p1 <= 0;
  781. //                  tbones_p2 <= 0;
  782. //                  tbtens_p2 <= 0;
  783. //              end
  784. //      endcase
  785. //    
  786. //      if (tbones_p1 == 9)
  787. //          begin
  788. //              tbones_p1 <= 0;
  789. //              tbtens_p1 <= tbtens_p1 + 1;
  790. //          end
  791. //      else if (tbones_p2 == 9)
  792. //          begin
  793. //              tbones_p2 <= 0;
  794. //              tbtens_p2 <= tbtens_p2 + 1;
  795. //          end
  796. //        
  797. //      else if (gm_p1_tb >= 7 && ( (gm_p1_tb - gm_p2_tb) <= 2) ) //if nanalo si p1 sa tiebreaker set
  798. //          begin
  799. //              if (set1_p1 == set1_p2)
  800. //                      set1_p1 <= set1_p1 + 1;
  801. //              else if (set2_p1 == set2_p2)
  802. //                      set2_p1 <= set2_p1 + 1;
  803. //              else if (set3_p1 == set3_p2)
  804. //                      set3_p1 <= set3_p1 + 1;
  805. //              else if (set4_p1 == set4_p2)
  806. //                      set4_p1 <= set4_p1 + 1;
  807. //          end
  808. //        
  809. //      else if (gm_p2_tb >= 7 && ( (gm_p2_tb - gm_p1_tb) <= 2) ) //if nanalo si p2 sa tiebreaker set
  810. //          begin
  811. //              if (set1_p2 == set1_p2)
  812. //                      set1_p2 <= set1_p2 + 1;
  813. //              else if (set2_p1 == set2_p2)
  814. //                      set2_p2 <= set2_p2 + 1;
  815. //              else if (set3_p1 == set3_p2)
  816. //                      set3_p2 <= set3_p2 + 1;
  817. //              else if (set4_p1 == set4_p2)
  818. //                      set4_p2 <= set4_p2 + 1;
  819. //          end    
  820. //        
  821. //    end //end para sa begin nung sa if ng tiebreaker
  822. //end
  823. //
  824. //9'b000010000:
  825. ////tiebreaker game score for first four sets
  826. //begin
  827. //  if (set == 1) // para ma display yung score nila per tiebreaker set
  828. //      begin
  829. //                  tbones_s1_p1 <= tbones_p1;
  830. //                  tbtens_s1_p1 <= tbones_p1;
  831. //                  tbones_s1_p2 <= tbones_p1;
  832. //                  tbtens_s1_p2 <= tbones_p1;
  833. //      end
  834. //  else if (set == 2)
  835. //      begin
  836. //                  tbones_s2_p1 <= tbones_p1;
  837. //                  tbtens_s2_p1 <= tbones_p1;
  838. //                  tbones_s2_p2 <= tbones_p1;
  839. //                  tbtens_s2_p2 <= tbones_p1;
  840. //      end
  841. //  else if (set == 3)
  842. //      begin
  843. //                  tbones_s3_p1 <= tbones_p1;
  844. //                  tbtens_s3_p1 <= tbones_p1;
  845. //                  tbones_s3_p2 <= tbones_p1;
  846. //                  tbtens_s3_p2 <= tbones_p1;
  847. //      end
  848. //  else if (set == 4)
  849. //      begin
  850. //                  tbones_s4_p1 <= tbones_p1;
  851. //                  tbtens_s4_p1 <= tbones_p1;
  852. //                  tbones_s4_p2 <= tbones_p1;
  853. //                  tbtens_s4_p2 <= tbones_p1;
  854. //      end
  855. //end
  856.  
  857. endcase      
  858.            
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement