Advertisement
krowka

kostka2

Jan 23rd, 2019
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //deklaracja modułu kostki
  2. module kostka(
  3. input wire clock, // deklarowanie połączenia do zegara
  4. input logic button, // połączenia dla przycisku
  5. output reg[6:0] sevenSegmentDisplay
  6. );
  7.  
  8. reg[3:0] number; //inkrementowany na każde pozytywne zbocze
  9. reg[3:0] displayNumber; //przechowywana wartość aktualna na wyświetlaczu
  10.  
  11. integer interval; //1 - na ostatnim dodatnim zboczu był kliknięty guzik, 0 - w przeciwnym wypadku
  12.  
  13. initial begin
  14.     sevenSegmentDisplay = 0;
  15.     displayNumber = 0;
  16.     number = 1;
  17.     interval = 0;
  18. end
  19.  
  20. sevenSegment s7(
  21.  .numberToDisplay(displayNumber),
  22.  .segmentCombination(sevenSegmentDisplay));
  23.                  
  24. always @ (posedge clock)
  25.     begin
  26.         number = number + 1;
  27.         if(number > 6) number = 1;
  28.         if(interval > 0)
  29.             interval = interval - 1;
  30.         if(!button) //przycisk kliknięty
  31.             if(interval == 0)
  32.                 begin
  33.                     displayNumber = number; //przepisanie do rejestru
  34.                     interval = 25000000; //25MHz / 2 = pół sekundy oczekiwania
  35.                 end
  36.     end
  37. endmodule
  38.  
  39. module sevenSegment(
  40.      numberToDisplay,
  41.      segmentCombination
  42. );
  43.      
  44. input [3:0] numberToDisplay;
  45. output [6:0] segmentCombination;
  46.  
  47. always @(numberToDisplay)
  48. begin
  49.     case (numberToDisplay)
  50.         0 : segmentCombination = 7'b0000001;
  51.         1 : segmentCombination = 7'b1001111;
  52.         2 : segmentCombination = 7'b0010010;
  53.         3 : segmentCombination = 7'b0000110;
  54.         4 : segmentCombination = 7'b1001100;
  55.         5 : segmentCombination = 7'b0100100;
  56.         6 : segmentCombination = 7'b0100000;
  57.         7 : segmentCombination = 7'b0001111;
  58.         8 : segmentCombination = 7'b0000000;
  59.         9 : segmentCombination = 7'b0000100;
  60.         default : segmentCombination = 7'b0000000;
  61.     endcase
  62. end
  63.    
  64. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement