Logisim: Open Source Digital Logic Simulator

[Spi Waterwing] wrote in to make sure that we were aware of Logisim, a Java-based open source digital logic simulator. We’ve used Atanua quite a bit in the past but hadn’t heard of this program. It seems to have a pretty big educational following and right off the bat it’s got a feature we’ve always wanted, the ability to build your own ‘black box’ logic devices. That is to say you can build your own circuit out of logic gates and then package it into a part to be plopped into your next design. What it doesn’t have is the series logic chips that we’re used to with Atanua, but you can build your own with the black box feature if you really need that kind of functionality.

So grab a copy and try building that binary calculator project from last month.

28 thoughts on “Logisim: Open Source Digital Logic Simulator

  1. Middle Tennessee State University has been using it for a couple of years, we built a RSC (rather simple computer) for one of my classes. MTSU switched to it from another program because it is easier to use and cross platform compatible.

  2. My school used… um… Digital Works. It’s a really old Windows program with very little functionality. I think the reason some schools still use it is because it doesn’t have so many features that can be used to cheat on homework.

  3. Yeah, Logisim’s great. We used it in my Computer Organization class at my university. We were able to build and simulate a “fully” functional processor from the base logic gates on up. It also makes abstraction really easy.

  4. Back in my day, we used LogicSim, a Macintosh (OS 7 only!) application. Essentially its claim to fame was being a logic simulator that let you package up items into successively more complex objects. So you’d start with your ORs and NANDs and such, then build up an adder, then a full adder, then a math module, then a logic module, etc. until you had a “CPU”.

    The only downside was the host PC memory limitations. System 7 only let you play with around a few thousand transistors/logic objects before it ran out of memory. Host OS speed was an issue at that point too. You had to do weird stuff to compensate for gate delay native to the emulated gates themselves, then factor in the host PC’s speed and RAM issues.

    We ended up using it in our CPU design classes in school and between all of us (mind you this is 2003) got it running in some weird emulation mode on OSX on a G4 which really helped. One guy made a full 8-bit Z80 CPU emulation. It worked, but was slow.

    It had the most intuitive drag and drop interface I’ve ever used with auto-wire connections and grouping, etc. Your circuits became beautiful after it did autorouting. :-)

  5. @Apexys: Hades looks nice- I’ll be checking that out.

    @Eric: Aha! Thanks for the pointer. I’m still probably creating my own to match the pinouts of the chips we use in lab, but good to have that library.

    @Necromant: Oh sure, get all professional on us. :-P Sure, for production designs, I’d love VeriLog, but our intro course isn’t doing anything with HDL.

    @CutThroughStuffGuy: Loj-ih-sim, as in logic simulation. S, not Z. :-P

    @Jesper: Not sure what you mean- like, create a gate that you can program with an arbitrary expression? Logisim has a minimally-documented library system that can be used for extensions, but you’d have to write some code yourself.

    GT: I assume you mean http://code.google.com/p/gt-logisim/ ? Looks neat, I’ll check it out.

  6. I am the creator of “Brandonsim”. I made my own fork of logisim because logisim did not have features that we needed for the class I TA.

    (A little note there are two GT Logisims one is made by me and the other is made by 3 students as a senior design project)

    I created my fork over the summer of last year. I and Carl Burch (the lead developer of logisim) had a couple of chats over email (with bug fixes and ideas) and he did improve the program quite a bit last fall.

    We are currently using the official version in the class I TA and he fixed all of the bugs and added everything we asked for. So his version has substantially fewer bugs than my version and has more features.

    This program is really cool and I have made JAR file libraries for it which you can make components in Java. Its pretty straightforward too if you look at the example code given.

    If you want some examples of cool things JAR components I’ve made and what logisim can do. I’ve recently given an assignment to the students I TA to make a state machine to control a “Guess Your Number” machine

    Here are a few screenshots the last one is if they messed up (note the image name)
    http://img265.imageshack.us/i/guessv.png/
    http://img97.imageshack.us/i/guess2n.png/
    http://img227.imageshack.us/i/boredom.png/

    I have also done the datapath for the LC3 in logisim most of the components are JAR library components

    http://img146.imageshack.us/i/lc3.png/

    Logisim is well put together however there are still a few bugs in this version but they are really hard to replicate.

    The pluses over what we used to use logicworks is that its open source (FREE!).
    Its cross platform.
    Easy to use.
    And if something doesn’t do what you like you are free to write your own in as a JAR file library. Its pretty fast or at least I have not built something big enough to where speed is an issue.

    Also Carl Burch is a great developer he did listen to most of the ideas I sent them and had them implemented in reasonable amount of time. If you find any bugs with the official version just send it to him and he will fix it!

  7. Haha sorry about the spelling errors and grammar mistakes in my above post >_<

    @Jesper Do you mean take an arbitrary truth table and have logisim make a circuit for it? If so then logisim has that feature. Its called Combinational Analysis.

  8. Logism is a fun little piece of software (and it keeps getting better). It lacks many of the features that would make it a practical design tool, but it is a fantastic learning environment (I entered almost every circuit I learned about for a year into it, really changes the textbook experience).

    Hades has more features, but unfortunately it is severely buggy and the interface isn’t nearly as intuitive. I pretty much gave up on Hades the first time it crashed and took a huge design with it.

    I’d love to see the Xilinx ISE gain some of the features of these realtime tools, that would be the most useful route to go.

  9. there is a feture missing, where 1 line of data represent 8 bit of data. but it need a converter whit 8 byte for each bit, like 8 output, it will make it simplier for dumb cpu developer like me.

Leave a Reply to Spi WaterwingCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.