I'm In the process of making a major change to get rid of the chip class and change how the program evaluates the values of the circuit. This change was brought about by the implementation of propogation delay. Changes were made mainly to the logic_object class. All classes that currently inherit from chip will soon inherit soley from logic_object. These changes will make it easier to test the code and make it much simpler to use.
Well this week has been the first week back really working on the project after taking a week off and then going to my parent's house only to lose power for the week. I came back this week and forgot what I was doing with my code. So to get back into my project, I started making my wiki. I have a few pages describing how the program works, and some information on my motivation and progress for the project. You can look at the wiki here: http://circuitbox.wikispaces.com/ . Hopefully I'll be updating the wiki every week along with my blog. I've implemented the algorithm that I posted about in my previous blog. The program will now choose the correct path in the circuit (no infinite loops!), and can remember the path so it doesn't have to recalculate it. After I get the kinks out, I'll put the code up on github. I've learned enough OpenGL too to start making a GUI, so hopefully I'll get started on that at some point.
This blog has pictures, so I published it through google docs: https://docs.google.com/document/pub?id=1uytPdH7uHE2n4QNFc9v-8UotegJiXVqri93PuEW4Ltw .
I've just made a new commit. CircuitBox now has chips in the components library. The current code only has the 7400 and 7402 chips, but I'm by the end of the week I'll have a good portion of the 7400 series integrated chips added to the components library.
CircuitBox (previously OpenCircuitSim) is a program for creating digital and, eventually, analog circuits. As of right now, most of the back end for simulating digital circuits has been implemented, and after it is complete the analog circuit backend will be implemented. A graphical interface will be made as well using OpenGL. Last semester, Matthew McMullan worked on this project with me, but he has left the project. Matt controlled the git site, wiki, blog, and project on rcos.rpi.edu, and I was never really added to any of those, so my first step this summer was to make each of those and begin updating them. So far I've done all of those and just made my first commit. The current code on the site has simple gates implemented and comes with a test file (a full adder) to demonstrate how circuits are built and run at this point. At the moment, I also have several 74 series IC chips implemented and mostly functional flip flops and latches, but I would like to get those completely working and have an example file for them before I commit them. My goals for this summer are to fully implement the backend and graphical interface for the program. I would like to finish the backend for the digital circuits as quickly as possible, then work on the graphical interface and the analog circuit backend simultaneously. This past week were spent mostly doing documentation and streamlining the code. By the end of next week I would like to have the code for the 74 series IC chips and latches and flip flops finished and committed.