Close

Log06

A project log for S.A.M.I.R.A.

Synchronous All-Purpose Minimal Instruction Reckoning Apparatus

0xcafeaffe0xCAFEAFFE 01/12/2016 at 11:110 Comments

I started this project because I wanted to know, on the lowermost level, how a computer works. After I designed the machine in Logisim, I was not sure if it would work in hardware at all and had almost no experience with digital circuitry, so this is why I rushed into some things that I could have planned better.
What I learned from this project so far:

1)
It is easy to design a digital circuit on paper, harder in Logisim, fairly easy to build on breadboard but a nightmare to solder it to a circuit board.

2)

As you can see, my first circuit board looks like sh*t :D
This is, because the usual soldering technique, where your wires are soldered on the bottom of the board but come out the top, is not suitable at all for this number of connections. It is extremley confusing to turn the board around all the time for making the connections. You easily loose your sense of orientation and end up making wrong connections. I hope I never ever encounter any serious hardware problems with this machine, I'd rather build a new one than try to debug this! And if I build another machine (which is likely) I will probably try wire-wrapping it.

3)
Neither normal solid nor stranded wire is suitable for making connections. Solid wires are not flexible enough and take too much space, stranded wire easily breaks at the soldering points. I ended up using AWG30 wire wrapping wire. It is small in diameter, flexible and does not break so easily.

4)
The momentary switches I used, are not suitably for this project. They bounce like mad and eventhough I added capacitors and even schmitt-triggers, they still do. I'll have to use other switches next time, test their bouncing behavior in advance, and design proper debouncing circuits as well.

5)
I have to design a proper mechanical system in advance as well, to keep the circuit boards in place. I still don't know how to do this now. I don't have space left to drill holes into the boards and gluing them into the casing is ugly. Next time I will not connect the boards with wires directly, but plug them onto a main board whose purpose it is to interconnect the seperate boards and provide a mechanical connection.

6)
I should have spent a little more time to pick the integrated circuits i used, the registers on the first board, as well as the RAM for example are unnecessarily big, if i only used edge-triggered circuits, i could have left out the DEC-step in my decoding sequence.

I'll update this if something else comes to my mind!

Discussions