Showing posts from December, 2013

ALU Construction: Completed Logic Card Full Test

The ALU logic card is now finally complete! ... well, it is now I've popped the last few relays into their sockets. The final card looks like this:
As the old saying goes: a picture paints a thousand words ... I'm not sure therefore how many words a video paints but it definitely seems the best way to demonstrate the card in operation. So, with that in mind, I've (painstakingly) put the following YouTube video together which gives a walkthrough of the ALU logic card in operation. This one also breaks tradition with my previous videos, where the only sound is the relays clicking, and has a narrative track added courtesy of my very own 'dulcet' tones.

As you can well imagine I'm pretty pleased that everything is working as intended but this is just the beginning ... there's still two other cards needed (the Arithmetic and Control cards) to form the full ALU and then there's all those registers let alone all the control and timing circuitry coming up ... b…

ALU Construction: Logic Card Wire Wrap 3

I'm now just one session of wire wrapping away from a completed ALU logic card. The final job is to wire up the gating relays that select one of the five logic results back on to the data bus. Nothing too difficult ... just a case of routing the wires in the best way possible to keep things neat and out of the way of the relay sockets.
Keeping with the same wiring colour convention as before the green wires are the results heading out to the data bus, the blue wires are the inputs B and C and the yellow wires are the control lines which activate each of the gating relays as required.

That's the logic card pretty much done ... just need to pop in the final relays and give everything a test.

ALU Construction: 8-bit Logic Unit Tests

There's now enough sockets, solder and wires to test all eight bits of the ALU logic card. This isn't quite a full test as the gating relays that apply one of the results produced by each bit unit haven't been wired up yet but there's enough there to be able to set an input and see the results displayed on the LEDs along the front of the card.

So, it's time to crack out the relays and pop them in the sockets that make up each logic bit unit. There's four relays needed in each logic bit unit so thats 32 relays in total and this is what it looks like:
I've resisted the temptation to pop the relays in and do tests earlier as I don't want to risk damaging the relays or sockets by repeatedly inserting and removing the relays. The main idea for using sockets was so I can replace any failing relays in the future but generally once they're on the board they're staying there.

With everything set to go I've got the test board made earlier plugged in t…

ALU Construction: Logic Card Wire Wrap 2

Continuing on with the wire wrapping for the ALU logic card next up is the input and result links:
Given the limited range of colours I've got to choose from (Black, Red, Green, Blue, Yellow) I've chosen the following scheme for the wire links:

Black: Internal wire linksRed: Power linksBlue: Input linksGreen: Result linksYellow: Control links
I'll no doubt break this convention at some point but in general it should make the cards a little bit easier to fathom out at first glance ... especially as the number of wires on the board increases.

Technically there's now enough wire linked in to actually spark up the card and see the results on the LEDs along the card front ... and it's too much of a temptation for me not to so I'm going to plug in some relays and give it a whirl.

ALU Construction: Logic Card Wire Wrap 1

Finally, with all the soldering now done, it's time to set about wire wrapping the ALU logic card. First up is the internal connections within each logic bit:
After wire wrapping a new set of wires I always run the multimeter over the board to double check everything is connected as intended. Again though, if there are any mis-wirings it's trivial to correct — just unwrap the wire and wrap in a new one. There is a bit of skill required to get a 'perfect' wrap (where a bit of the insulation is taken around the post followed by nice tight coils above that) and mine are certainly not all perfect but bad ones can always be re-done.

Next is the internal power links in each logic bit and the links taking the results from each bit down to the LEDs:
It just so happens that when using my multimeter in the diode test mode it passes enough current to dimly light the 12V LEDs which makes checking the display link wiring just that bit easier (and without the annoying bleep which it…

ALU Construction: Logic Card Power Rails

It seems that every time I move on to the next stage of construction on the ALU logic card it's fiddlier than the stage before it ... this stage is no exception. This time I'm adding the power and ground rails that run around the solder side of the board. I'll start with a picture of how it looks:
The really, really, fiddly bit this time is cutting all those lengths of (solid single core) wire to the required length and then stripping the insulator, bending the ends and soldering down — nothing complex ... just fiddly. As part of adding these rails I've laid down some additional header pins up the middle of the board to get power to the relay gates as needed. Following usual convention the 12V power rails are in red and the ground rails are in black.

That pretty much wraps it up for the soldering work on this board. I've given the board a quick initial clean with some PCB cleaner to remove all the rosin residue (embarrassingly enough I'm not sure if the solder …

Test Board: Construction

I've just realised that as I've been constructing the first ALU card I've not given much thought to how I'll actually test the card (or other cards for that matter) when complete ... this post therefore represents a quick aside to tackle testing.

What I'm looking for is a small board with enough switches on it to drive the various inputs of each card ... ideally it'll be reusable between cards and easy to use. I did originally think of using DIP switches but they're a bit on the fiddly side so I've gone for tactile switches instead — the main problem with these is that they're non latching but I figure that I won't need to push more than 10 buttons at a time hopefully.

There's not a lot of planning gone in to this one ... I just grabbed the bits from my parts box and set off soldering (sometimes it's nice just to get stuck in rather than planning everything ;) The result looks like this:
The three rows of buttons have no fixed purpose an…

ALU Construction: Logic Card Relay Sockets

The construction of the ALU logic card is coming along nicely but there's still a lot of soldering ahead to get all the relay sockets down ... and this part is the fiddliest bit yet.

