Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //deklaracja modułu kostki
- module kostka(
- input wire clock, // deklarowanie połączenia do zegara
- input logic button, // połączenia dla przycisku
- output reg[6:0] sevenSegmentDisplay
- );
- reg[3:0] number; //inkrementowany na każde pozytywne zbocze
- reg[3:0] displayNumber; //przechowywana wartość aktualna na wyświetlaczu
- integer interval; //1 - na ostatnim dodatnim zboczu był kliknięty guzik, 0 - w przeciwnym wypadku
- initial begin
- sevenSegmentDisplay = 0;
- displayNumber = 0;
- number = 1;
- interval = 0;
- end
- sevenSegment s7(
- .numberToDisplay(displayNumber),
- .segmentCombination(sevenSegmentDisplay));
- always @ (posedge clock)
- begin
- number = number + 1;
- if(number > 6) number = 1;
- if(interval > 0)
- interval = interval - 1;
- if(!button) //przycisk kliknięty
- if(interval == 0)
- begin
- displayNumber = number; //przepisanie do rejestru
- interval = 25000000; //25MHz / 2 = pół sekundy oczekiwania
- end
- end
- endmodule
- module sevenSegment(
- numberToDisplay,
- segmentCombination
- );
- input [3:0] numberToDisplay;
- output [6:0] segmentCombination;
- always @(numberToDisplay)
- begin
- case (numberToDisplay)
- 0 : segmentCombination = 7'b0000001;
- 1 : segmentCombination = 7'b1001111;
- 2 : segmentCombination = 7'b0010010;
- 3 : segmentCombination = 7'b0000110;
- 4 : segmentCombination = 7'b1001100;
- 5 : segmentCombination = 7'b0100100;
- 6 : segmentCombination = 7'b0100000;
- 7 : segmentCombination = 7'b0001111;
- 8 : segmentCombination = 7'b0000000;
- 9 : segmentCombination = 7'b0000100;
- default : segmentCombination = 7'b0000000;
- endcase
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement