Библиотека
Материалы к курсу — от первого провода до ассемблера.
Содержание
- Гайды по уровням — пошаговые прохождения 29 заданий
- Руководства по компонентам — даташиты всех элементов
- Статьи по схемотехнике — теория и концепции
Гайды по уровням
Пошаговые описания заданий и решений для каждого из 29 уровней.
- 1. Да будет свет!
- 2. Отрицание
- 3. Идеальная пара
- 4. Хотя бы один
- 5. Строгий выбор
- 6. Полусумматор
- 7. Сумматор
- 8. 8-битный Сумматор
- 9. Перекрёсток
- 10. Замыкание
- 11. Умный запоминатель
- 12. Осязаемая память
- 13. Выбор операции
- 14. Сердце математики
- 15. Пульс системы
- 16. Счётчик команд
- 17. Анатомия дешифратора
- 18. ФИНАЛ: Компьютер Ершова
- 19. Шаг вперёд (PC+2)
- 20. Двойное чтение
- 21. Указатели
- 22. Конфликт на шине
- 23. Геймпад
- 24. Ручной пиксель
- 25. Проверка на минус
- 26. Бросок кубика
- 27. Hello, Ports!
- 28. Движущаяся точка
- 29. ФИНАЛ: Змейка
Руководства по компонентам
Базовая логика
- NAND (И-НЕ) — универсальный логический элемент, таблица истинности
- NOT (Инвертор) — простейший логический элемент, инверсия сигнала
- AND (И) — логическое умножение, маскирование битов
- OR (ИЛИ) — логическое сложение, объединение условий
- XOR (Искл. ИЛИ) — контрольный инвертор, основа сумматоров
- NOR (ИЛИ-НЕ) — основа RS-триггеров, универсальный элемент
Арифметика и маршрутизация
- Half Adder — полусумматор, сложение двух битов
- Full Adder — полный сумматор, ripple-carry цепочка
- ADDER8 — 8-битный сумматор, награда уровня 8
- ALU8 — 8 операций: ADD, SUB, AND, OR, XOR, NOT, SHL, SHR
- MUX (2→1) — мультиплексор, цифровой переключатель
- BusMUX — шинный мультиплексор, выбор целого байта
- Splitter — разделитель шины на 8 битов
- Maker — сборщик 8 битов в шину
- BusNOT — побитовое НЕ, дополнение до 255
- BusAND — побитовое И, защита от конфликтов на шине
- BusOR — побитовое ИЛИ, установка битов
- BusXOR — побитовое XOR, сравнение и toggle
- BusSHL — сдвиг влево, умножение на 2
- BusSHR — сдвиг вправо, деление на 2
- BusZero — детектор нуля на шине
Память и состояние
- DFF (D-триггер) — запоминание бита по фронту Clock
- Register8 — 8-битный регистр, аккумулятор процессора
- IndexRegister (IX) — индексный регистр, косвенная адресация
- RAM (256 байт) — оперативная память, чтение и запись
- ROM (256 байт) — постоянная память, хранение программы
Периферия (Memory-Mapped I/O)
- MatrixDisplay 16×16 — матричный дисплей, порты 0xFC/0xFD/0xFF
- Gamepad — 4-кнопочный геймпад, порт 0xFE
- LFSR (ГСЧ) — генератор случайных чисел, порт 0xFA
- LED8 — светодиодная линейка, визуализация байта
- Manual Clock — ручной тактовый генератор
Процессор и управление
- Clock — тактовый генератор, синхронизация схем
- Display — дисплей dec/bin/hex, отладка
- ProgramCounter — счётчик команд, +Inc за такт
- Decoder — дешифратор команд, 9 управляющих сигналов
- AddrDecoder — дешифратор адреса, RAM vs I/O
- Ассемблер — архитектура, система команд, синтаксис, отладка
Статьи по схемотехнике
- Введение в схемотехнику
- 0 и 1: На каком языке говорят машины
- Логические вентили И, ИЛИ, НЕ
- Законы де Моргана: Как собрать схему из того, что есть
- Исключающее ИЛИ (XOR)
- Двоичная математика для начинающих
- Анатомия сумматора
- Информационные магистрали (Шины)
- Мультиплексор: электронный стрелочник
- АЛУ: Сердце математики
- Магия обратной связи
- Тактовый генератор и D-триггер
- Регистры: первый байт памяти
- Гарвардская архитектура: Разделяй и властвуй
- Счётчик команд (Program Counter)
- Дешифратор инструкций: Переводчик процессора
- Конфликты на шине и адресное пространство
- Memory-Mapped I/O: Гениальный обман процессора
- Флаги состояния: Как процессор понимает мир
- Ассемблер: самый честный язык программирования
- Указатели и индексные регистры (IX)
- Ветвления и циклы (JZ, JN, JMP)
- Временна́я диаграмма: как читать поведение схемы