Разделитель шины (Splitter)

Входы (Inputs)

ПинТипОписание
INbus88-битная шина

Выходы (Outputs)

ПинТипОписание
Bit0bitБит 0 (младший, вес 1)
Bit1bitБит 1 (вес 2)
Bit2bitБит 2 (вес 4)
Bit3bitБит 3 (вес 8)
Bit4bitБит 4 (вес 16)
Bit5bitБит 5 (вес 32)
Bit6bitБит 6 (вес 64)
Bit7bitБит 7 (старший, вес 128)

Логика работы

Шина — это восемь проводов, упакованных в один жгут. Удобно таскать байт целиком, но иногда с каждым проводом нужно работать поодиночке — и тут помогает Splitter. Это как разъём-гребёнка: входной жгут раскладывается на восемь отдельных проводков, и каждый бит байта становится самостоятельным сигналом.

Главное свойство: у каждого выходного провода есть вес, равный весу бита. Bit0 — младший бит (вес 1), Bit1 — вес 2, и так далее до Bit7 со весом 128. Подай на вход 10101010 (170) — и единицы появятся на Bit7, Bit5, Bit3 и Bit1. Сложи веса этих битов: 128 + 32 + 8 + 2 = 170. Splitter ничего не «заменяет» — он просто показывает, из чего собран байт.

Нюанс: это чистая коммутация, внутри нет ни одного вентиля, и Splitter не может ничего вычислить или испортить. Опасность только одна — перепутать веса. Если провод, который должен идти на Bit0, подключить к Bit7, значение изменится в 128 раз: 00000001 (1) превратится в 10000000 (128).

Примеры

Вход (dec)Вход (bin)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
1701010101010101010
150000111100001111
1281000000010000000
2001100100011001000

Последняя строка — типичная задача из процессора: из байта команды 200 (11001000) старшие четыре бита дают код операции 12, а младшие — операнд 8.

Применение

На уровне 8 Splitter работает в паре с Maker: он разбирает шины A и B на отдельные биты, чтобы их складывала цепочка Full Adder, а собранные биты суммы Maker возвращает в шину. В процессоре его главная роль — разбор команды: байт из ROM делится на старшие четыре бита (код операции) и младшие четыре (операнд), которые расходятся по декодеру.

Конкретные приёмы: проверка чётности — достаточно одного младшего бита с Bit0; чтение геймпада — каждая кнопка занимает свой бит шины, и Splitter выводит их на отдельные схемы; снятие флагов и управляющих сигналов для визуальной отладки через LED8 или Display. Везде, где байту нужно «вскрытие», начинается оно со Splitter.

Собери это сам →

Смежные компоненты

Статьи по теме

Частые вопросы

Зачем разбивать шину на биты?

Чтобы взять отдельные биты байта — например, проверить младший бит или подать биты на разные входы.

Как получить код операции из байта команды?

Splitter раскладывает байт, биты 4–7 собираются через Maker в код операции, а биты 0–3 — в операнд. Именно так питается декодер команд процессора.

Что будет, если перепутать веса битов?

Число исказится: сигнал, поданный на Bit7 вместо Bit0, изменит значение в 128 раз — 00000001 (1) станет 10000000 (128). Всегда сверяй вес бита перед подключением.