Advertisement
Guest User

Untitled

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