Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module TimeK
- (
- input logic clk, // 50 Mhz
- input logic enable_pit,
- input logic enable_fr,
- input logic enable_tl,
- //input logic enable_ob,
- input logic btn_reset,
- input logic [1:0] btn_rm,
- //output logic led,
- output logic [7:0] segm,
- output logic [3:0] dig
- );
- logic [15:0] number = 16'h0; // число на вывод
- binary_to_7segm sev_seg
- (
- .clk(clk),
- .binary_num(number),
- .segm(segm),
- .dig(dig)
- );
- logic[25:0] clockToSec = 0; // счет тактов
- always @(posedge clk) // по фронту
- begin
- if (btn_reset == 0)
- begin
- number <= 16'h0;
- clockToSec <= 26'h0;
- end
- else begin
- case (btn_rm)
- 2'b00 : begin // Отсчет времени отпадания
- if (enable_pit == 1 & enable_tl == 0) begin
- clockToSec <= clockToSec + 1; // счетчик + 1
- if(clockToSec == 26'hC350) begin // если 50 000
- number[3:0] <= number[3:0] + 1; // число на вывод + 1
- //led = ~led; // диод инверсия
- clockToSec <= 0; // обнуление счетчика
- end
- end
- end
- 2'b01 : begin // Отсчет времени притяжения
- if (enable_pit == 0 & enable_fr == 0) begin
- clockToSec <= clockToSec + 1; // счетчик + 1
- if(clockToSec == 26'hC350) begin // если 50 000
- number[3:0] <= number[3:0] + 1; // число на вывод + 1
- //led = ~led; // диод инверсия
- clockToSec <= 0; // обнуление счетчика
- end
- end
- end
- 2'b11 : begin // Отсчет времени перелёта
- //if (enable_ob == 1) begin
- if (enable_tl == 0 & enable_fr == 0) begin
- clockToSec <= clockToSec + 1; // счетчик + 1
- if(clockToSec == 26'hC350) begin // если 50 000
- number[3:0] <= number[3:0] + 1; // число на вывод + 1
- //led = ~led; // диод инверсия
- clockToSec <= 0; // обнуление счетчика
- end
- end
- end
- endcase
- end
- if (number[3:0] == 4'b1010) begin
- number[7:4] <= number[7:4] + 4'b0001;
- number[3:0] <= 4'b0000;
- end else if (number[7:4] == 4'b1010) begin
- number[11:8] <= number[11:8] + 4'b0001;
- number[7:4] <= 4'b0000;
- end else if (number[11:8] == 4'b1010) begin
- number[15:12] <= number[15:12] + 4'b0001;
- number[11:8] <= 4'b0000;
- end else if (number[15:12] == 4'b1010) begin
- number[15:12] <= 4'b0000;
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement