Skip to content
Aug 5 2010

Try the first preview build of Logicly, a digital logic simulator

by Josh Tynjala

Today, I’m proud to announce that I’ve uploaded the first preview build of Logicly, my digital logic simulator. I originally posted what I now call “the prototype” on my blog in late 2008. At the time, it was just a fun little experiment that I put together as a bit of nostalgia. One of my professors in college used a very simple Java applet to demonstrate logic gates in his computer architecture class, but he wanted something better. At the time, the project seemed daunting. However, with several years of real-world experience under my belt, it had become a fun weekend project.

Screenshot of Logicly

Over the last couple of years, Logicly has received much interest from computer enthusiasts, students, and educators. Both Reddit and Hacker News linked to it and provided excellent feedback. Even now, my blog’s traffic and top search terms are still dominated by people looking for Logicly. I get a few emails every month with praise, feature requests, and even stories about how a some students are using Logicly with their thesis work.

Screenshot of the prototype

Thanks to all this continued interest in Logicly, I feel that it’s time to add it bit more polish and release a desktop app that includes all the features that people consistently ask me to add. I have a bit more work ahead of me, but what’s there now already surpasses the prototype in a few areas. Things like multiple selection, a pan tool, and a couple new controls (a 4-bit digit, for instance) are the most obvious. I also spent a lot of time improving the simulation code, which leads to more consistency in propagation and timing.

There’s a lot more planned too.

  • Saving and loading files. This is, by far, the most requested feature. It will only be available in the desktop app.
  • Flip-flops. These are also a very popular request. I wanted to get them working in this preview build, but there are a couple more things to tweak, and it’s not worth delaying the preview just for these.
  • Grid settings, such as size and snapping.
  • Individual clock timing settings.

If you’re interested in future releases of Logicly, please subscribe to this blog, follow @logicly on Twitter, or like Logicly on Facebook. You can also sign up for the Logicly newsletter to get the announcement via email, if you prefer.

From → Announcements

6 Comments
  1. Len Marinaccio

    Once again, nice work! I notice that the application slows down considerably when adding a lot of components. I got a rudimentary 2 bit processor to work but and developing the parts for a larger 4 bit version with more instructions. The problem is that I have long cascades of gates and I will hit a practical limit because only so many stages will propagate with logic changes before the clock changes phases. I’d like to know how many “cycles” of gate processing occur during each half-cycle of the clock. I built an 4 bit ALU that can do complement, negate, increment, add and subtract all in about 48 gates. A clock test shows that it will settle in time but I don’t know how much breathing room I have and that will be important when I start doing address decoding, and my and/or cascades to work around tri-state buffers.

    #
      
  2. Stefaan Vandevelde

    Hi,

    I’m one of those teachers teaching computer architecture. I’ve been scanning the internet for free logic scanners and yours has by far the best looking interface. Too bad there’s no desktop version available.
    I would also need gates with more then 2 input and flip-flops for the program to be really useful.

    Very impressive work you’ve done there.
    Greetz,
    Stefaan

    #
      
  3. Len, yes, Logicly will run a bit slower during propagation. This isn’t a matter of overpowering the CPU, though. I specifically slow down the simulation during propagation so that each signal change is visible. I think I’m going to try bumping up the framerate a bit to make propagation faster.

    #
      
  4. Stefaan, thank you for the feedback. Flip-flops are on the way. Gates with more than two inputs have been requested before, and I want to add them, but I’m still figuring out the implementation details. The simulation can handle them already, but the graphical representation is a bit more challenging and requires big changes to the way skins work, so you might not see them until after version 1.0 of the desktop version is released.

    #
      
  5. Len Marinaccio

    Nice work on the flip flops! Also, the labels are a nice touch for identifying switches and lights but it would be nice to have a way of outlining an assembly of several gates and labeling it. A “label” that could be expanded beyond the size of the text and layered (automatically) under components and wires would do it.

    I miss something: In design mode you can no longer see and modify the states.

    I like the way you can select multiple components and move them (or delete them) at once. It would be great to be able to copy and paste them too (and with any wires that begin and end with selected components). I have a couple shift registers (4 and 8 bit) with some AND gates for pre-loading that I need 9 copies of!

    #
      
    • Len Marinaccio

      Hold the phone! The labels can be expanded if you add lots of spaces then a period after the text. Then you can expand in the Y direction by adding a lot of carriage returns. Only problem is that the black background makes the components hard to see. A more neutral color as the text background might do it.

      #
        

Comments are closed.