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

ТЕМА: Простой таймер- счетчик

Простой таймер- счетчик 5 года 8 мес. назад #7667

  • with
  • with аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 76
  • Спасибо получено: 3
Пытаюсь собрать простой таймер счетчик, на подобии таймеров в микроконтроллерах STM32.
В симуляторе квартуса все работает на ок, в железе тоже все работает, но на раз через раз.
Проблема в том что при нажатии на кнопку Reset = RST , таймер иногда зависает ...
В чем может быть проблема ? синхронный автомат состояний и асинхронный сброс ?
ВНИМАНИЕ: Спойлер!

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

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

Простой таймер- счетчик 5 года 8 мес. назад #7668

  • with
  • with аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 76
  • Спасибо получено: 3
Таки нашел сам в чем косяк - забыл добавить в список чувствительности блока always - сигнал RST, должно быть так:
always @ (posedge CLK_200M or posedge RST)

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

Простой таймер- счетчик 5 года 8 мес. назад #7670

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
В коде 2 разных сигнала, RST_IN и RST, причем RST не описан.
Входные сигналы надо пропускать через триггер:
reg RST; always@(posedge CLK_50M) RST<=RST_IN;

А асинхронный сброс лучше не использовать.
Спасибо сказали: with

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

Простой таймер- счетчик 5 года 8 мес. назад #7672

  • with
  • with аватар Автор темы
  • Не в сети
  • Захожу иногда
  • Захожу иногда
  • Сообщений: 76
  • Спасибо получено: 3

Leka пишет: В коде 2 разных сигнала, RST_IN и RST, причем RST не описан.
Входные сигналы надо пропускать через триггер:
reg RST; always@(posedge CLK_50M) RST<=RST_IN;

А асинхронный сброс лучше не использовать.

Да этот кусочеГ кода почему то выпал у меня : assign RST = RST_in;

Вы могли бы привести пример кода, как оформлять обычный глобальный ресет ? и правильно ли оформлено оно у меня в виде списка чувствительности для блока always @ (posedge CLK_200M or posedge RST)

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

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

Простой таймер- счетчик 5 года 8 мес. назад #7673

  • Leka
  • Leka аватар
  • Не в сети
  • Живу я здесь
  • Живу я здесь
  • Сообщений: 635
  • Спасибо получено: 54
Лучше синхронный ресет:
...
reg RST;
always@(posedge CLK_200M) RST<=RST_IN;
...
always@(posedge CLK_200M) begin
  if(RST)...
...
Спасибо сказали: with

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

Последнее редактирование: от Leka.
  • Страница:
  • 1
Время создания страницы: 0.129 секунд
Работает на Kunena форум