Skip to main content

Digital Circuit Simulator

Digital Circuit Simulator

https://makingartstudios.itch.io/dls

A downloadable game for Windows, Mac OS X, and Linux
Name your own price
Welcome to DLS, the digital logic simulator game.
TL;DR: Jump directly to the download section.

Intro

Currently the game works only in sandbox mode. Select between several build-in components to create complex circuits. Build-in components include:
  • Various types of I/O ports (numeric, LEDs, pixel displays, 7-segment displays, push buttons, etc.)
  • Basic gates (AND, OR, NAND, NOR, etc.) with configurable amount of inputs and bit sizes (up to 16 bits)
  • ROMs with variable sizes (from 2 x 1-bit to 64k x 64-bit)
You can also create custom scripted components using Lua to easily emulate complex circuits.
To get an idea about what's possible to build with DLS, see our github repository of schematics
DISCLAIMER: This is an alpha version of the game. Also, this is a toy logic simulator. You might find out that certain circuits, which should work correctly in real life, are reported as unstable in DLS. We'll be glad to test those circuits if you have the time to send them to us, in order to fix the simulator.

Input

DLS requires a keyboard and a mouse.
  • Left mouse button: Select, pick and drag (+Ctrl = clone selected gate/IC), add wire points, change values.
  • Right mouse button: Cancel action, remove last wire point, click and drag on grid to pan the view, gate context menu.
  • Mouse wheel: Cursor on grid => Zoom in/out, cursor on input port's value => change value.
  • Keyboard: WSAD or arrow keys to pan, Q/Z or numpad +/- to zoom, R to rotate gates and bus splitters/mergers..

Technical

Some technical details regarding the current version of the game/simulator.
  1. This is an event-driven unit delay simulator. Event-driven means that a gate is simulated only if one of its inputs change value. Unit delay means that all gates have the same delay, which is supposed to be 1, in arbitrary time units.
  2. Simulation is currently executed on the main thread. If your circuit is too complex, DLS might end up hanging until the simulation is finished. This will be fixed in a future version.
  3. Due to 2, a circuit is reported as unstable if its main event loop executes more than 1000 iterations.
  4. Uses bgfx and nanovg for rendering.

Third party libraries

DLS uses the following free software (in no particular order):
  1. GLFW - An OpenGL library (http://www.glfw.org/)
  2. bgfx - Cross-platform rendering library (https://github.com/bkaradzic/bgfx)
  3. nanovg - Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. (https://github.com/memononen/nanovg)
  4. zange - A single header ANSI C JSON parser (https://github.com/vurtun/zange)
  5. CrashRpt - A crash reporting system for Windows applications (http://crashrpt.sourceforge.net/)
  6. LuaJIT - a Just-In-Time Compiler for Lua (http://luajit.org/)
  7. Icons from Font Awesome - the iconic font and CSS toolkit (https://fortawesome.github.io/Font-Awesome/)
  8. Upheaval font (http://www.dafont.com/upheaval.font), Roboto font (http://www.dafont.com/roboto.font), Anonymous Pro Minus font (http://www.marksimonson.com/fonts/view/anonymous-p...)
We would like to thank their developers for building them and making them public/free.

Credits

Programming, testing: Jim Drygiannakis (@jdryg)
Graphics/UI: Antonis Drygiannakis

Release history

v0.9.0 (2016-07-16)
  1. NEW: Wider ROMs (word size up to 64 bits)
  2. NEW: Multi-bit multi- input standard gates (right click on the toolbar button to configure gate)
  3. NEW: Load/save ROM data from/to external files.
  4. NEW: 7-segment displays
  5. FIX: Changing any window related option which caused bgfx to be reset, ended up crashing the game if there was previously a display in the circuit and a display was added after the reset.
For details on previous version see Releases.txt or the sandbox manual.

IMPORTANT: The current version of the game is free. Nonetheless, itch.io gives you the freedom to buy us a cup of coffee or a beer, if you find the game interesting and you want to see it evolve. It's recommended to try out the game first, to make sure it works correctly on your machine, before giving us your money! :)
Thank you and have fun!

Comments

Popular posts from this blog

The Difference Between LEGO MINDSTORMS EV3 Home Edition (#31313) and LEGO MINDSTORMS Education EV3 (#45544)

http://robotsquare.com/2013/11/25/difference-between-ev3-home-edition-and-education-ev3/ This article covers the difference between the LEGO MINDSTORMS EV3 Home Edition and LEGO MINDSTORMS Education EV3 products. Other articles in the ‘difference between’ series: * The difference and compatibility between EV3 and NXT ( link ) * The difference between NXT Home Edition and NXT Education products ( link ) One robotics platform, two targets The LEGO MINDSTORMS EV3 robotics platform has been developed for two different target audiences. We have home users (children and hobbyists) and educational users (students and teachers). LEGO has designed a base set for each group, as well as several add on sets. There isn’t a clear line between home users and educational users, though. It’s fine to use the Education set at home, and it’s fine to use the Home Edition set at school. This article aims to clarify the differences between the two product lines so you can decide which...

Let’s ban PowerPoint in lectures – it makes students more stupid and professors more boring

https://theconversation.com/lets-ban-powerpoint-in-lectures-it-makes-students-more-stupid-and-professors-more-boring-36183 Reading bullet points off a screen doesn't teach anyone anything. Author Bent Meier Sørensen Professor in Philosophy and Business at Copenhagen Business School Disclosure Statement Bent Meier Sørensen does not work for, consult to, own shares in or receive funding from any company or organisation that would benefit from this article, and has no relevant affiliations. The Conversation is funded by CSIRO, Melbourne, Monash, RMIT, UTS, UWA, ACU, ANU, ASB, Baker IDI, Canberra, CDU, Curtin, Deakin, ECU, Flinders, Griffith, the Harry Perkins Institute, JCU, La Trobe, Massey, Murdoch, Newcastle, UQ, QUT, SAHMRI, Swinburne, Sydney, UNDA, UNE, UniSA, UNSW, USC, USQ, UTAS, UWS, VU and Wollongong. ...

Logic Analyzer with STM32 Boards

https://sysprogs.com/w/how-we-turned-8-popular-stm32-boards-into-powerful-logic-analyzers/ How We Turned 8 Popular STM32 Boards into Powerful Logic Analyzers March 23, 2017 Ivan Shcherbakov The idea of making a “soft logic analyzer” that will run on top of popular prototyping boards has been crossing my mind since we first got acquainted with the STM32 Discovery and Nucleo boards. The STM32 GPIO is blazingly fast and the built-in DMA controller looks powerful enough to handle high bandwidths. So having that in mind, we spent several months perfecting both software and firmware side and here is what we got in the end. Capturing the signals The main challenge when using a microcontroller like STM32 as a core of a logic analyzer is dealing with sampling irregularities. Unlike FPGA-based analyzers, the microcontroller has to share the same resources to load instructions from memory, read/write th...