Что такое Logisim. Как использовать Logisim для создания цифровых схем. Какие возможности предоставляет Logisim. Где применяется Logisim. Как установить и начать работу с Logisim.
Что такое Logisim и для чего он используется
Logisim — это мощный и удобный инструмент для проектирования и моделирования цифровых логических схем. Он предоставляет графический интерфейс, позволяющий легко создавать схемы из базовых логических элементов и более сложных компонентов.
Основные возможности Logisim:
- Создание схем с помощью графического редактора
- Библиотека стандартных логических элементов и более сложных компонентов
- Моделирование работы схем в реальном времени
- Анализ временных диаграмм
- Иерархическое проектирование с использованием подсхем
- Экспорт схем в различные форматы
Logisim широко используется в образовательных целях для изучения основ цифровой логики и архитектуры компьютеров. Его простой интерфейс позволяет студентам быстро освоить базовые концепции, а расширенные возможности дают возможность создавать достаточно сложные проекты.
Ключевые особенности и преимущества Logisim
Logisim обладает рядом важных преимуществ, которые делают его отличным выбором для проектирования цифровых схем:
- Интуитивно понятный графический интерфейс
- Моделирование в реальном времени по мере создания схемы
- Обширная библиотека готовых компонентов
- Возможность создания пользовательских компонентов
- Поддержка иерархического проектирования
- Анализ временных диаграмм
- Кроссплатформенность (Windows, macOS, Linux)
- Открытый исходный код
Эти особенности делают Logisim мощным, но при этом доступным инструментом как для начинающих, так и для опытных разработчиков цифровых схем.
Основные компоненты и элементы в Logisim
Logisim предоставляет обширную библиотеку стандартных компонентов для создания цифровых схем:
Базовые логические элементы:
- И (AND)
- ИЛИ (OR)
- НЕ (NOT)
- Исключающее ИЛИ (XOR)
Элементы памяти:
- D-триггер
- JK-триггер
- T-триггер
- Регистры
Арифметические компоненты:
- Сумматоры
- Компараторы
- Мультиплексоры/демультиплексоры
Устройства ввода/вывода:
- Кнопки и переключатели
- Светодиоды
- Семисегментные индикаторы
Кроме того, пользователи могут создавать собственные компоненты на основе более простых элементов.
Создание и моделирование схем в Logisim
Процесс создания схем в Logisim достаточно прост и интуитивно понятен:
- Выберите нужные компоненты из библиотеки
- Разместите их на рабочей области
- Соедините компоненты проводниками
- Настройте параметры компонентов при необходимости
- Запустите симуляцию для проверки работы схемы
Logisim позволяет моделировать работу схемы в реальном времени. Вы можете изменять входные сигналы и наблюдать, как меняются выходные значения. Это очень удобно для отладки и анализа работы схемы.
Для более сложных проектов Logisim поддерживает иерархическое проектирование. Вы можете создавать подсхемы и использовать их как компоненты в других схемах, что значительно упрощает разработку больших проектов.
Применение Logisim в образовании и проектировании
Logisim широко используется в образовательных учреждениях по всему миру для обучения основам цифровой логики и архитектуры компьютеров. Вот некоторые примеры его применения:
- Изучение базовых логических операций и схем
- Проектирование комбинационных и последовательностных схем
- Разработка арифметико-логических устройств (АЛУ)
- Создание простых процессоров и компьютерных архитектур
- Моделирование работы памяти и устройств ввода-вывода
Благодаря своей простоте и функциональности, Logisim позволяет студентам быстро перейти от теории к практике, создавая работающие цифровые схемы.
Кроме того, Logisim используется и в реальных проектах для быстрого прототипирования и тестирования идей перед реализацией на аппаратном уровне.
Установка и начало работы с Logisim
Установка Logisim очень проста:
- Скачайте последнюю версию Logisim с официального сайта
- Распакуйте архив в удобное место на вашем компьютере
- Запустите файл logisim.jar
Для работы Logisim требуется установленная Java Runtime Environment (JRE). Если у вас еще нет JRE, скачайте и установите ее с официального сайта Java.
После запуска Logisim вы увидите главное окно программы с пустой рабочей областью. Чтобы начать создание схемы:
- Выберите компоненты из библиотеки слева
- Разместите их на рабочей области
- Соедините компоненты, кликая и перетаскивая от выхода одного компонента к входу другого
- Используйте инструменты на панели сверху для выбора, перемещения и удаления элементов
Не забудьте сохранять свой проект регулярно, чтобы не потерять результаты работы.
Продвинутые возможности и техники в Logisim
Помимо базовых функций, Logisim предлагает ряд продвинутых возможностей для более сложных проектов:
Анализ комбинационных схем
Logisim может автоматически генерировать таблицы истинности для комбинационных схем, что очень полезно для анализа и оптимизации.
Временные диаграммы
Для анализа работы последовательностных схем Logisim предоставляет инструмент построения временных диаграмм. Это позволяет визуально отслеживать изменение сигналов во времени.
Пользовательские библиотеки
Вы можете создавать собственные библиотеки компонентов, что особенно полезно при работе над большими проектами или при обучении студентов.
Экспорт схем
Logisim позволяет экспортировать схемы в различные форматы, включая изображения и HDL-описания, что упрощает документирование проектов и их реализацию на реальном оборудовании.
Освоение этих продвинутых техник позволит вам максимально эффективно использовать возможности Logisim в ваших проектах.
Сообщество Logisim и ресурсы для обучения
Вокруг Logisim сформировалось активное сообщество пользователей и разработчиков. Вот несколько ресурсов, которые могут быть полезны для изучения программы и решения возникающих вопросов:
- Официальная документация Logisim — подробное руководство по всем возможностям программы
- Форумы Logisim — место, где можно задать вопросы и обсудить проблемы с другими пользователями
- YouTube-туториалы — множество видеоуроков по работе с Logisim
- Университетские курсы — многие учебные заведения публикуют свои материалы по работе с Logisim в открытом доступе
Участие в сообществе Logisim может значительно ускорить процесс обучения и помочь в решении сложных задач проектирования цифровых схем.
Проектирование процессора Logisim / Хабр
Часть I
Часть II
Часть III
Часть IV
Часть V
Одна из глав книги «Код» Чарльза Петцольда посвящена проектированию блоков CPU и в начале главы описывается устройство, позволяющие суммировать наборы чисел, хранящихся в памяти. Спроектируем похожую схему в Logisim. Возьмем набор восьмиразрядных чисел и подключим его к мультиплексору, переход от одного числа к другому будем осуществлять с помощью счетчика, подключенного к выбирающему входу мультиплексора, а к выходу мультиплексора подключим сумматор и аккумулятор. В качестве тактового генератора будем использовать кнопку. Данные будут загружаться в аккумулятор при отпускании кнопки. Это осуществляется с помощью элемента НЕ, подключенного к кнопке. Про реализацию этих функциональных блоков в виде отдельных микросхем далее в статье.
Будем хранить числа в ОЗУ (RAM).
ОЗУ можно представить в виде набора регистров, доступ к которым производится с помощью демультиплексора и мультиплексора (DMX и MUX).
Гарвардская архитектура
Предположим, в ОЗУ хранится набор чисел, а нам нужно сложить все числа и сохранить результат (в свободную ячейку). Будем хранить команды («сложить» и «сохранить») в одном ОЗУ, а обрабатываемые числа — в другом. Такой способ хранения является отличительным признаком Гарвардской архитектуры.
Команда «1» будет записывать число из сумматора в аккумулятор, команда «2» будет записывать число из аккумулятора во 2-ое ОЗУ.
Предположим, в ОЗУ хранятся несколько массивов чисел. Т.е. нам необходимо
- загружать числа из ОЗУ в аккумулятор
- загружать числа из сумматора в аккумулятор
- сохранять числа из аккумулятора в ОЗУ
Будем использовать для выборки данных из ОЗУ мультиплексор MUX.
Новая инструкция «5» по переднему фронту тактового генератора переключает мультиплексор MUX, а по заднему фронту (по спаду) производит запись в аккумулятор.
Архитектура фон Неймана
Далее, будем хранить инструкции и данные в одном ОЗУ. Такой способ хранения является отличительным признаком архитектуры фон Неймана.
В первых четырех разрядах восьмиразрядной ячейки памяти будет храниться команда, во вторых четырех разрядах будет храниться адрес (прямая адресация).
Будем загружать адрес и команду в отдельные регистры, а затем с помощью мультиплексора переходить по сохраненному адресу. Для записи данных в ОЗУ будем сначала загружать данные во временный регистр Temp (иначе в ОЗУ запишутся инструкции, а не данные), а потом в аккумулятор Асс. Запись данных в Temp и Асс будем производить по заднему фронту.
Будем складывать, например, числа 2 и 3, которые лежат в ячейках 8 и 9, а сохранять результат в ячейку с адресом a.
Добавим также возможность совершать безусловные переходы.
Реализуем устройство, в котором будет выполняться всего одна команда — команда безусловного перехода. Для этого на счетчик, генерирующий адрес, будем отправлять четыре младших разряда (собственно, адрес), а на порт загрузки будем подавать команду, хранящуюся в старших разрядах ячейки памяти.
Например, для прыжка в ячейку с адресом 2 используется команда 82.
Добавим команду безусловного перехода в предыдущую схему.
Вообще, на geektimes уже была статья, посвященная проектированию CPU в Logisim.
Все схемы, представленные выше, можно скачать одним файлом.
Logisim можно скачать здесь.
Терминал
Добавим к схеме терминал для демонстрации того, как ассемблерные инструкции преобразуются в машинный код.
Добавим конечный автомат для обработки последовательностей поступающих символов.
Семизначный код буквы «i» равняется 1101001
Семизначный код буквы «n» равняется 1101110
Семизначный код буквы «p» равняется 1110000
Для выделения конкретной буквы из потока символов будем использовать компаратор. В начальном состоянии компаратор сравнивает поступивший символ с семизначным кодом буквы «i»
Автомат переходит в следующее состояние, если после буквы «i» поступает буква «n»
Автомат переходит в следующее состояние, если после букы «i», а затем «n» поступает буква «p»
Добавим команду out
Подробнее о командах inp и out можно прочитать в следующей части.
Железо
Рассмотрим, как работает сумматор на примере микросхемы 155им3 (7483). Для микросхем 155-й серии условимся, что на входах есть внутренний резистор, подтягивающий к плюсу (если ножка «висит в воздухе», то на ней присутствует логическая «единица»), поэтому при подключении питания к микросхеме зажгутся все светодиоды, присоединенные к выходу.
На картинке представлена МС 74ls283 (современный аналог 155им3).
Для того, чтобы в Logisim спроектировать такую микросхему, необходимо выбрать «Меню» — «Проект» — «Добавить схему».
Вот как эта МС выглядит внутри подсхемы. Это четыре полусумматора, объединённые в полный сумматор.
В качестве аккумулятора будем использовать микросхему 155тм8 (74175) — счетверённый D-триггер.
Триггеры, входящие в состав МС, пропускают насквозь всё время, пока на входе синхронизации присутствует 1, а не только по фронту (триггеры со статическим управлением), но в программе Logisim нам доступны только триггеры с динамическим управлением, но в данном случае это не важно; будем использовать то, что есть.
Подробнее про триггеры можно прочитать в Википедии.
Соберём из D-триггеров модель МС 155тм8.
Далее соберём схему, позволяющую складывать наборы чисел.
Например, если сложить набор из чисел 2 (0010), мы получим 2 (0010), 4 (0100), 6 (0110) и т.д.
Сперва 2 появляется на выходе сумматора (красные светодиоды), затем 2 загружается в счетверенный D-тригер (желтые светодиоды), а на выходе сумматора появляется 4, затем 4 загружается в 155тм8, а на выходе сумматора появляется 6 и т. д.
Для того, чтобы спроектировать простой модуль памяти, нам понадобится мультиплексор. Спроектируем сдвоенный мультиплексор 155кп2.
Также нам понадобится счетчик. Спроектируем микросхему 155ие5.
Это четырехразрядный счетчик, но нам понадобится только два младших разряда.
Будем хранить числа, например, 2 (0010), 3 (0011), 5 (0101).
Объединим все компоненты в одну схему. Будем складывать числа, которые хранятся в «памяти»
2 + 3 + 5.
Logisim можно скачать здесь.
P.S. Статья про книгу «Код. Тайный язык информатики.» есть на Хабре вот здесь.
З.Ы. Переводные статьи (автор переводов PatientZero) про архитектуру процессора здесь, здесь и здесь
Debian — Подробная информация о пакете logisim в sid
в именах пакетовв описаниях пакетовв именах пакетов исходного кодав содержимом пакетоввсе параметры
[ stretch ] [ bullseye ] [ bookworm ] [ sid ]
[ Источник: logisim ]
graphical tool for designing and simulating logic circuits
Logisim is an educational tool for designing and simulating digital logic circuits. With its simple toolbar interface and simulation of circuits as you build them, it is simple enough to facilitate learning the most basic concepts related to logic circuits. With the capacity to build larger circuits from smaller subcircuits, and to draw bundles of wires with a single mouse drag, Logisim can be used (and is used) to design and simulate entire CPUs for educational purposes.
Другие пакеты, относящиеся к logisim
|
|
|
|
- dep: default-jre
- Standard Java or Java compatible Runtime
- или java7-runtime
- виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre, openjdk-8-jre
- или java8-runtime
- виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre, openjdk-8-jre
- или java9-runtime
- виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre
- или java10-runtime
- виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre
- или java11-runtime
- виртуальный пакет, предоставляемый default-jre, openjdk-11-jre, openjdk-17-jre, openjdk-18-jre, openjdk-19-jre, openjdk-20-jre, openjdk-21-jre
- dep: jarwrapper (>= 0. 5)
- запуск исполняемых Java-файлов .jar
- dep: javahelp2
- Java based help system
- dep: libcolorpicker-java
- Java control to allow color selection
- dep: libfontchooser-java
- Java control to allow font selection
Загрузка logisim
Архитектура | Размер пакета | В установленном виде | Файлы |
---|---|---|---|
all | 4 555,2 Кб | 5 450,0 Кб | [список файлов] |