Экспорт и импорт таблиц истинности
Функциональные кнопки Импортировать таблицу и Экспортировать таблицу предназначены для сохранения текущей конфигурации таблицы истинности во внешний текстовый файл и её последующей обратной загрузки в проект.
Данные сохраняются в виде простого неформатированного текста (plain text), классическая структура которого выглядит следующим образом (на примере полного сумматора):
a b c_in | s c_out ~~~~~~~~~~~~~~~~~~ 0 0 0 | 0 0 0 0 1 | 1 0 0 1 0 | 1 0 0 1 1 | 0 1 1 0 0 | 1 0 1 0 1 | 0 1 1 1 0 | 0 1 1 1 1 | 1 1
При ручном редактировании или программной генерации файла импорта необходимо соблюдать следующие правила синтаксиса:
- Символ решетки (#) обозначает начало комментария; весь текст после него и до конца текущей строки игнорируется парсером.
- Пустые строки, а также декоративные строки-разделители (например, состоящие из символов тильды ~~~~~~ или дефисов), автоматически пропускаются.
- Имена переменных (заголовки столбцов) должны соответствовать правилам строгих идентификаторов: состоять исключительно из латинских букв, цифр и символов подчеркивания, не содержать пробелов. Символ вертикальной черты (|) используется для явного визуального отделения входных переменных от выходных.
- Синтаксис вида Name[N..0] применяется для объявления многоразрядной шины шириной N+1 бит. Простое имя без индексов (например, Name) по умолчанию обозначает одноразрядную (однобитную) переменную.
- Символы x или - используются для обозначения неопределённых логических состояний («безразлично» / don't care) как для входных, так и для выходных битов.
- Для многоразрядных переменных поддерживается как классическая двоичная запись (например, 10100011xxxx), так и компактная шестнадцатеричная (например, C3x). Встроенный алгоритм Logisim-evolution распознаёт основание системы счисления автоматически.
Механизм экспорта-импорта позволяет выгрузить таблицу, обработать её с помощью внешних программных средств (например, скриптов на Python или макросов в табличных процессорах), а затем загрузить обратно в САПР. Это исключительно мощный инструмент при проектировании сложных цифровых автоматов с большим числом состояний.