Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА:

Re: Вопросы новичка 12 года 1 мес. назад #2195

Правильно :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы новичка 12 года 1 мес. назад #2212

создание бегущего огонька на светодиодах Марсохода 2
этот код не работает

module led_blink(
input wire clock,
output reg [3:0] led = 4'b1
);
reg [28:0]clock_count = 0;

always @(posedge clock)
begin
if(clock_count == 0)
begin
led[3:1] <= led[2:0];
led[0] <= led[3];
clock_count <= 100000000;
end
else
clock_count <= clock_count - 1'b1;
end
endmodule

похоже что компилятор оптимизирует и выбрасывает всё. Логических элементов - 0. Подскажите пожалуйста где ошибка

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы новичка 12 года 1 мес. назад #2213

  • nfader
  • nfader аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 14
@goldfish75
А кто зажжет светодиод в начале? ;)
led[0] <= led[3] | ( led[3:0] == 0 );

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от nfader.

Re: Вопросы новичка 12 года 1 мес. назад #2214

Не помогло :(
может не туда вставил строку? Вставил после always

Я думал так: придёт clock, проверится условие (в начале clock_count = 0), передвинется содержимое led (оно в начале = 1) и я в любом случае увижу что один из диодов светится так-как в начале output reg [3:0] led = 4'b1

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы новичка 12 года 1 мес. назад #2215

  • nfader
  • nfader аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 14
Вместо
led[0] <= led[3];

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от nfader.

Re: Вопросы новичка 12 года 1 мес. назад #2216

  • nfader
  • nfader аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 14

goldfish75 пишет: Не помогло :(
..и я в любом случае увижу что один из диодов светится так-как в начале output reg [3:0] led = 4'b1

Это справедливо только для симуляции и не окажет влияния на начальное состояние схемы. Начальное состояние по умолчанию будет 0 для данного проекта и ПЛИС.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от nfader.

Re: Вопросы новичка 12 года 1 мес. назад #2217

спасибо, заработало :)

тоесть
led[0] <= led[3] | ( led[3:0] == 0 );

это короткая запись
if(led[3:0] == 0)
  led[0] <= 1'b1;
else
 led[0] <= led[3];

мы всегда будем делать лишнюю проверку и тратить на неё логические элементы
можно как то по другому задать начальное значение регистру led?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы новичка 12 года 1 мес. назад #2218

  • nfader
  • nfader аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 37
  • Спасибо получено: 14

goldfish75 пишет: ...можно как то по другому задать начальное значение регистру led?

Асинхронные очистка/установка по внешнему сигналу сброса.

Можно также задать начальное состояние регистров в Assignment editor, но это уже шаманство альтеровское :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от nfader.

Re: Вопросы новичка 12 года 1 мес. назад #2224

Подскажите где узнать тайминги для видеорежима 320х240?
Поиском нашел какие то данные но они разнятся друг от друга, похоже что у разных производителей маленьких LCD они разные, а мне нужно для обычного монитора с VGA входом.
И ещё один вопрос: как инициализировать массив в Verilog? Хочу создать lookup таблицу содержащую значения цветов RGB
reg [15:0] color [0:7]; создание таблицы из 8 элементов
color[0] = 16'b0000011111100000; здесь компилятор ругается Error (10170): Verilog HDL syntax error at hvsync.v(50) near text "="; expecting ".", or an identifier
не пойму что не так

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Вопросы новичка 12 года 1 мес. назад #2225

goldfish75 пишет: Подскажите где узнать тайминги для видеорежима 320х240?

У "VGA" нет такого режма. Берите 640х480 и увеличивайте размер точки в четыре раза (в два по горизонтали и в два по вертикали).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.145 секунд
Работает на Kunena форум