Altifigence Academy

18 / 36 · Теория

Фронты такта и состояние

Разделяйте изменение входов и обновление регистров.

Цели урока

  • Разделяйте изменение входов и обновление регистров.

Фронт — мгновение, не интервал

posedge clk — нарастающий фронт. Счётчик не растёт всё время высокого уровня, а обновляется один раз на фронт. Отметьте первый фронт и пронумеруйте следующие, сравнивая рассчитанные значения и удержание между ними.

Сброс тоже считывается на фронте

always_ff слушает только posedge clk. Подъём rst не меняет count до фронта. На фронте при rst=1 сохраняется 00 вместо увеличения. Это синхронный сброс; асинхронный проект может реагировать иначе. Читайте условие события, а не только имя сигнала.

СобытиеrstИзменение count
Между фронтами0 → 1Удержание
Нарастающий фронт1Записать 00
Спадающий фронт0Удержание
Следующий нарастающий фронт0Увеличение на один

Попробуйте сами

Станет ли count=10 сразу 00, если rst поднялся между фронтами?

Прочитать объяснение

Нет. Он держит 10 до следующего фронта и станет 00, если rst всё ещё высок.

Выбор действует в этом браузере. Его можно изменить внизу страницы.