bitlvl
RU

Gate Lab

Каждый уровень даёт входы, выходы и таблицу истинности. Добавляйте элементы из палитры, перетаскивайте их, соединяйте выходы со входами и наблюдайте, как сигналы обновляются вживую. Когда каждая строка таблицы совпадает, уровень пройден; настоящая цель — использовать меньше элементов, чем пар.

 

Нажмите на входной переключатель, чтобы переключить его. Тяните от выходного пина (правая сторона элемента) к входному пину (левая сторона). Нажмите на провод, чтобы удалить его; выберите элемент и нажмите Delete.

Результаты и сообщения этого инструмента выводятся на английском языке.

Чему учат уровни

  1. Базовые элементы. NOT, AND, OR как одиночные элементы — чтобы освоить редактор.
  2. NAND универсален. NOT из одного NAND, AND из двух, OR из трёх (де Морган), XOR из четырёх. Любую когда-либо построенную цифровую схему можно собрать из одних NAND; CMOS-чипы состоят в основном из NAND и NOR, потому что это самые дешёвые элементы по числу транзисторов.
  3. Арифметика. Полусумматор (XOR для суммы, AND для переноса), затем полный сумматор, принимающий ещё и входной перенос, затем два таких, соединённых в 2-битный сумматор. Сумматор 64-битного процессора — та же идея 64 раза плюс приёмы для ускорения переноса.
  4. Выбор и сравнение. Мультиплексор (1-битный «if»), мажоритарная функция (снова функция переноса) и равенство (XNOR по битам, AND по всем).

Как читать редактор

Провода несут 0 (серый) или 1 (синий). Входной пин без подключения читается как 0 и помечается, поэтому незаконченная схема никогда не проходит случайно. Таблица истинности справа перечисляет каждую комбинацию входов; ожидаемые столбцы задаются уровнем, фактические — вашей схемой, пересчитываемой по мере сборки. Петли (элемент, питающий сам себя) сообщаются, а не симулируются: эти головоломки — комбинационная логика, где выход зависит только от текущих входов.

Обозначения элементов

ЭлементВыход равен 1, когдаОбозначение
NOTвход равен 0треугольник с кружком
ANDвсе входы равны 1плоская задняя сторона, скруглённая передняя (форма D)
ORхотя бы один вход равен 1изогнутая задняя сторона, заострённая передняя
XORровно один вход равен 1 (нечётное число)OR со второй дугой сзади
NAND / NOR / XNORпротивоположность AND / OR / XORта же форма с кружком на выходе

Вопросы

Как соединить два элемента?

Нажмите на маленький кружок на правой стороне элемента (его выход) и тяните к кружку на левой стороне другого элемента (вход). Отпустите, чтобы соединить. Входной пин принимает один провод; выход может питать много входов.

Как что-нибудь удалить?

Нажмите на провод, чтобы удалить его. Нажмите на элемент, чтобы выбрать его, и нажмите Delete или Backspace, либо перетащите его на палитру. «Сбросить уровень» очищает всё, кроме входов и выходов.

Моя схема сохраняется?

Да, для каждого уровня, в локальном хранилище вашего браузера; ничего не загружается на сервер. Очистка данных сайта удаляет её.

Можно ли использовать больше двух входов на элемент?

В песочнице есть AND3 и OR3. Уровни намеренно ограничивают палитру; соединение двух 2-входовых элементов — часть упражнения.

Что такое пар?

Число элементов в известном минимальном решении с разрешёнными элементами. Сравняться с ним хорошо; побить его было бы новостью.