Digital logic design and simulation project

Programming, for all ages and all languages.
Post Reply
Peterbjornx
Member
Member
Posts: 116
Joined: Thu May 06, 2010 4:34 am
Libera.chat IRC: peterbjornx
Location: Leiden, The Netherlands
Contact:

Digital logic design and simulation project

Post by Peterbjornx »

Because of a project I am planning to start in the near future, I was looking for a good, modern, digital logic design suite that was
  • Free
  • Hackable
  • Powerful
I considered several options, but none of them were good enough. I looked at extending logisim but its total lack of documentation and weird design choices made this infeasible.
As a result of this I have started working on my own software for this purpose, I am planning to make it have at least these features:
  • Timing analysis
  • Data level signal inspection ( grouping buses and showing the actual value instead of 2^N high/low values )
  • Netlist export
  • Eurocard layout editor
  • Schematic entry
I have first started work on the circuit representation and simulator, the simulator is an event driven design which attempts to allow efficient, yet accurate modeling of large designs.

The project is written in Java, as it is an easy language for application development.

GitHub Project: https://github.com/peterbjornx/openlogiceda

Progress:
January 9, 2017 - First Simulator tests
A circuit with two clocks and an AND gate: ( notice the propagation delay ):
Image

January 12, 2017 - Working on the component symbol editor
Testing pin placement,
Functions already implemented: Undo/Redo, Copy, Delete, Move, Rotate, Add, Context menu, Select, Multiple select, Save, Open, Edit properties
Image
Last edited by Peterbjornx on Wed Jan 11, 2017 7:29 pm, edited 1 time in total.
User avatar
dchapiesky
Member
Member
Posts: 204
Joined: Sun Dec 25, 2016 1:54 am
Libera.chat IRC: dchapiesky

Re: Digital logic design and simulation project

Post by dchapiesky »

A worthy undertaking! Good luck with it and keep us posted.

Do you have a maximum number of gates you envision it will be able to support?

I ask only because I had a simulation system (not electronics related) which became very useful - so much so that running multiple side-by-side comparisons became useful - and then one day none of them would fit in memory.

So when doing simulations I offer this advice - divorce the simulation from the GUI via networking and design the simulation to be scalable and parallel. While this seems overkill in the beginning, the ability to make a tweak to some sim code and run old and new versions against same data is invaluable.

Finally - since you are working with Java - I will recommend:

http://www.axonframework.org/

A CQRS (Command/Query Responsibility Separation) Framework and Event Store

Your sim event behavior code become discrete methods
Your sim event stream is recorded and can be played back (actually reducing run time)
Your sim event stream becomes accessible via a REST API so that you can hook in other sim applications to consume and generate additional events

It kicks @$$ and you work on the sim and not on the db

Cheers
Plagiarize. Plagiarize. Let not one line escape thine eyes...
Peterbjornx
Member
Member
Posts: 116
Joined: Thu May 06, 2010 4:34 am
Libera.chat IRC: peterbjornx
Location: Leiden, The Netherlands
Contact:

Re: Digital logic design and simulation project

Post by Peterbjornx »

Added a component editor ( see main post )
Peterbjornx
Member
Member
Posts: 116
Joined: Thu May 06, 2010 4:34 am
Libera.chat IRC: peterbjornx
Location: Leiden, The Netherlands
Contact:

Re: Digital logic design and simulation project

Post by Peterbjornx »

Component editor is almost complete
Image
Peterbjornx
Member
Member
Posts: 116
Joined: Thu May 06, 2010 4:34 am
Libera.chat IRC: peterbjornx
Location: Leiden, The Netherlands
Contact:

Re: Digital logic design and simulation project

Post by Peterbjornx »

Schematic editor and sim
Image
User avatar
Ycep
Member
Member
Posts: 401
Joined: Mon Dec 28, 2015 11:11 am

Re: Digital logic design and simulation project

Post by Ycep »

You should make differences between compoments so users could spot a difference between resistor and capacitator.
Except that, it looks amazing!
Peterbjornx
Member
Member
Posts: 116
Joined: Thu May 06, 2010 4:34 am
Libera.chat IRC: peterbjornx
Location: Leiden, The Netherlands
Contact:

Re: Digital logic design and simulation project

Post by Peterbjornx »

Im not planning on supporting any analog components, but in fact, a component can be designed however the user likes: They are all just drawings similar to a schematic, fully customizable.
Post Reply