Компоненты симулятора
Все 40 элементов симулятора на одной странице: настоящий снимок компонента с холста, короткое описание и ссылка на даташит с таблицей истинности. Возвращайтесь сюда, когда встретили незнакомый элемент схемы.
Помимо палитровых элементов, собранная вами схема может быть свёрнута в пользовательский чип — готовый блок с задержкой распространения, как настоящая микросхема. Первый такой чип-награда — ADDER8, 8-битный сумматор; остальные выдаются за уровни 13–16 и финалы частей.
Базовая логика
| Компонент | Описание | Даташит |
|---|---|---|
NAND (И-НЕ)
|
Универсальный логический элемент. Выдаёт 0 только когда оба входа равны 1, во всех остальных случаях — 1. Из NAND можно собрать любой другой логический элемент: NOT, AND, OR, XOR и даже целый процессор. | → |
NOT (Инвертор)
|
Простейший логический элемент. Переворачивает сигнал: 0 превращает в 1, а 1 — в 0. Часто используется там, где нужен инверсный сигнал. | → |
AND (И)
|
Логическое умножение (конъюнкция). Выдаёт 1 только когда оба входа равны 1, в остальных случаях — 0. Соответствует операции «И»: результат true, только если оба условия true. | → |
OR (ИЛИ)
|
Логическое сложение (дизъюнкция). Выдаёт 1, если хотя бы один из входов равен 1. Только при двух нулях выдаёт 0. Соответствует операции «ИЛИ»: результат true, если хотя бы одно условие true. | → |
XOR (исключающее ИЛИ)
|
Исключающее ИЛИ. Выдаёт 1, когда значения на входах разные (один 0, другой 1). Если оба входа одинаковы — выдаёт 0. Полезен для сравнения битов и в сумматорах. | → |
NOR (ИЛИ-НЕ)
|
Комбинация ИЛИ и НЕ. Выдаёт 1 только когда оба входа равны 0, во всех остальных случаях — 0. Используется как основа для построения RS-триггеров и других схем с памятью. | → |
Арифметика и выбор
| Компонент | Описание | Даташит |
|---|---|---|
Half Adder (Полусумматор)
|
Складывает два бита. Выдаёт сумму (Sum) и перенос (Carry). Не умеет обрабатывать перенос с предыдущего разряда — для этого нужен полный сумматор. Строится из XOR и AND. | → |
Full Adder (Полный сумматор)
|
Складывает три бита: два слагаемых и перенос с предыдущего разряда (CarryIn). Выдаёт сумму (Sum) и перенос (CarryOut). Соединяя несколько полных сумматоров, можно складывать многоразрядные числа. | → |
MUX (Мультиплексор 2→1)
|
Направляет один из двух входных сигналов на выход в зависимости от управляющего сигнала (селектора). Если селектор = 0, на выход проходит первый вход; если = 1 — второй. Работает как цифровой переключатель. | → |
Шины данных
| Компонент | Описание | Даташит |
|---|---|---|
Bus Input (8-битный вход)
|
Позволяет установить числовое значение от 0 до 255 на 8-битной шине данных. Значение задаётся ползунком. Шина объединяет 8 битов в одно число — так удобнее работать с байтами. | → |
Bus Output (8-битный выход)
|
Показывает значение на 8-битной шине в десятичном виде. Удобен для наблюдения за результатами работы схем, оперирующих байтами. | → |
Bus Constant (Константа на шине)
|
Всегда выдаёт заданное значение (0–255) независимо от внешних сигналов. Полезно для подачи постоянных адресов, масок или конфигурационных кодов. | → |
Splitter (Разделитель шины)
|
Принимает 8-битную шину и разделяет её на 8 отдельных битовых сигналов (от младшего к старшему). Позволяет работать с каждым битом байта по отдельности. | → |
Maker (Сборщик шины)
|
Принимает 8 отдельных битовых сигналов (от младшего к старшему) и собирает их в один 8-битный байт. Позволяет собрать число из отдельных битов. | → |
Bus NOT (Шинное НЕ)
|
Побитовое НЕ для шины. Инвертирует каждый из 8 битов независимо: каждый 0 становится 1, каждая 1 становится 0. Применяется для побитового отрицания байта. | → |
Bus AND (Шинное И)
|
Побитовое И для двух 8-битных шин. Каждый бит результата равен 1, только если соответствующие биты обеих входных шин равны 1. Используется для применения битовых масок. | → |
Bus OR (Шинное ИЛИ)
|
Побитовое ИЛИ для двух 8-битных шин. Каждый бит результата равен 1, если хотя бы один из соответствующих битов входных шин равен 1. | → |
Bus XOR (Шинное исключающее ИЛИ)
|
Побитовое XOR для двух 8-битных шин. Каждый бит результата равен 1, если соответствующие биты входных шин различаются. Полезно для сравнения байтов. | → |
Bus MUX (Шинный мультиплексор)
|
Направляет одну из двух 8-битных шин на 8-битный выход по сигналу селектора. Работает как обычный мультиплексор, но переключает целые байты, а не отдельные биты. | → |
Bus SHL (Шинный сдвиг влево)
|
Сдвигает 8-битное значение на один бит влево: каждый бит переходит на позицию старше, старший бит (7) теряется, на место младшего (0) записывается 0. Арифметически это умножение на 2 (по модулю 256). | → |
Bus SHR (Шинный сдвиг вправо)
|
Сдвигает 8-битное значение на один бит вправо: каждый бит переходит на позицию младше, младший бит (0) теряется, на место старшего (7) записывается 0. Арифметически это целочисленное деление на 2. | → |
Bus Zero (Детектор нуля)
|
Проверяет 8-битную шину и выдаёт 1, если на ней ноль (00000000), и 0 — при любом ненулевом значении. Позволяет схеме «видеть» результат вычисления. | → |
Память
| Компонент | Описание | Даташит |
|---|---|---|
DFF (D-триггер)
|
Запоминает один бит данных. Значение на выходе (Q) меняется только в момент положительного фронта тактового сигнала (Clock). Между тактами выход хранит предыдущее значение. Базовый элемент для построения регистров и счётчиков. | → |
Register 8-bit (8-битный регистр)
|
Хранит один байт (8 бит). Записывает новое значение по фронту тактового сигнала. Пока Clock не переключится, регистр сохраняет предыдущее значение. Используется для временного хранения данных в процессоре. | → |
ROM (Постоянное запоминающее устройство)
|
Хранит 256 байт данных, которые не меняются в процессе работы. Адресуется 8-битным адресом (0–255). Содержит программу для процессора или константы. Данные сохраняются даже при выключении питания. | → |
RAM (Оперативное запоминающее устройство)
|
Хранит 256 байт данных, поддерживает запись и чтение. Адресуется 8-битным адресом. Данные временные — теряются при выключении. Используется для хранения переменных и результатов вычислений. | → |
Процессор и управление
| Компонент | Описание | Даташит |
|---|---|---|
Program Counter (Счётчик команд)
|
Хранит адрес текущей выполняемой инструкции. По каждому такту увеличивает своё значение на величину Inc (по умолчанию 1), переходя к следующей инструкции. Важнейшая часть процессора — определяет, какую команду читать из памяти. | → |
Index Register (IX)
|
Индексный регистр для косвенной адресации. Хранит 8-битный адрес, который можно использовать для доступа к массивам в RAM. Увеличивается на 1 по фронту Clock при Inc=1. Загружает данные с шины при WE=1. | → |
Addr Decoder (ADEC)
|
Дешифратор адреса. Определяет, принадлежит ли адрес оперативной памяти (0x00–0xDF) или устройствам ввода-вывода (0xE0–0xFF). Формирует сигналы для разграничения доступа к RAM и I/O-устройствам. | → |
LFSR (Генератор случайных чисел)
|
Linear Feedback Shift Register — генератор псевдослучайных чисел на 8 бит. Полином: x^8 + x^6 + x^5 + x^4 + 1. Сдвигается по каждому фронту Clock. Читается через порт 0xFA (DevAddr=0x1A). | → |
Decoder (Дешифратор команд)
|
Разбирает 8-битную инструкцию на два поля: старшие 4 бита — код операции (opcode), младшие 4 бита — операнд. По коду операции формирует 9 управляющих сигналов, которые включают нужные блоки процессора: запись в регистр, чтение RAM, выбор операции АЛУ, переход. | → |
ALU 8-bit (Арифметико-логическое устройство)
|
Выполняет 8 операций над двумя 8-битными числами: ADD (сложение), SUB (вычитание), AND, OR, XOR, NOT, SHL (сдвиг влево), SHR (сдвиг вправо). Операция выбирается управляющим сигналом. Сердце любого процессора. | → |
Тактовый генератор
|
Вырабатывает периодический сигнал, переключающийся между 0 и 1 с заданной частотой. Используется для синхронизации работы последовательных схем: регистров, счётчиков, памяти и всего процессора. | → |
Manual Clock (Ручной такт)
|
Ручной генератор тактового сигнала. При каждом нажатии кнопки «▶ Tick» выдаёт полный тактовый импульс (0→1→0) на выходе Tick. Используется для пошагового ручного тактирования схемы. | → |
Ввод/вывод и периферия
| Компонент | Описание | Даташит |
|---|---|---|
Вход
|
Источник сигнала. Позволяет вручную переключать значение между 0 и 1. Используется как входной порт схемы — через него таблица истинности подаёт тестовые значения на схему. | → |
Выход
|
Приёмник сигнала. Показывает текущее значение (0 или 1) на своём входе. Используется как выходной порт схемы — по его значению проверяется правильность работы. | → |
Gamepad (Геймпад)
|
4-кнопочный геймпад (Up/Down/Left/Right) для управления схемой и программами. Адресуется через порт 0xFE (DevAddr=0x1E). Возвращает битовую маску нажатых кнопок. | → |
Matrix Display 16x16
|
Матричный дисплей 16×16 пикселей для вывода графики. Адресуется через три порта: 0xFC (установка X-координаты), 0xFD (установка Y-координаты), 0xFF (запись пикселя). | → |
Дисплей
|
Показывает числовое значение на входе в десятичном, двоичном или шестнадцатеричном формате. Переключение между режимами — кликом по дисплею. Незаменим для отладки и визуализации работы схем. | → |
LED8 (Светодиодная линейка)
|
Визуальный индикатор 8 бит. Каждый бит входной шины DataIn отображается отдельным светодиодом: горящий = 1, погашенный = 0. Позволяет видеть значение регистра в двоичном виде. | → |







































