Logisim

Содержание

Create complex or simple digital logic circuits and test their validity with this intuitive application, using the wide collection of components that it features

What’s new in Logisim 2.7.1:

  • Feature: When errors are in a file being loaded, the file is still partially loaded and displayed. If multiple errors are found, each is displayed.
  • Feature: In Plexers library, added Select Location attribute to multiplexer, demultiplexer, and decoder.
  • Feature: If some components somehow manage to get «off the grid,» they are relocated back onto the grid once they are moved.
  • Behavior change: With transistors and transmission gates, a floating value is passed through as floating regardless of the value of gate (including a floating or error gate value).

Read the full changelog

Logisim is an open source computer program that allows you to create and simulate digital logic circuits. It’s a straightforward tool that is aimed for use in schools and universities as it provides the means to create both simple educational circuits, as well as complex ones.

A tool well suited for anyone

Logisim displays a graphical user interface which makes it easy to understand and use if you have basic knowledge in electronics and circuitry. From the main window you are able to access all of its features and tools, and since the app doesn’t even need installing, you’re ready to get started with it immediately after you copy it to your computer.

As you would expect, the workspace is comprised from a generous drawing space, an easy to explore library and a toolbar that contains project simulation commands and configuration options.

Component rich library

Though small in stature, Logisim doesn’t compromise when it comes to components. It contains a large library of tools and components that you need in order to create circuits. They come grouped into categories such as ‘Wiring’, ‘Gates’, ‘Plexers’, ‘Arithmetic’, ‘Memory’, ‘Input/Output’ and ‘Base’, and can be inserted into the canvas area by a simple means of drag and drop.

Each component that you add to the circuit can be repositioned every time it is required and its properties customized accordingly. If at some point you encounter a component you don’t recognize or are unfamiliar with its technical details, Logisim comes with extremely detailed documentation that can help you overcome any issue.

Design and simulate logic circuits

Logisim enables you to effortlessly draw circuits, simulate their use and view color coded wires that can indicate the presence of errors. Moreover, once you’ve successfully created your simulation it can be exported in GIF format and shared with colleagues or inserted into various projects.

With the above in mind and a lot more to discover in the details, Logisim can easily pass for a practical and efficient learning tool.

Благодарности

Исходный код Logisim — в основном моя собственная работа; я должен выразить признательность, моим работодателям, которые финансируют мою работу в качестве профессора, в том числе данную программу: я начал программу в Университете Сент-Джона (Коллегевилье, штат Миннесота, США) в 2000-2004 годах, и я продолжаю её в колледже Хендрикс (Конуэй, штат Арканзас, США) с 2004 года по настоящее время. Я очень благодарен этим учреждениям за предоставленные мне время и ресурсы для работы над этим проектом. Если бы только все колледжи и университеты действовали сообща и так заботились об отличном преподавании, как эти учреждения!

Некоторые другие люди, которые были особенно полезны:

  • Телдо Круз Франкуэйра, Танос Какароунтас, Илья Лилов, Пабло Лил Рамос, и Уве Зиммерманн, которые внесли свой вклад в переводы, поставляемые с Logisim. Более подробную информацию о переводах можно найти на странице Интернациональные настройки.
  • Выпуск весны 2005 CS61C Университета Калифорнии, Беркли, который выдержал бета-версии Logisim 2.0. Эти студенты мирились с многими ошибками, и я очень признателен за их терпение и за их предложения!
  • Выпуски весны 2001 CSCI 150 Колледжа святого Бенедикта и Университета Сент-Джон, которые использовали самые зачаточные версии Logisim, когда он был в стадии разработки.

Некоторые части Logisim пришли из других пакетов, которые Logisim использует; некоторые из этих частей распространяются как часть Logisim.

