16 / 36 · Теория
Триггеры и разрешение записи
Задайте приоритет сброса, разрешения и удержания.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Цели урока
- Задайте приоритет сброса, разрешения и удержания.
Удержание тоже поведение
Триггер записывает значение на фронте. Если q<=d выполняется только при en=1, то при en=0 значение держится. Это не то же самое, что произвольно блокировать такт комбинационной логикой. Первое условие if(rst) даёт сбросу приоритет даже при одновременном rst=en=1.
always_ff @(posedge clk) begin
if (rst) q <= 1'b0;
else if (en) q <= d;
endРегистр и неполная комбинационная логика
Синхронный сброс без фронта не меняет q. В always_ff отсутствие присваивания может намеренно удерживать состояние; в always_comb нужны присваивания на всех путях во избежание защёлок. Отдельно проверьте rst/en=1/1,0/0,0/1: сброс, удержание, запись.
Попробуйте сами
При q=1,d=0,rst=0,en=0 что будет после фронта?
Прочитать объяснение
en=0 удерживает прежнее q=1.
✓ Изучено