krowka

kostka2

Jan 23rd, 2019
618
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
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×