[ИС] АОВС
  • Аппаратное обеспечение вычислительных систем / ЭВМ (поток Скакова П.С.)
    • Краткое напоминание о том, как не получить долг
    • Полезные материалы
  • Организационные вопросы
    • Система оценивания
    • Правила оформления и написания работ
    • Работа с репозиторием
    • Отправка работ
    • Автотесты на GitHub
  • Инструментарий
    • Logisim evolution
    • Verilog/SystemVerilog
Powered by GitBook
On this page
  • Настройки
  • Интерфейс
  • Создание схем
  • Отладка схем
  • Временная диаграмма
  1. Инструментарий

Logisim evolution

PreviousАвтотесты на GitHubNextVerilog/SystemVerilog

Last updated 2 months ago

Logisim представляет собой кроссплатформенный инструмент для разработки и моделирования логических схем с открытым исходным кодом. Благодаря простому интерфейсу Logisim прост в освоении и подходит для начинающих пользователей. Он позволяет создавать схемы, состоящие из различных элементов, которые могут быть соединены между собой проводами.

Начиная с 2011 года разработка Logisim была приостановлена и вместо него получило развитие его ответвление (fork) – Logisim Evolution.

В связи с этим для выполнения части лабораторных работ будет использоваться именно Logisim Evolution:

Для установки требуется скачать инсталляционный файл по ссылке и следовать инструкциям по установке.


В этом разделе приведено краткое описание интерфейса Logisim Evolution и пример разработки, моделирования и отладки простой схемы. Описание установки можно посмотреть в начале данного пособия. Далее название Logisim Evolution будет сокращено до Logisim.

Logisim работает с *.circ файлами. В этих файлах проектов Logisim хранятся данные о собранной схеме и её подсхемах.

При установке Logisim на компьютеры под ОС Windows можно столкнуться с проблемой, что все файлы, скачиваемые из Интернета, загружаются с расширением .circ. Это можно исправить, удалив в ключе реестра HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/octet-stream параметр Extension.

Более подробную информацию о работы Logisim и встроенной библиотеке можно найти в документации на .

Настройки

Во вкладке International можно выбрать язык локализации и вид логических элементов: IEC (европейский) и ANSI (американский). На всех схемах курса используется вид IEC.

Интерфейс

Logisim можно условно поделить на 5 частей, представленных на рисунке ниже.

Menu toolbar содержит разделы для работы с файлом проекта, настройками и запуском симуляции, а также help.

Canvas представляет собой холст (канву / рабочее пространство), на которой размещаются все компоненты и провода схемы.

Tools содержит инструменты для работы с объектами на канве:

Значок
Функционал

Нажатие. Позволяет по нажатию на провода проверить их состояние и по нажатию на компоненты посмотреть или сменить их состояние.

Правка. Даёт возможность выбирать и перемещает объекты на канве, а также взаимодействовать с проводами.

Добавление провода на канву. Провод может быть как присоединён к входам и/или выходам элементов на канве, так и «висеть в воздухе».

Добавление текста на канву.

Components позволяет выбрать из библиотеки готовых элементов, как базовых логических, так и сложных готовых схем. Все схемы разделены на группы. Встроенные библиотеки элементов Logisim содержат базовые логические элементы, комбинационные элементы (мультиплексоры, декодеры), готовые компоненты, выполняющие арифметические действия (сумматор, вычитатель), компоненты, хранящие данные (триггеры, регистры, и ОЗУ), компоненты для взаимодействия с проводами и пользовательским интерфейсом взаимодействия.

Properties представляет собой раздел, позволяющий настроить выбранный в данный момент компонент на холсте.

Оформление проводов

Провода, размещённые на холсте, могут быть одного из нескольких цветов. Полный список цветов с их интерпретацией приведён ниже.

Обозначение
Описание

Провод ни к чему не подключен, разрядность не известна.

Соединение двух проводов. Если провода проходят по канве через одно место и не имеют кружка, значит они не соединены.

Провод разрядности 1, по которому не передаётся определённое значение (высокоимпедансное состояние).

Провод несёт однобитное значение 0 (логическое false).

Провод несёт однобитное значение 1 (логическое true).

Провод несёт многобитное значение. Некоторые или все биты могут быть не определены.

Провод несёт значение ошибки. Возникает в случаях, когда нельзя определить, какое будет значение на выходе элемента или на вход поданы не все значения. Многобитные провода станут красными, если какие-либо биты несут значение ошибки.

