Logisim-evolution is educational software for designing and simulating digital logic circuits

Overview

Logisim-evolution


Branch master: Build

Branch develop: Build


Logisim-evolution


Features

Logisim-evolution is educational software for designing and simulating digital logic circuits. Logisim-evolution is free, open-source, and cross-platform.

Project highlights:

  • easy to use circuit designer,
  • logic circuit simulations,
  • chronogram (to see the evolution of signals in your circuit),
  • electronic board integration (schematics can be simulated on real hardware),
  • VHDL components (components behavior can be specified in VHDL!),
  • TCL/TK console (interfaces between the circuit and the user),
  • huge library of components (LEDs, TTLs, switches, SoCs),
  • supports multiple languages,
  • and more!

Logisim-evolution Logisim-evolution


Requirements

Logisim-evolution is a Java application; therefore, it can run on any operating system supporting the Java runtime enviroment. It requires Java 16 (or newer).


Download

Logisim-evolution is available for download in compiled form with ready to use installable packages for Windows, macOS, and Linux or in source code form, which you can build yourself.

The following platform specific packages include the Java runtime and do not require it to be installed separately:

  • logisim-evolution_ -1_amd64.deb : Debian package (also suitable for Ubuntu and derivatives),
  • logisim-evolution- -1.x86_64.rpm : Package for Fedora/Redhat/CentOS/SuSE Linux distributions,
  • logisim-evolution- .msi : Installer package for Microsoft Windows,
  • logisim-evolution- .dmg : macOS package. Note that Logisim-evolution may also be installed using MacPorts (by typing sudo port install logisim-evolution) or via Homebrew (by typing brew install --cask logisim-evolution).

The Java JAR logisim-evolution- -all.jar is also available and can be run on any system with a supported Java runtime installed.

Note for macOS users: The Logisim-evolution.app is not signed with an Apple approved certificate.

When launching the application for the first time, you will have to start it via the "Open" entry in the application icon's context menu in the macOS Finder. This is either done by clicking the application icon with the right mouse button or holding down CTRL while clicking the icon with the left mouse button. This will open a panel asking you to verify that you wish to launch the application. On more recent versions of macOS, the panel will only give you a choice of moving the app to the trash or Cancel. On those systems, click Cancel, open System Preferences, and select Security & Privacy. There you may need to click the lock to make changes and authenticate with an administrative acccount. It should show an option to open the app. See Safely open apps on your Mac for more information.

Depending on your security settings, you may also get a panel asking if you wish to allow it to accept network connections. You can click "Deny" as we do not need network access currently nor we do request any.

Nightly builds

We also offer builds based on the current state of the develop branch. If the develop branch has been changed, a new Nightly build is created at midnight UTC.

Note that these builds may be unstable since the develop branch is a work in progress.

To get nightly downloads, please click here and browse to the last successful run of Nightly build, which should be on top. Note that due to Github internals, all files are provided as ZIP archives. You must unzip the downloaded file to get the package for installation.

Please share your experience in Discussions or open a ticket if you found a bug or have suggestions for improvement.


License

