Перед началом
Это первая глава набора «Game & Watch из транзисторов». Мы пройдём путь от одной светящейся цифры до настоящих электронных часов ЧЧ:ММ — с мигающим двоеточием и установкой времени. Всё собирается руками, из логических вентилей, в браузерном симуляторе, на сегментном ЖК-экране — как у карманных игр Nintendo и часов CASIO 80-х.
Часы — не цель, а разминка. На них отрабатывается всё, что дальше понадобится игре: дешифратор цифр, память, счётчики, перенос, разрешение счёта, детектор нажатия кнопки, работа с настоящим временем.
Что соберём в итоге
Вот к чему ведёт набор — игра «Звёздный урожай» (рабочее название) с часами в углу, как у настоящих Game & Watch. Попробуй прямо здесь:
Космонавт на станции ловит кристаллы, которые выкатываются из четырёх труб. Каждая кнопка сразу ставит его к своей трубе: Q / A — левые трубы (верх / низ), P / L — правые, пробел или START — новая игра. Пропустил кристалл — промах, три промаха — конец игры. Чем больше очков, тем быстрее катятся кристаллы, а пока в иллюминаторе видна комета, каждый кристалл даёт два очка. Часы в левом углу — это машина этой главы.
Здесь игра работает как программа — это модель, такт за тактом повторяющая будущую схему. В наборе та же машина собирается из вентилей: экран, часы, счётчики очков, сдвиговые регистры труб, генератор случайности, зуммеры — всего около 8–9 тысяч транзисторов. Глава 1 — первая её половина: часы.
Что нужно знать заранее: ничего, кроме школьной арифметики. Двоичные числа, логические вентили и память объясняются по ходу.
Как читать: уроки идут строго по порядку, каждый продолжает предыдущий. В каждом уроке — объяснение, вывод формул и таблицы сборки: по ним схема ставится на холст элемент за элементом. В конце урока — проверка и текст для вставки Cmd+I, если хочется собрать урок одним движением.
Симулятор за пять минут
Первая лампочка
Откройте cs.khanin.info — это и есть наш симулятор. Пять минут руками, прежде чем читать дальше:

- 1 Power — питание: включает и выключает схему
- 2 Export / Import — сохранить проект в файл и открыть его
- 3 движок: Real — каждый транзистор, Fast — быстрее; Turbo — для процессоров, в этом наборе не нужен
- 4 палитра деталей; буква под кнопкой — клавиша (V, G, I, K, N, O, L…)
- 5 холст — сюда ставим детали
- 6 библиотека: здесь появятся ваши чипы (Ctrl+G); процессоры 6502 — для других наборов
- Источник единицы. Нажмите
Vи кликните по холсту — появитсяVCC, источник 1 («плюс батарейки»). - Транзистор. Нажмите
Nи кликните рядом. У транзистора три ноги: затвор слева, верх и низ. Буква на корпусе —N; если тамP, кликните по корпусу. - Лампа и тумблер.
O— лампа,I— тумблер. - Провода. Тяните мышью от ноги к ноге:
VCC→ верх транзистора, низ → лампа, тумблер → затвор. - Включите питание — кнопка Power, первая слева на верхней панели, — и щёлкайте по тумблеру. Тумблер 1 — лампа горит, 0 — гаснет. Транзистор — это выключатель, которым управляет сигнал. Из таких выключателей собрано всё в этом наборе, вплоть до игры.
- Метки вместо проводов. Удалите провод от тумблера к затвору (клик по проводу и
Delete). НажмитеL, поставьте метку и соедините её проводом с ногой тумблера; назовите еёA(двойной клик по метке — переименовать). Вторую меткуAсоедините с затвором. Работает, как с проводом: метки с одинаковым именем соединены. На этом держатся все таблицы сборки набора. - Сохраните: кнопка Export на верхней панели.

тумблер 0 — лампа не горит, провод к ней «висит» (янтарный пунктир)