Sun Java API (само собой)
Проект Sun JavaHelp
Обеспечивает встроенную систему помощи из меню «Справка».
MRJAdapter, от Стива Роя
Интеграция с платформой Macintosh OS X.
launch4j, от Григория Ковальта
Позволяет распространение Logisim в виде исполняемого файла Windows.
GIFEncoder, от Адама Доппельта
Сохраняет изображения в формате GIF. Он в свою очередь был основан на C коде, написанном Сверре Хьюсби.
ColorPicker, от Джереми Вуда
Предоставляет диалоговое окно выбора цвета, которое всплывает при настройке цветов (как у компонента Светодиод).
JFontChooser, от Христоса Богориса
Предоставляет диалоговое окно выбора шрифта, которое всплывает при выборе атрибутов шрифта (как в атрибуте Шрифт метки многих компонентов).
TableSorter, приписываемый Филипу Милну, Брендону Маклину, Дэну ван Энкеворту, Парвиндеру Секону, и ouroborus@ouroborus.org
Предоставляет возможность сортировки таблицы в диалоге Получить статистику схемы путём щелчка мышью на заголовке столбца.
Farm-Fresh Web Icons, http://www.fatcow.com/free-icons
Предоставляет значки для управления моделированием, которые появляются в режиме дерева моделирования. Эти значки распространяются по лицензии Creative Commons Attribution 3.0 License, и они не могут распространяться в соответствии с условиями GPL.

И наконец, я хотел бы поблагодарить всех тех пользователей, которые связались со мной — будь то по поводу сообщения об ошибке, предложения, или просто чтобы дать мне знать, что они используют Logisim в своих курсах. Мне придется оставить этих людей анонимными, потому что я не имею их разрешения упоминать о них здесь, но: спасибо!

Утилиты (Портативные) » Logisim 2.7.1 Portable ML/Rus

Logisim — свободное программное обеспечение, выпущенное под GNU GPL, позволяющее разрабатывать и моделировать цифровые электрические схемы, используя графический интерфейс пользователя. Может запускаться на Microsoft Windows, Mac OS X и Linux. Код полностью написан на Java с использованием библиотеки Swing для графического интерфейса пользователя.
Программа чаще всего используется учащимися в курсе изучения информатики для разработки и экспериментов с цифровыми схемами при моделировании. Схемы разрабатываются в Logisim с помощью графического интерфейса, близкого к традиционному для программ для рисования, такой интерфейс встречается во многих других программах для моделирования схем. В отличие от большинства других программ такого назначения, сопоставимых с Logisim по сложности, Logisim позволяет пользователям редактировать схемы в процессе моделирования. Относительная простота интерфейса делает программу удобной для обзорных курсов. Возможности разработки более сложных схем, такие как «подсхемы» и «пучки проводов», имеющиеся в Logisim, доступны в некоторых других графических инструментах с открытым исходным кодом.Хотя пользователи могут разрабатывать даже полные реализации процессоров, используя Logisim, программа разработана в основном для образовательного использования. Профессионалы обычно разрабатывают такие масштабные схемы, используя языки описания аппаратуры, такие как Verilog или VHDL. Logisim не позволяет работать с аналоговыми компонентами.Особенности* Это бесплатно! Logisim с открытым исходным кодом (GPL).* Она работает на любой машине, поддерживающих Java 5 или более поздние версии; специальные версии выпущены для MacOS X и Windows

Кросс-платформенность имеет важное значение для студентов, которые имеют различные компьютерные системы.* Иинтерфейс основан на интуитивной панели инструментов. Цветовая маркировка проводов помогает в моделировании и отладке схем.* Программа рисует горизонтальные и вертикальные проводники, автоматическое подключение к компонентам и к другим проводникам

