System/1 Build Log
An ongoing chronology of System/1's construction, and any other related musings.
18th April, 2014 - Construction begins!
Today is Good Friday, for those that observe it, which also means it's the first day of a four-day weekend here in the UK. Since I've had a large box full of parts earmarked for System/1 staring at me accusingly from the corner of the study for a few months now, let's get cracking!
The sensible choice for a starting point seems to be to build a register module or two. These modules form the core of the system, in a sense; if the bit-serial design I have in mind doesn't work for simple data storage in the register file, I haven't the proverbial snowball's chance of making it work in the rest of the system. Building a couple of modules would allow me to make sure that they retain their contents properly when they aren't being loaded with new data, as well as being able to wire up some simple data transfer paths or logic functions between them to make sure that I'm thinking about clock cycles, edges and timings properly.
(Naturally, this is all really basic stuff, but I'd better make sure I understand the really basic stuff before I start moving on to more complex parts of the system — otherwise misery shall await me!)
To that end, then, I had a dig through the big box of parts and found the bundle of tubes of 74HC164s and the tube of 74HC157s, along with the (somewhat soberingly large) roll of decoupling caps and the little package of PCBs from Elecrow. They arrived a while back, but I hadn't got around to taking any out to inspect them yet — they look fairly neat, although I can see why people recommend against black soldermask if you might need to follow a trace around the board!
After a brief soldering session at the bench I have two register modules assembled, and so dig out a breadboard and my trusty mbed — the mbed libraries and online compiler make it pretty useful for throwing together quick test programs — and set about putting together a set of test loops to shift data into one register, make sure it's there and the other register hasn't changed, move data from one to the other and so on.
Everything seems to be working nicely first time, which is a relief (it means I haven't conjured up this entire design based on a faulty premise!), and then a friend from university days tells me his wife has just given birth to their first child. All in all, a very good day, and made even better by the prospect of a nerdy beer gathering tomorrow. Cheers!