Компоненты, присоединённые к проводу, не согласованы по разрядности. Снизу по центру холста будет приведено сообщение об этой ошибке, а на разных концах провода будет подписана битность компонент, которые он соединяет.

Создание схем

Все схемы создаются из других схем в проекте. Изначально при создании проекта в списке схем отображается единственная схема «main». Добавить дополнительные схемы в проект можно по нажатию на «Добавить схему» в меню Проект.

Рассмотрим пример создания схемы в проекте. Создадим схему mux и соберём на холсте этой схемы мультиплексор 2-в-1. Значком лупы в панели схем отображается отображаемая на холсте схема. Пример такой схемы приведён на рисунке ниже.

На приведённой схеме размещены элементы с разными свойствами: размером (gate size), числом входов (number of inputs), названием (label), ориентацией (facing). Так, например, логический элемент И (&) приведён в двух размерах, а у элемента логического ИЛИ (>=1, |) задано три входа, хотя по факту используются только два и значение на оставшемся входе неопределенно и не влияет на выходное значение элемента.

Теперь попробуем использовать собранную схему мультиплексора 2-в-1 – подсхему в терминах Logisim – для сборки схемы мультиплексора 4-в-1. Для этого добавим новую схему с названием mux4:1 и по нажатию ЛКМ на ранее собранную схему mux из списка схем и перетаскиванию на холст добавим несколько мультиплексоров. Результат сборки представлен ниже. На этой схеме входы обозначены как in_*, а набор из битов выбора задан многобитовым входом bit_select.

Можно заметить, что в стандартном отображении на подсхемах не видно, какой вход за что отвечает. При подключении таких подсхем проводами можно посмотреть названием входа путём наведения на него. Если же изначально при создании подсхемы входы и выходы не были подписаны, то при наведении на них на подсхеме ничего выведено не будет. Поэтому важно всегда подписывать входы и выходы схемы.

Порядок контактов на западной стороне «коробки» подсхемы соответствует их порядку сверху вниз на чертеже подсхемы. Если бы было несколько контактов на северной или южной стороне «коробки», то их порядок соответствовал бы порядку слева направо в подсхеме.

Вложений подсхем в схемы неограниченно, однако рекурсивное вложение подсхем самих в себя запрещено в Logisim. Также в программе наложено ограничение на тип контактов, которые используются как входы и выходы схем – они могут либо входами, либо выходами; в реальных схемах встречаются входовыходы.

Отладка схем

После того, как схема собрана, нужно проверить её, чтобы она работала верно. Для включения режима моделирования нужно выбрать в меню Моделирование «Моделирование включено» (Auto-propagate enable).

После этого можно изменять значения на контактах при помощи инструмента Нажатие и проверять значение на выходе. Рассмотрим mux.

На рисунке выше были переключены входы bit_select и in1 в состояние 1. Текущий нажатый элемент выделяется розовым овалом и в меню свойств отображаются его свойства.

В случае тестирования схемы, состоящей из пользовательских подсхем, например, mux41, при моделировании можно просматривать как состояние схемы в целом, так и каждой из её подсхем. Ниже приведён пример, когда отображается вид всей схемы и каждой подсхемы.

Название
Подсхема

Mux41

M1

M2

M3

Временная диаграмма

Дополнительным способом визуализации работы схемы является временная диаграмма (timing diagram). Она отлично подходит для визуализации изменения сигнала во времени. Меню работы с временными диаграммами можно найти в меню Моделирование – Запись в журнал (Simulate – Timing diagram).

Меню настроек позволяет выбрать режим создания диаграммы: stop-motion mode (запись значений с определённым интервалом), continuous real-time mode (запись с учётом пройденного времени между изменениями сигналов), clocked mode (запись с учётом тактового сигнала, дополнительно требуется указать, какой элемент будет такой сигнал генерировать).

Помимо этого, можно настроить какие сигналы будут записываться отслеживаться для построения временной диаграммы, чему будет равна 1 секунда реального времени на временной диаграмме и сколько значений на диаграмме будет записано. Ниже приведён пример временной диаграммы для схемы mux41, записанной в режиме stop-motion mode. Во время записи были перебраны все комбинации входов и какие значения получены на выходе схемы, который на диаграмме называется Output (на самой схеме он не имеет метки).

https://github.com/logisim-evolution/logisim-evolution
https://github.com/logisim-evolution/logisim-evolution/releases/
официальном сайте