Это помогает легко делать схемы!* Завершенные схемы могут быть сохранены в файл, экспортированы в файл GIF или распечатаны на принтере.* Автоматические макеты могут быть использованы в качестве «подсхем» других схем, позволяя создавать иерархические схемы.* Элементы схем включают входы и выходы, логические элементы, мультиплексоры, компоненты ОЗУ и ПЗУ, ….* Включен модуль «Комбинационный анализ», позволяющий преобразовывать данные между логическими схемами, логическими выражениями и таблицой истинности. Комбинационный анализ позволяет вам конвертировать данные между этими тремя представлениями во всех направлениях* Не требует установки — один исполняемый файл.’);if(«undefined»===typeof loaded_blocks_da){loaded_blocks_da=[];function n(){var e=loaded_blocks_da.shift();var t=e.adp_id;var r=e.div;var i=document.createElement(«script»);i.type=»text/javascript»;i.async=true;i.charset=»utf-8″;i.src=»https://code.directadvert.ru/show.cgi?async=1&adp=»+t+»&div=»+r+»&t=»+Math.random();var s=document.getElementsByTagName(«head»)||document.getElementsByTagName(«body»);s.appendChild(i);var o=setInterval(function(){if(document.getElementById(r).innerHTML&&loaded_blocks_da.length){n();clearInterval(o)}},50)}setTimeout(n)}loaded_blocks_da.push({adp_id:e,div:t})})(233229)Logisim распространяется с поддержкой русского интерфейса и полной документацией на русском языке.
The latest version 2.7.1 of March 21, 2011Platforms: Windows Multilingual user interface (English, Russian, etc)Licence: FreewareDeveloper: ozark.hendrix.eduSize: 6.64 Mb
Download Deposit
Download Turbobit
Download Rusfolder

  • Просмотров: 3283 |

Шаг 1: Добавление логических элементов

Вспомним, что мы пытаемся построить следующую схему в Logisim.

Я предлагаю строить схему, добавляя сначала элементы, как своего рода каркас, а потом соединять их проводами. Первое, что мы сделаем, это добавим два элемента И. Нажмите на инструмент Элемент И на панели инструментов (, предпоследний инструмент в списке). Затем щёлкните в области редактирования там, где вы хотите поместить первый элемент И. Не забудьте оставить достаточно места для вещей слева. Затем нажмите на инструмент Элемент И снова и поместите второй элемент И под первым.

Обратите внимание на пять точек на левой стороне элемента И. Это места, где могут быть прикреплены провода

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

Теперь добавьте другие элементы. Сначала щёлкните на инструменте Элемент ИЛИ (); затем щёлкните там, где вы хотите его поместить. И расположите два элемента НЕ на холсте, используя инструмент Элемент НЕ ().

Я оставил немного пространства между элементами НЕ и элементами И; если хотите, однако, вы можете расположить их сразу друг за другом и сэкономить свои усилия на соединении их проводами позже.

Теперь мы хотим добавить в чертёж два входа х и у. Выберите инструмент Добавить входной контакт () и разместите контакты. Вам также нужно разместить выходной контакт рядом с выходом элемента ИЛИ, используя инструмент Добавить выходной контакт (). (Опять же, я оставляю немного пространства между элементом ИЛИ и выходным контактом, но вы можете разместить их сразу друг за другом.)

Если вы решили, что вам не нравится, где вы разместили что-то, то вы можете выбрать это с помощью Инструмента Правка () и перетащить в нужное место. Или же вы можете удалить его полностью, выбрав Удалить из меню Правка или нажав клавишу Delete.

Когда вы размещаете каждый компонент, вы заметите, что как только компонент размещён, Logisim возвращается к Инструменту Правка, так что вы можете двигать размещённый компонент, или (как мы скоро увидим) соединить компонент с другими, создавая провода. Если вы хотите добавить копию недавно размещённого компонента, то быстрый вызов для этого — нажать Control-D для дублирования выделения. (Некоторые компьютеры используют другие клавиши для меню, такие как клавиша Command на Макинтошах. Вам нужно нажать эту клавишу с клавишей D.)

Далее: Шаг 2: Добавление проводов

The Compiler

The compiler is a way to convert the above Assembly code into machine code. Since the CPU is developed in Logisim, the file format chosen was the file format that allows reading and writing to the built in RAM modules. Below is a sample program that adds the values and (Decimal and ) and stores the value in memory address 0, halting with exit code 0.

This compiler is written in python, due to its flexibility and lightweight code (the full compiler, with warnings and system argument parsing is still less than 2KB, less than the cluster size on MacOS and some other operating systems). Relative to the size of the programs this compiler is working on, the file size is daunting, being 4 times the size, but if the CPU were able to handle more information, by moving from 4 to 8 or even 16 bits, the compiler would only increase enough to accommodate any new commands.

Familiarizing yourself with the Logisim software interface

After downloading and installing the Logisim software, you will need to first familiarize yourself with its graphical user interface before you can use it without any difficulty. In this article, I will give a very brief overview of the graphical user interface of the Logisim software. However, I would suggest that you read through the documentation of the Logisim software (which can be found here: http://www.cburch.com/logisim/docs.html), to give you more knowledge on how to navigate through the software.

The user interface of the Logisim software

Fig. 1 below depicts the various parts of a typical Logisim software interface.

Fig. 1

–    The Menu Bar: contains the various instructions that can be executed in the Logisim software.

–    The Toolbar: contains shortcuts to the most commonly used commands in the Logisim software. The table in Fig. 2 below depicts the various commands on the Toolbar and their functions.

Fig. 2

–    The Explorer Pane: contains a list of digital circuit components (such as wiring, gates, multiplexers, etc.) that are available for digital circuit design in Logisim.

–    The Attribute Table: gives detailed attributes of digital design components (e.g. AND, OR and XOR gates). It also enables the attributes of these digital design components to be edited.

–    The Canvas: the area in which digital circuits are created and designed. The Canvas enables digital circuits to be designed and simulated simultaneously.

The CPU

The CPU I’ve designed is by no means the most efficient design, but its purpose isn’t to be the most efficient or the fastest, but rather as a learning experience. The design is not the same as most low-powered CPUs, as there are separate memory banks for the instructions and the usable memory. There is functionality to manipulate the contents of the instruction bank, but that is purely to alter the course of the program. Each 8-bit memory bank can hold 256 bytes of information, leading to a maximum program size of 256 bytes, and a total of 256 bytes of usable memory. There are various registers in the CPU that can each hold a small amount of information. Registers A and B can each hold a byte of information, the Memory Address Register can hold half a byte (a nibble) of information, and the Carry On Operation Register can hold a measely 1 bit of information. Combining these memory registers, there is a total of 514.625 bytes (4117 bits) of information stored at any given moment, 258 bytes being usable between the memory bank, and two main registers.

Поведение

Контакт — это выход или вход схемы, в зависимости от значения атрибута Выход? . При отрисовке контакта Logisim представляет выходные контакты как кружки или скруглённые прямоугольники, а входные контакты как квадраты или прямоугольники. В обоих случаях отдельные биты значения, которое оправляется или принимается, отображаются внутри данного компонента (кроме Вида для печати, когда компонент говорит только какова разрядность контакта).

Контакт — удобный компонент для взаимодействия со схемой, и начинающим пользователям Logisim не нужно использовать их каким-либо другим образом. Но пользователь, строящий схему с использованием нескольких подсхем (как описано в разделе «Подсхемы» Руководства пользователя ) будет использовать контакты также чтобы определить интерфейс между схемой и подсхемой. В частности, компоненты Контакт чертежа схемы определяют контакты, которые отображаются на компоненте Подсхема, когда чертёж используется внутри другой схемы. В такой схеме значения, переданные и принятые в этих точках компонента Подсхема, связаны с контактами внутри чертежа подсхемы.

Контакты

* Звёздочкой отмечены контакты, существующие только когда атрибут Параллельная загрузка включен.

Западный край, верхний контакт (вход, разрядность равна 1)
Сдвиг: когда на нём 1 или он не подключен, все ступени сдвигаются при срабатывании тактового входа; но если на нём 0, никакого сдвига не происходит. Этот вход игнорируется, если на входе Загрузка 1.
Западный край, средний контакт (вход, разрядность соответствует атрибуту Биты данных)
Данные: при продвижении ступеней значение с этого входа загружается в первую ступень.
Западный край, нижний контакт, отмечен треугольником (вход, разрядность равна 1)
Тактовый вход: в момент срабатывания этого входа, как указано в атрибуте Срабатывание, компонент может сдвинуть ступени или загрузить новые значения.
*Северный край, левый контакт (вход, разрядность равна 1)
Загрузка: когда на этом входе 1, значения с остальных контактов на северном крае загружаются во все ступени при следующем срабатывании тактового входа. Когда на нём 0 или он не подключен, никакой загрузки не происходит.
*Северный край, остальные контакты (вход, разрядность соответствует атрибуту Биты данных)
Данные: эти значения загружаются во все ступени при срабатывании тактового входа, пока на входе Загрузка 1. Крайний левый вход соответствует младшей ступени.
Южный край, левый контакт (вход, разрядность равна 1)
Очистка: когда значение равно 1, все ступени асинхронно сбрасываются на 0, и все другие входы игнорируются.
*Южный край, остальные контакты (выход, разрядность соответствует атрибуту Биты данных)
Выход: выдаёт значение, хранящееся в каждой ступени; младшая ступень отражена в крайнем левом контакте (рядом со входом Очистка).
Восточный край (выход, разрядность соответствует атрибуту Биты данных)
Выход: выдаёт значение, хранящееся в последней (старшей) ступени.

Вкладка Выражение

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

Чуть ниже списка появится выражение, отформатированное в довольно общепринятых обозначениях, где ИЛИ представляется в виде сложения, И — как умножение, а НЕ обозначается чертой над той частью, для которой вычисляется НЕ.

Текстовое поле ниже отображает ту же информацию в виде ASCII последовательности. Здесь НЕ представляется как тильда (‘~’).

Вы можете изменить выражение в текстовом поле и нажать кнопку Ввести, чтобы изменения вступили в силу; это также обновит таблицу истинности для соответствия. Кнопка Очистить очищает текстовое поле, а кнопка Вернуть меняет поле обратно к представлению текущего выражения.

Обратите внимание, что отредактированные вами выражения будут потеряны, если вы измените таблицу истинности. В дополнение к умножению и сложению, обозначающим И и ИЛИ, выражение, которое вы набираете, может содержать любой из логических операторов C/Java, а также просто английские слова сами по себе.

В дополнение к умножению и сложению, обозначающим И и ИЛИ, выражение, которое вы набираете, может содержать любой из логических операторов C/Java, а также просто английские слова сами по себе.

высший приоритет ~ ! NOT НЕ
(отсутствие символа) & && AND И
^ XOR Исключающее ИЛИ
низший приоритет + | || OR ИЛИ

~a (b + c)
!a && (b || c)
NOT a AND (b OR c)

Schools using Logisim

This is a very incomplete list. Logisim does not demand that
downloaders fill a form saying why they are downloading it;
instead, we rely entirely on volunteers to report their usage.

View schools using Logisim
in a larger map

Argentina
     Universidad Catolica
Argentina — Rosario
Universidad Nacional
del Centro de la Provincia de Buenos Aires
Universidad Nacional
del Sur
Australia
Bond University
Curtin International College
University of Newcastle
University of Queensland
Austria
Graz University of Technology
Bangladesh
North South University
Belgium
Ecole Supérieure
d’Informatique — Haute Ecole de Bruxelles
U of Antwerp
U of Mons
Université Libre de Bruxelles
Brazil
U of Sao Paulo
Universidade Federal de Mato Grosso do Sul
PUC Minas
Bulgaria
American U
Technical U — Sofia, Plovdiv branch
Canada
Augustana U, Alberta
Camosun C
McGill U
Mount Royal U
Mohawk C of Applied Arts and Tech
U of British Columbia
Chile
U of Chile
China
Putian U
Croatia
Zagreb Polytechnic
Colombia
Universidad Pontificia Bolivariana, Medellin
Universidad del Norte
Universidad EAFIT — Medellin
I Pedro Luis Villa
Cyprus
European University Cyprus
Czech Republic
Inst of Chemical Technology, Prague
Denmark
U of Copenhagen
Finland
U of Joensuu
France
Supélec
U of Nantes
U of Rennes
U Inst of Tech, Grenoble
Germany
U of Duisburg-Essen
U of Siegen
Greece
U of Peloponnese
Tech Educ Inst of Ionian Islands
Iceland
U of Iceland
India
Holy Cross Matriculation Higher Secondary School
Indian Inst of Tech, Dehli
Lebanon
American U of Beirut
Mexico
Universidad Autnoma de Baja California, Tijuana
New Zealand
U of Auckland
Victoria U of Wellington
U of Waikato
Portugal
Universidade de Évora
Russia
Moscow University of Printing Arts
Saudia Arabia
King Fahd University of Petroleum and Minerals
Serbia
U of Niš
Singapore
National U of Singapore
Sweden
Nordiska Tekniska Institutet
Uppsala U
Switzerland
Ecole Polytechnique Federale de Lausanne
Haute école spécialisée de Suisse occidentale
U of Lugano
Taiwan
National Chi Nan U
Turkey
Bartin U
Karabuk U
Koc University
Middle East Technical U
United Kingdom
Oxford & Cherwell Valley C
Oxford Brookes U
U of Sheffield
United States of America
AR Hendrix Coll
U Ark — Fort Smith
AZ Northern Arizona U
CA Cal Poly Pomona
Cal State U — Chico
Cal State U — Monterey Bay
U California — Berkeley
Harvey Mudd Coll
Pacific Union Coll
San Francisco State U
San Jose State U
CO Colorado State U
CT U of Hartford
GA Georgia Inst of Tech
IA Briar Cliff U
Grinnell C
U of Northern Iowa
IL Depaul U
Eastern Illinois U
Knox Coll
Monmouth Coll
IN DePauw U
Earlham Coll
Huntington U
U Evansville
KS Benedictine Coll
Bethel Coll
Emporia State U
MA Mount Holyoke C
U Massachusetts — Amherst
U Massachusetts — Lowell
MI Albion C
Kalamazoo C
MN C of St Benedict/St John’s U
MO Park U
MS Mississippi Coll
NC U of North Carolina at Ashevile
U of North Carolina at Penbroke
NH Dartmouth C
NJ Princeton U
NY Canisius C
Colgate U
Cornell U
Laguardia Community Coll
New York U
Rochester Inst Tech
Siena C
SUNY Oswego
Vassar C
Wells College
OH U of Dayton
Denison U
Shawnee State U
U Akron
OR Lewis & Clark C
Reed C
PA Comm C of Allegheny County, South
Swarthmore C
U of Pittsburgh
RI Brown U
TN Knoxville Coll
Middle Tennessee State U
Rhodes Coll
SC ECPI Coll of Technology
TX Abilene Christian U
Texas A&M U
UT U of Utah
VA Christopher Newport U
Radford U
Thomas Jefferson HS of Sci and Tech
U of Virginia
Virginia Tech
Coll of William & Mary
WA Evergreen State U
WV Alderson-Broaddus College
Davis & Elkins College

Above, I have tried to list only those institutions where I
feel there is firm information that Logisim has been assigned directly
for use by students. Not included are courses that recommend Logisim
without making explicit assignments nor those who offer a choice
between Logisim and another piece of software. (Also, for those found
through Web searches, I look for specific evidence that the software
package is not an obscure competitor that happens to share Logisim’s
name.)

Уведомление об авторских правах

Copyright (c) 2005, Carl Burch.

Logisim является свободным программным обеспечением; вы можете его распространять и/или модифицировать его в соответствии с условиями Универсальной Общественной Лицензии GNU, опубликованной Фондом свободного программного обеспечения; версии 2 лицензии, либо (по вашему выбору) любой более поздней версии.

Logisim распространяется в надежде, что он будет полезным, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, даже без подразумеваемых гарантий КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. См. Универсальную Общественную Лицензию GNU для более подробной информации.

Assembly

Abstracting the instructions from a byte of information into a language is not an easy task, but necessary for any development on a new CPU. By learning the Assembly language for a particular CPU, we can learn more about the inner workings without memorizing machine codes. The current version of the Assembly language I have put together uses 16 commands to work on the CPU. Writing out a command name and a parameter separated by a space on each line translates to a unique command as seen in the folder. A collection of lines like this constitute a program in Assembly. Because this CPU works with 8 bit numbers, yet can only provide a nibble for a command and as a parameter, some of the commands below are required to write larger values, such as LS REG.