20 / 36 · Теория
Следующее значение из прежнего
Прочитайте неблокирующие присваивания и приоритет сброса.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Цели урока
- Прочитайте неблокирующие присваивания и приоритет сброса.
Расчёт по прежнему состоянию
В count<=count+2'b01 справа используется старый count. При 01 следующим будет 10. Неблокирующее <= планирует рассчитанное значение на фазу неблокирующего обновления. Разделение старого и нового полезно и для нескольких регистров на одном фронте.
always_ff @(posedge clk)
if (rst) count <= 2'b00;
else count <= count + 2'b01;Только одна ветвь
if/else выбирает один путь. При rst=1 сохраняется 00 без увеличения. Это не сброс, за которым на том же фронте следует добавление до 01. Запишите текущий count, rst, выбранную ветвь и следующий count: так видны приоритет и переход через максимум.
Попробуйте сами
При count=11,rst=1 после фронта будет 00 или 01?
Прочитать объяснение
00. Выбрана ветвь сброса, ветвь увеличения не выполняется.
✓ Изучено