module indicator2(
input clk,
output reg [6:0]segments,
output reg [7:0]select
);
reg [15:0]count = 1'b0;
reg [2:0]dynamic_temp = 1'b0;
always @ (posedge clk)
begin
count <= count + 1'b1; //задаем частоту переключения между индикаторами
if(count == 0) //по входной тактовой частоте
begin
dynamic_temp <= dynamic_temp + 1'b1; //переключаемся между индикаторами
end
case(dynamic_temp)
3'b000 :
begin
segments = 7'b0100100;
select = 8'b01111111; //зажигаем первый индикатор
end
3'b001 :
begin
segments = 7'b1000000;
select = 8'b10111111; //зажигаем второй индикатор
end
3'b010 :
begin
segments = 7'b0100100;
select = 8'b11011111; //зажигаем третий индикатор
end
3'b011 :
begin
segments = 7'b0000010;
select = 8'b11101111; //зажигаем четвертый индикатор
end
3'b100 :
begin
segments = 7'b0111111;
select = 8'b11110111; //зажигаем пятый индикатор
end
3'b101 :
begin
segments = 7'b0001000;
select = 8'b11111011; //зажигаем шестой индикатор
end
3'b110 :
begin
segments = 7'b0111111;
select = 8'b11111101; //зажигаем седьмой индикатор
end
3'b111 :
begin
segments = 7'b0111111;
select = 8'b11111110; //зажигаем восьмой индикатор
end
endcase
end
endmodule