-
KPN
-
Автор темы
-
Не в сети
-
Новый участник
-
-
Сообщений: 10
-
Спасибо получено: 0
-
-
|
Доброго времени суток! как сделать чтобы по нажатии на кнопку загорался другой светодиод, пытаюсь через кейс сделать,почему-то переключаются, но не совсем так как нужно, а должно быть так: сначала не горит не один из светодиодов, жмем на кнопку загорается первый, еще раз жмем загорается второй, первый при этом тухнет, и т.д.
в чём ошибка? module LED(
input clk,
input KEY_0, KEY_1,
output reg[9:0] LEDS = 10'b0000_0000_00
);
reg [3:0] set = 4'b00_00;
reg left;
reg right;
always@ (posedge clk)
begin
left <= KEY_0;
right <= KEY_1;
if(KEY_0 == 1'b0 && left == 1'b1)
begin
set <= set + 1'b1;
end
else
if(KEY_1 == 1'b0 && right == 1'b1)
begin
set <= set - 1'b1;
end
end
always@*
begin
case(set)
4'b00_01: LEDS [0] = 1'b1;
4'b00_10: LEDS [1] = 1'b1;
4'b00_11: LEDS [2] = 1'b1;
4'b01_00: LEDS [3] = 1'b1;
4'b01_01: LEDS [4] = 1'b1;
4'b01_10: LEDS [5] = 1'b1;
4'b01_11: LEDS [6] = 1'b1;
4'b10_00: LEDS [7] = 1'b1;
4'b10_01: LEDS [8] = 1'b1;
4'b10_10: LEDS [9] = 1'b1;
default: LEDS <= 10'b0000_0000_00;
endcase
end
endmodule
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от KPN.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Ошибки в коде не вижу, может, дребезг контактов ?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Alvich
-
-
Не в сети
-
Захожу иногда
-
-
Сообщений: 62
-
Спасибо получено: 25
-
-
|
Попробуйте так... case(set)
4'b00_01: LEDS <= 10'b0000000001;
4'b00_10: LEDS <= 10'b0000000010;
4'b00_11: LEDS <= 10'b0000000100;
....
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
Да, ошибка в исходном коде - описывает защелку, а не декодер. Для декодера можно сбрасывать LEDS: always@*
begin
LEDS = 10'b0;
case(set)
...
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
-
Leka
-
-
Не в сети
-
Живу я здесь
-
-
Сообщений: 635
-
Спасибо получено: 54
-
-
|
always@* begin
LEDS = 0;
LEDS[set-1] = 1;
end
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Leka.
|
Время создания страницы: 0.137 секунд