The biggest issue I've found getting the sockets in place is that unlike the header pins, which tend to stay in place on the board whilst you solder them, the sockets will keep falling out. Usually if I'm soldering components down I'll work in order of height from shortest to tallest so that when the board is turned over the components have nowhere to go ... unfortunately because I started with the LEDs first there's nothing to hold the sockets in place when soldering. To get around this I've had to develop a new skill where I hold the socket in with a finger on one hand and then pick and place a blob of solder with the other hand (remembering which pin I've got my finger on to avoid a nasty burn). Needless to say I'll try and make sure I do things in the 'right' or…

ALU Construction: Logic Card Header Pins

Following on from the successful construction of the first bit on the ALU logic card in my last post it's now time to start putting together the other 7 bits and the gating circuits (to place one of the logic results on to the data bus). First up is soldering down all the header pins that I'll wire wrap to.

This part of the construction is certainly repetitive and it's easy to make mistakes ... and actually I made a couple within placing down the first few headers. Suffice to say that it's a lot easier to solder multi-leg components than it is to unsolder them. Here's the result of this evenings work:
The board is starting to take shape now ... the next job will be soldering down all the sockets for the relays which promises to be an incredibly fiddly job.

ALU Construction: 1-bit Logic Full Construction

So, although I probably should construct the logic card methodically a full stage at a time (solder header pins then sockets then wire wrap) I can't resist fully assembling a single bit alone to see if/how it works. Here of some pictures of that single bit all soldered in and wired up:
This is the first bit logic unit out of 8 in total and effectively the pattern is repeated 4 times across the board and for 2 rows up the board. One thing I was definitely reminded of when putting this first bit together is how small components on a 0.1 inch pitch actually are and it really is quite fiddly work. Again, the soldering is a bit grizzly where I've joined several pads together and couldn't keep the heat up and solder flowing.

Before powering this new circuitry up I did some spot checking with a multimeter and straight away found some mis-wired connections ... although being as I chose to use wire wrap it's trivial to correct mistakes. With everything then looking good it was…

ALU Construction: LED Tests

Following on from my last post I can now test the LEDs that have been soldered and hooked up to the header pins on each of the three ALU cards (Logic, Arithmetic and Control). As promised, here are the videos of said testing:

You might notice I'm prodding around slightly more carefully on the arithmetic and control cards ... due to a lack of foresight I've ended up with every second header pin being a direct line to 0v ... which is not great when the thing I'm holding has 12v at the tip. Luckily my power supply handles short circuits well but even the briefest of sparks can be a tad embarrassing. At some point I'll chop off the extraneous header pins (as they're not needed) to ensure I don't accidentally wire-wrap to one of them later on.

ALU Construction: Logic Card Wire Links

Before I can test all of the LEDs laid down so far (to make sure they survived the heat of the soldering iron) I need to add some wire links on the logic card between the LED anodes and the header pins. This isn't needed on the arithmetic and control cards as they only have a single row of LEDs and so are soldered directly to the header pins but on the logic card, which has two rows of LEDs, the 'negative rail' sits between the LED anodes and header pins.

To make the wire links I'm using the same 30AWG Kynar wire I'll be using later for wire wrapping. This is a bit fiddly due to the size of the wire but not bad once you get the hang of it. With the links in place the logic card now looks like this:
I've also tidied up some of the uglier solder joints whilst the 'iron was hot' (although the results still won't win any beauty contests).

I should now be able to test the LEDs (fingers crossed) ... I'll take some videos of the results and post them …

ALU Construction: LED Header Pins

So far, in the construction of the three ALU cards (Logic, Arithmetic and Control) I've soldered down the connectors and LEDs. It's now time to solder in some header pins and join them to the existing connectors and LEDs ready for wire-wrapping later.

You can get proper wire-wrap posts but they're really expensive for what they are (mainly, I guess, because it's quite an old-fashioned construction method). I've found, though, that header pins do the job just as well but being as they're not as tall you can only get a maximum of two wraps on each pin. Incidentally, I've chosen wire-wrap for most of the cards inner connections as it allows easy and quick modifications and correction of errors (something that can be quite difficult with soldered connections or pretty impossible with etched PCBs). Additionally, I quite like the finished look you get with wire-wrap.

With the header pins added the three ALU cards look like this:
Soldering the header pins themselv…

Backplane Design and Construction

Originally when I was thinking about how I'd connect up the various cards of this computer I had ribbon cables in mind. Ribbon cables are straightforward to use and physically flexible which would  allow me to work out how I'd physically arrange the cards later on. However, the more I thought about it the more I liked the idea of using a backplane that the cards would slot in to — a bit like those 19 inch server racks that take CPU cards. This would also give the cards some physical support so I could test several cards together with the whole thing freestanding.

Design-wise there's not much to it (also available as a PDF on my Google Docs):
The connectors at the top and bottom of the card are right-angled boxed headers and are the same as used on the three ALU cards (Logic, Arithmetic and Control). The connectors running up the middle of the board are header pin sockets that match the size and position of the boxes headers on each of the cards. These carry the same signa…

ALU Construction: Connectors and LEDs

As promised in my last post it's finally time to get the soldering iron out and make a start on constructing the three cards that make up the ALU. I'm going start by laying down the connectors and LEDs on each card to make sure I'm happy with the look and feel of things and then I can move on to everything else needed later.

As mentioned in earlier posts I'm basing my construction around 55 x 40 hole pad boards which fit my designs quite nicely at the right sort of size I'm looking to construct at. The connectors are right angled box headers and are simply soldered down to the back of the boards whilst the LEDs run along the front. The LEDs themselves are 3mm 12V types so that an additional resistor is not required (which would make the 'crammed in' Logic unit design even more tricky) and to make construction a bit more manageable each LED sits in a right angled holder.

Speaking of the LED holders, I was hoping to get hold of the ones that can be joined to…