Уровень 13: Выбор операции

Открыть уровень →Где это в машине →

Задание

Постройте селектор операций. BusMUX выбирает результат: ADD, AND или OR на основе OpSelect.

Постройте селектор, который выбирает одну из трёх арифметических операций.

Главная идея уровня: процессор выполняет много операций на одних и тех же проводах, и разводит результаты мультиплексор: код OpSelect решает, чей результат попадёт на выход. Приёмник один — источников много.

Материалы по теме

Решение для самопроверки

Сначала попробуйте собрать схему сами. Решение ниже — способ свериться, если застряли или уже справились.

На холсте уже предустановлены три вычислителя: ADDER8 (сложение), BusAND (побитовое И), BusOR (побитовое ИЛИ). Они подключены к входам A и B — каждая операция вычисляется параллельно.

Ваша задача: выбрать правильный результат через каскад мультиплексоров. Управляющий сигнал OpSelect: 0=сложение, 1=И, 2=ИЛИ.

Шаг 1: Разберите OpSelect через Splitter на биты. Бит 0 будет выбирать между ADD и AND, бит 1 — добавлять OR в цепочку.

Шаг 2: Поставьте первый BusMUX: - Вход A = выход ADDER8 (сложение). - Вход B = выход BusAND (И). - Селектор = Splitter.Bit0. Когда OpSelect=0 → Bit0=0 → проходит ADDER8. Когда OpSelect=1 → Bit0=1 → проходит BusAND.

Шаг 3: Поставьте второй BusMUX: - Вход A = выход первого BusMUX. - Вход B = выход BusOR (ИЛИ). - Селектор = Splitter.Bit1. Когда OpSelect=2 → Bit1=1 → проходит BusOR.

Выход второго BusMUX — это Result.

Схема решения уровня 13 — Выбор операции
Авторское решение уровня 13 в симуляторе (тёмная тема)