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.

Building a portable GSM BTS using the Nuand bladeRF, Raspberry Pi and YateBTS (The Definitive and Step by Step Guide)

https://blog.strcpy.info/2016/04/21/building-a-portable-gsm-bts-using-bladerf-raspberry-and-yatebts-the-definitive-guide/ Building a portable GSM BTS using the Nuand bladeRF, Raspberry Pi and YateBTS (The Definitive and Step by Step Guide) I was always amazed when I read articles published by some hackers related to GSM technology. H owever , playing with GSM technologies was not cheap until the arrival of Software Defined Radios (SDRs), besides not being something easy to be implemented. A fter reading various articles related to GSM BTS, I noticed that there were a lot of inconsistent and or incomplete information related to the topic. From this, I decided to write this article, detailing and describing step by step the building process of a portable and operational GSM BTS. Before starting with the “hands on”, I would like to thank all the pioneering Hackers and Researchers who started the studies related to previously closed GSM technology. In particul