тумблер 1 — транзистор проводит, путь зелёный, лампа горит

Заметили, что при выключенном тумблере провод к лампе стал янтарным пунктиром? Лампа в этот момент ни к чему не подключена — «висит». Здесь это не страшно, но в больших схемах так нельзя. В уроке 0 мы увидим, как пара транзисторов N и P решает эту проблему.
Не горит? Не включено питание (кнопка на панели); перепутаны верх и низ транзистора; на корпусе P вместо N — клик по корпусу меняет тип.
Главное о симуляторе
Холст и палитра. Слева — палитра деталей, справа — библиотека чипов. Сначала она пустая: всё, что вы соберёте и свернёте в чип, появится там; базовые вентили NOT, NAND, NOR, AND, OR, XOR вы соберёте из транзисторов в уроке 0. Деталь ставится кликом по холсту. Полезные клавиши: I — тумблер (Input), K — генератор (Clock), L — метка, [ / ] — порт входа / выхода чипа, U — кнопка, V / G — питание / земля.
Метки вместо проводов. Метка — это имя сигнала. Все метки с одинаковым именем соединены, даже если между ними нет провода. Поэтому в таблицах сборки написано не «провод отсюда туда», а «на эту ногу — метку X». Провода тоже можно тянуть: от ноги к ноге мышью.
Как читать таблицу сборки. Одна строка — одна деталь. Слева — что подаётся на её входы, справа — какую метку получает её выход:
| Элемент | Входы | Выход |
|---|---|---|
| AND | D0, D1 | D0D1 |
означает: поставить вентиль AND, на два входа — метки D0 и D1, на выход — метку D0D1. У чипов с названиями ног пишется ИМЯ=метка: CNT10E с CLK=CLK, RST=tRST — на ногу CLK метка CLK, на ногу RST метка tRST.
Чипы. Готовый кусок схемы сворачивается в чип: поставить порты ([ вход, ] выход), назвать их, выделить всё и нажать Ctrl+G. Чип появляется в библиотеке, и его можно ставить сколько угодно раз. Двойной клик по чипу — заглянуть внутрь, кнопка Edit — исправить (меняются сразу все его копии).

внутри чипа NOT (двойной клик по чипу): порты, транзисторы P и N, VCC, GND

чип NOT на холсте: на входе 0 — лампа на выходе горит
Питание и движки. Кнопка питания — слева на верхней панели. Движок (тоже на панели): Real считает каждый транзистор — точно, но медленно; Fast — по вентилям, гораздо быстрее. Для проверки схемы годятся оба.
Генератор (Clock). Клик по корпусу меняет частоту: 1Hz, 2Hz, 10Hz, 60Hz — реальное время (ровно столько тактов в секунду, для часов и игр) и 4kHz … 64kHz, MAX — быстрые, для процессоров.
Сегментный ЖК (Segment LCD). Экран из нарисованных сегментов; каждый сегмент — отдельная нога (1 — виден). Шестерёнка ⚙ на корпусе открывает редактор: готовые цифры-штампы, выделение палочкой, превращение сегмента в ногу (Enter — New pin).
Проверка. Клавиша T — таблица истинности выделенного чипа (для схем без памяти). Клавиша W — осциллограф: показывает, как меняются сигналы во времени; помогает найти, где ошибка.
Вставка текстом (Cmd+I, на Windows — Ctrl+I). Схему можно не собирать руками, а вставить готовым текстом — он есть в конце каждого урока. Но смысл набора — собрать самому: вставка нужна, чтобы сверить себя или догнать пропущенный урок. (Так же Ctrl+G на Mac можно нажимать и как Cmd+G.)

- 1 сюда вставьте текст из конца урока (кнопка «копировать» над ним)
- 2 Apply — схема появится на холсте, чипы — в библиотеке
- 3 Load file — то же из файла
Экспорт. Кнопка Export на верхней панели сохраняет проект в файл — делайте это после каждого урока.