Comments
  • Compile time BuildInfo class generator

    Compile time BuildInfo class generator

    This is my take on simplifying project information like version etc that are currently hardcoded and spread among multiple files (i.e. version is in Main.java and in gradle.properties). This PR introduces genBuildInfo task that generates BuildInfo.java file with information read from gradle.properties (like version) and also compile time details like current stamp, branch name or last commit hash (this info is also added to About scroller in this PR), so at the end of the day the only source of project information to maintain would be gradle.properties. I also did minor gradle cleanup.

    @R3dst0ne @mbaillif @davidhutchens @maehne

    BLOCKED_BY #888

    opened by MarcinOrlowski 31
  • macOS code signature resources missing?

    macOS code signature resources missing?

    I've recently had to use Logisim for my university class, but I've run into a couple problems trying to use the .dmg installer - the same "This application is damaged and can't be opened" that came up in #475, #476, and #499. I've looked into it, and found that macOS's Gatekeeper is restricting the app because the "code has no resources but signature indicates they must be present" (according to codesign/spctl). I'll try to build the .app locally and see if it has the same problem, but it seems like something in the package might have to be re-signed.

    opened by kqct 25
  • additions to HDL

    additions to HDL

    I added a few operators and other functions that should make generating HDL's easier.

    • comparison operators ==, !=, <, >, <=, >=
    • logic operators:
      • shift left/rightboth logic- and arithmetical
      • rotate left/right
    • arithmetic operators: +/-
    • control structure if, else, else if

    Before I spend time on introducing these to each HDL generator, what are your opinions on these additions?

    DEPENDS_ON #1098

    opened by R3dst0ne 22
  • short versions for CLI arguments

    short versions for CLI arguments

    In #983 short versions for each option get introduced. @maehne (here) and I (here) are not sure if this is a good idea. As mentioned in my comment:

    It is better to have no short version than a misleading one.

    Currently, there are a view where the letters don't make sense.

    I propose to only add short versions for: -h, --help -v, --version -p, --plain -e, --empty -t, --template -g, --gates -c, --clear-prefs (-s, --substitute & -l, --load or --locale are fine for me as well.)

    @MarcinOrlowski @BFH-ktt1 @davidhutchens @zdimension @maehne What are your opinions?

    • #983
    triage 
    opened by R3dst0ne 20
  • Use Lombok codegen features

    Use Lombok codegen features

    "The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough - often that I'm generating by hand the expansions of some macro that I need to write."

    Java is a verbose language and prefers explicit code to syntactic sugar. Lombok provides annotations that allow generating boilerplate code for things such as member getters/setters.

    It can work as a Gradle plugin and doesn't affect the build for the user.

    Pros:

    • less boilerplate

    Cons:

    • code may be less readable

    Any yeas or nays?

    enhancement pri +1 triage 
    opened by zdimension 19
  • References need to be updated

    References need to be updated

    I found these outdated references to Logisim-evolution.

    opened by R3dst0ne 19
  • Commons-cli based CLI args parser

    Commons-cli based CLI args parser

    This PR replaces old argument parsing with Apache's commons-cli based.

    • Completely rewritten command line argument parser:
      • All options have both short and long version now,
      • All long arguments require -- prefix i.e. --version,
      • All long arguments require single - as prefix i.e. -v,
      • -clearprefs is now --clear-prefs or -cp,
      • -clearprops option is remove (use --clear-prefs instead),
      • -geom is now --geometry,
      • -nosplash is now --no-splash or `-ns,
      • -sub is now --substitute or -s,
      • -testvector is now --test-vector or -tv.
      • removed -questa

    NOTE: this is exact port of what we had in develop/ and I got a feeling certain options are no longer needed or whatever, so please do the check and let me know.

    Tracing ticket #981

    Fixes #981 Fixes #963

    DEPENDS_ON #977

    opened by MarcinOrlowski 18
  • .properties files syncronisation

    .properties files syncronisation

    It might be a good idea to implement some kind of mechanism that enforces the synchronization of all the properties files. As you can see in #759 they were quite out of sync.

    enhancement pri std 
    opened by R3dst0ne 18
  • Logisim Evolution and 4K resolution

    Logisim Evolution and 4K resolution

    Hey guys,

    I'm trying to run logisim evolution on my laptop which has a 4k monitor, and the menu items look really really small..

    how can I make them look bigger without down scaling the resolution please ??

    thanks in advance for your help

    enhancement pri +1 
    opened by ypaul123 17
  • Nightly builds

    Nightly builds

    I created (experimental kind of) nightly builder that is expected to be run daily (cron) and create new builds if there's any activity on develop branch during last 24 hours. For now it builds *.deb, shadow jar and source jar. Once it is stable we can add more packages.

    enhancement 
    opened by MarcinOrlowski 16
  • Problem with UTF8 display under windows.

    Problem with UTF8 display under windows.

    With the autoex of the .jar file the display UTF8 is not recognized under windows (test with W10 and Java 8 and version 2.14.6) this gives a nasty effect with accented letters.

    I notice that the files of definition of texts are sometimes in ANSI and sometimes in UTF8 Which is the future vision for this coding ?, It seems to me that UTF stands out

    temporary solution: create a shortcut and place this command in the target field: javaw.exe" -Dfile.encoding=UTF8 -jar "E:\Users\Public\LogisimEvolution\logisim-evolution.jar"

    or create a .bat file with this line: start javaw -Dfile.encoding=UTF8 -jar E:\Users\Public\LogisimEvolutionlogisim-evolution.jar

    Change the file path of the .jar file as needed

    opened by mbaillif 16
  • gradlew build not working

    gradlew build not working

    Dear All, please help

    /Users/peter/workspace/logisim-evolution>./gradlew build
    <<======-------> 47% EXECUTING [8s]
    > Task :checkstyleMain FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':checkstyleMain'.
    > Expected file collection to contain exactly one file, however, it contains no files.
    
    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 11s
    13 actionable tasks: 9 executed, 4 up-to-date
    

    Build in netbeans also failed

    image
    opened by quantrpeter 0
  • looking for cooperate on verilog converter

    looking for cooperate on verilog converter

    Hi My name is Peter, system architect from www.quantr.foundation, we are team of 7 in Hong Kong working on RISC-V cpu. We have huge passion on low-level stuff. We want to create a verilog converter, to convert verilog into logisim and simulate it, mainly for education purpose. We have our own verilog parser built by antlr. We have used it to build our own verilog preprocessor https://www.quantr.foundation/project/?project=Verilog%20Compiler and debugger https://www.youtube.com/watch?v=cPjEUe2uY8I . That prove we are serious.

    Now we want to find partners, especially on consulting roles.

    1. We want to know how to translate verilog into ray logic, only compose by d-latch and gates.
    2. We don't know how to import thing to logicism, need some guidance on hacking the logicsim

    thanks Peter

    enhancement help wanted pri -1 documentation 
    opened by quantrpeter 2
  • Remove the link to Snap

    Remove the link to Snap

    Since having an outdated official Snap package (Neither stable nor nightly are up-to-date) is in no way beneficial. I propose removing the links to it until this gets fixed.

    As soon as it gets updated to the current version (3.8.0), I will add the links again.

    If this PR gets accepted, I will create another one for the develop branch.

    opened by R3dst0ne 0
  • Support 8 bit and 16 bit floating point formats

    Support 8 bit and 16 bit floating point formats

    Discussed in https://github.com/logisim-evolution/logisim-evolution/discussions/1608

    Originally posted by juancolonna December 14, 2022 Dear developers, first I'd like to thank you for the amazing work you are doing developing Logisim. Second, I would like to request a new feature if possible.

    I use Logisim as a teaching tool with my students. I usually explain initial concepts using 8-bit logic, in a simple way. I often using minifloat (8-bit float) to explain floating number concepts (scale, overflow, etc.). Floating arithmetic blocks don't have the 8-bit option, eg: addition, multiplication, subtraction, etc., and for me it would be very useful. Would it be possible to implement 8-bit float operations? I would be very grateful.

    At,

    enhancement help wanted good first issue 
    opened by maehne 4
  • Timing diagram: Consider export to WaveDrom format

    Timing diagram: Consider export to WaveDrom format

    It would be nice if timing diagrams recorded in Logisim-evolution could be exported in WaveDrom format. This would facilitate documentation, as the format can be easily edited to annotate, e.g., relations between different signals.

    enhancement help wanted pri -1 good first issue 
    opened by maehne 0
Releases(v3.8.0)
Owner
null
Find different kinds of algorithm questions and solutions in different software languages

Algorithm Samples ⭐ Find this project useful? If you think it has helped you, you can star this repo and join the Stargazers and motivate us to share

Serkan Alc 37 Oct 31, 2022
Sauron, the all seeing eye! It is a service to generate automated reports and track migrations, changes and dependency versions for backend services also report on known CVE and security issues.

SAURON - VERSION AND DEPLOYMENT TRACKER DESCRIPTION Sauron, the all seeing eye! It is a service to generate automated reports and track migrations, ch

FREENOWTech 20 Oct 31, 2022
A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values

A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values The calculator also does percentages, square roots and squares

Andrey Fabricio 1 Jan 31, 2022
A Local implementation of a java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

A Local implementation of java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

Isaac Barry 1 Feb 12, 2022
Tripoli imports raw mass spectrometer data files and supports interactive review and archiving of isotopic data.

Tripoli imports raw mass spectrometer data files and supports interactive review and archiving of isotopic data. Tripoli facilitates visualization of temporal trends and scatter during measurement, statistically rigorous filtering of data, and calculation of statistical parameters.

CIRDLES 7 Dec 15, 2022
Java Notes & Codes for better understanding and it contains all the funtions with examples and also added Cheat Sheet for Revision

Java Notes & Codes for better understanding and it contains all the funtions with examples and also added Cheat Sheet for Revision...

Ujjawal Singh 1 Nov 30, 2022
Automatically discover and tag PII data across BigQuery tables and apply column-level access controls based on confidentiality level.

Automatically discover and tag PII data across BigQuery tables and apply column-level access controls based on confidentiality level.

Google Cloud Platform 18 Dec 29, 2022
A Java to iOS Objective-C translation tool and runtime.

J2ObjC: Java to Objective-C Translator and Runtime Project site: https://j2objc.org J2ObjC blog: https://j2objc.blogspot.com Questions and discussion:

Google 5.9k Dec 29, 2022
Make Slack and Facebook Bots in Java.

JBot Make bots in Java. JBot is a java framework (inspired by Howdyai's Botkit) to make Slack and Facebook bots in minutes. It provides all the boiler

Ram 1.2k Dec 18, 2022
API gateway for REST and SOAP written in Java.

Membrane Service Proxy Reverse HTTP proxy (framework) written in Java, that can be used as an API gateway as a security proxy for HTTP based integrati

predic8 GmbH 389 Dec 31, 2022
An extensible Java framework for building XML and non-XML streaming applications

Smooks Framework This is the Git source code repository for the Smooks Project. Build Status Building Pre-requisites JDK 8 Apache Maven 3.2.x Maven gi

Smooks Framework 353 Dec 1, 2022
The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts

yGuard yGuard is an open-source Java obfuscation tool. With yGuard it is easy as pie ( ?? ) to configure obfuscation through an extensive ant task. yG

yWorks GmbH 265 Jan 2, 2023
TChart Simple and fast charts

TChart Simple and fast charts. Current version Beta 0.9.1 Preview Import jitpack.io gradle allprojects

null 30 Sep 20, 2022
ThirdEye is an integrated tool for realtime monitoring of time series and interactive root-cause analysis.

ThirdEye is an integrated tool for realtime monitoring of time series and interactive root-cause analysis. It enables anyone inside an organization to collaborate on effective identification and analysis of deviations in business and system metrics. ThirdEye supports the entire workflow from anomaly detection, over root-cause analysis, to issue resolution and post-mortem reporting.

null 87 Oct 17, 2022
A lightweight staff chat plugin for BungeeCord and Spigot.

A lightweight staff chat plugin for BungeeCord and Spigot with 2-way Discord chat support and many other great features.

null 4 Mar 30, 2022
Masterful Machinery is a mod about creating customisable and complex multiblocks machines.

Masterful Machinery Masterful Machinery is a mod about creating customisable and complex multiblocks machines. Everything in the mod is customisable w

null 23 Nov 12, 2022
This service checks the Co-WIN public API at a specific interval and send update to users specified telegram bot.

COVID VACCINE TELEGRAM BOT USING SPRING BOOT This application is a covid vaccine slot notifier via telegram bot. This application uses public CO-WIN A

Hardeek Sharma 6 Oct 4, 2022
Leaked for stupid reasons. please leave a star and follow me

Neko+ Leaked for stupid reasons. please leave a star and follow me. i wont provide ANY support https://discord.gg/zv9aytZW join neko+ discord! credits

null 23 Jul 19, 2021
BitBase is a Client-Server based Crypto trading platform which offers live pricing, dynamic charts, user portfolio, account settings... and much more!

BitBase-Crypto-Trading-Platform BitBase is a Client-Server based Crypto trading platform which offers live pricing, dynamic charts, user portfolio, ac

null 4 Feb 11, 2022