In addition to the hardware labs for EEE 120, there were five simulation labs. All work was done in Logisim, which was a free download. I thought Logisim worked out very well, although it was weak in regards to timing diagrams.
Logisim has all the gates and flip flops and other components that were discussed during the lecture videos. It was a great tool to use to be able to throw together a circuit and experiment with. In addition, there is an Analyze Circuit function that will give you truth tables and Karnaugh Maps for your equation. I used this feature a lot to check my work. You can either start putting the various components on the workspace or you can enter in an equation and have Logisim build out the circuit for you.
Another very helpful feature that we used a lot was the subcircuit and library capability. Over the 5 labs, we built the various components needed to build our microprocessor. Subcircuits were used to breakdown more complicated circuits into small components that could be used as needed. Very similar a function or a method if you’re coming from a programming background.
The five simulation labs we worked on were as follows:
Simulation Lab 0 – Using Logisim
Intro Logisim tutorial which had us build a few circuits, practice with sub circuits get some practice with binary numbers.
Simulation Lab 1 – Half Adder, Increment and Two’s Complement Circuit
Sim Lab 1 introduced the Microprocessor project we were going to work on building throughout the course. The circuits we needed to build were laid out of us although we needed to start to think about how to perform enough tests to make sure our circuits worked properly. With each of the circuits we built, we needed to package them up into subcircuits for use in the subsequent labs.
Simulation Lab 2 – 4-Bit Adder, Multiplexer, Decoder and Buffer
Sim Lab 3 in my option was probably the hardest lab. This one felt like I was tossed into the deep end and was sink or swim time. The TA and instructor were very helpful though. All of the circuits we needed to build had to be done with NOR gates and there were 8 circuits to build. All of which would play very important roles in the Microprocessor. Definitely start early on this lab.
Simulation Lab 3 – Arithmetic and Logic Unit
I really enjoyed Sim Lab 3 – all of the components we’d built in the prior simulation labs were put together to build our ALU. A lot of the concepts we’d been studying came together during this lab. While only four bits, it could easily be expanded to more which I had fun tinkering around with on my own.
Simulation Lab 4 – The Microprocessor
Everything came together in Sim Lab 4. For this lab we put together different types of memory and wiring up all the components together. The lab manual gave solid examples of how to wire up everything. In addition we were tasked with figuring out an instruction set and entering a program into memory to execute the program. That part is where I spent most of my time. Everything we’d built over the course of the sim labs was used here in addition to a few new memory items.
Here is a picture of my microprocessor:
By far the most challenging part of this lab was figuring out the instruction set. I found I was trying to make the opcodes much more complicated at first than they needed to be. I even went so far as to make an excel spreadsheet to help sort everything out. Here is a cleaned up version that has a template to help calculate the values to enter into the EPROM in addition to a sample of what one of the operations looks like. Op Code Template. I found this helpful to check my math and to refer back to as more opcodes were added.