Altifigence Academy

13 / 63 · Теория

DEMUX и дешифратор: передача данных по выбранному пути

Сравните направления и роли MUX, DEMUX и дешифратора, проверьте условия one-hot и one-hot-or-zero.

MUX собирает, DEMUX распределяет

MUXМультиплексор — комбинационная схема, соединяющая один из нескольких входов с выходом по сигналу выбора. Соответствие битов выбора и номеров входов должно быть задано явно. Подробнее передаёт один из нескольких входов данных на выход. DEMUXДемультиплексор (DEMUX) направляет один вход данных на выход, указанный сигналом выбора. Значения невыбранных выходов также входят в спецификацию. передаёт единственный вход d на выбранный выход, оставляя остальные равными 0. Если адрес выбора DEMUX 1-to-4 равен s1s0s_1s_0, то:

y0=ds1‾s0‾,y1=ds1‾s0,y2=ds1s0‾,y3=ds1s0y_0=d\overline{s_1}\overline{s_0},\quad y_1=d\overline{s_1}s_0,\quad y_2=ds_1\overline{s_0},\quad y_3=ds_1s_0

Та же функция через дешифратор с enable

Считайте a1, a0 на рисунке адресом выбора, а enable — данными d. Выходы d0–d3 соответствуют y0–y3 в формуле. Одна комбинационная функция может называться по-разному в разных применениях.

Если enable трактовать как вход данных, получится DEMUX

d[i] = enable AND (2 × a1 + a0 = i)

При адресе 10 и данных 1 только y2 равен 1. При данных 0 нулевыми становятся все выходы, включая выбранный. Поэтому условие one-hotOne-hot — представление, в котором ровно один бит равен 1. Если допускаются также все нули, это отдельно называют one-hot-or-zero. Подробнее «всегда ровно одна единица» неверно; для всей функции подходит one-hot-or-zero — «не более одной единицы».

Различайте линию выбора и событие записи

Для записи в один из четырёх регистровРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее можно подать write_en на d, а адрес использовать для выбора. Однако сам дешифраторДешифратор активирует выходную линию, соответствующую двоичному коду. При наличии enable неактивное разрешение может устанавливать все выходы в 0. Подробнее ничего не хранит. Регистр захватывает данные при соответствующем write enable на фронте такта. Изменение комбинационной линии выбора не меняет сохранённое значение немедленно.

Выбор и запись — два отдельных этапа
  1. Адрес + write_en: Определите, куда писать и нужна ли запись
  2. Дешифратор: Сформируйте enable одного выбранного регистра
  3. Фронт такта: Выбранный регистр сохраняет данные

Проверяйте не только выбранный выход, но и нули на остальных. Четыре комбинации при d=0 и четыре при d=1 дают восемь. Такая функциональная проверка не гарантирует отсутствия выбросов при смене адреса.

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

Найдите y3y2y1y0 при s1s0=01 для d=1 и d=0. Когда проверка «ровно одно разрешение из четырёх регистров обязательно активно» даст ошибку?

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

Получаются 0010 и 0000. При d или write_en, равном 0, нормально, что ни один выход не включён. Условие «ровно один» применимо только при d=1.

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