CPU MUX

From PSXDEV
Jump to: navigation, search

Тут будут всякие мультиплексоры.

Contents

Обычный мультиплексор (MUX)

Мультиплексор реализует конструкцию if-else в железном варианте. Если a = 0, то выход будет b, иначе с.

Для упрощения обозначения мультиплексор 2-в-1 на схемах будет обозначаться просто MUX (мультиплексоры большей разрядности достаточно редки).

21-mux.jpg

abc | x
000 | 0
001 | 1
010 | 0 
011 | 1
100 | 0
101 | 0
110 | 1
111 | 1

Функция : x = a ? b : c

В классическом варианте вход a называется s (select), а входы c и b - i0 и i1 соответственно. То есть если select = 0, то выбираем 0й вход (i0), а значение select = 1 выбирает 1й вход (i1). Поэтому классическая таблица истинности выглядит немного по другому. Мы ещё не решили какой вариант обозначения входов использовать, но скорее всего это будет классический вариант :

x = (s == 0) ? i0 : i1

Скачать исходники стандартной ячейки со схемой : File:21-mux circuit.tif

Flow

Все транзитные состояния схемы предлагаем рассмотреть читателю самостоятельно ололо

Заметки по топологии

На картинке видно, что сбоку идёт какой-то левый провод, который ни к чему не присоединен. Дело в том, что он используется для альтернативного роутинга :

  • Вход a / s (select) может приходить как с M2, так и через М1 по этому альтернативному маршруту
  • Этот маршрут может использоваться просто для прокладки другого роутинга, то есть М1 проходит по всей ячейке, никак на неё не влияя.

Выход с мультиплексора дополнительно нагружается спаренным push/pull инвертором, то есть эта ячейка даёт дополнительный запас по мощности на выходе, чтобы к ней можно было подключать длинные шланги.

Существует также "усиленная" версия мультиплексора:

Mux strong.jpg

Инвертирующий мультиплексор (IMUX)

Отличается от обычного тем, что инвертирует входы.

IMUX.jpg

Также есть более мощная версия, с усиленным инвертором на выходе :

Imux strong.jpg

Таблица истинности:

abc | out
000 | 1
001 | 1
010 | 0
011 | 0
100 | 1
101 | 0
110 | 1
111 | 0

Заметки по топологии

Нижний контакт c имеет специальную площадку, чтобы альтернативно приходить с M2. Но чаще вход приходит по М1 сверху или снизу.

Вход b всегда приходит с M2.

Кстати входы b и c идут на диффузию.

File:Imux circuit.tif

Мультиплексор 3 в 1

400px

Если вход s1 == 1, то на выход идёт in2.

Иначе (s1 == 0) проверяется следующее условие:

  • Если s0 == 0 на выход идёт in0.
  • Если s0 == 1 на выход идёт in1.

Или короче:

sel:
00: out = in0
01: out = in1
1X: out = in2

Мультиплексор 4 в 1

4mux.jpg

Выбирает один провод из 4-х.

s1 s0 | какой входной контакт подать на выход
0  0  | 0
0  1  | 1
1  0  | 2
1  1  | 3

Заметки по топологии

  • Иногда входные контакты 0-3 прикрепляются к земле/питанию (то есть хардкорно устанавливаются в 0/1).
  • Слева и справа есть место для транзитного прохода по М1

File:4mux circuit.tif