Close

Fixed value board

A project log for World's first 32bit Homebrew CPU

Creating the world's first 32bit homebrew CPU using 74' series logic.

phil-wrightPhil Wright 01/08/2017 at 12:109 Comments

Well the latest batch of PCB's have arrived. Finally I have a simple 32 bit fixed value board. This allows me to set a 32 bit value using dip switches so I can then feed that value into other boards as test values. This makes debugging so much easier.

I must have picked the wrong component in Eagle to represent a standard resistor because you can see that the space allocated for each one is much greater then really needed. Fortunately it does not really matter as there is plenty of room on the board anyway. Although, adding 32 pull up resistors seems like I am doing things the hard way. There must be a simpler way of achieving the same effect? Any ideas?

I used the boards straight away to test each of the 2-1 mux boards I have built. I can set two values going in and then use two display boards (each display board only shows 16 bits) to show the 32 bit output. Then just toggle the output select line and instantly check it works as expected.

Next up was checking that each of the register store boards works. I need a total of 16 for the 16 general registers in the RISC-V ISA. Unfortunately I ran out of components once I have built 10 of them but it still makes quite the impressive vertical stack. The input and two output ports are all connected vertically Arduino style as is the power supply connector. That just leaves a 3 pin right angle connector for each register that allows for per-register selection for output and writing.

My next job is to get the components ordered to finish the stack and then the board that will be needed to generate the 16 sets of control outputs for them. Then finally the first major block of the CPU will be completed, the general register file.

Discussions

Ted Yapo wrote 01/08/2017 at 16:34 point

I like it!  I've always wanted to use thumbwheel switches for this kind of thing.  Hexadecimal thumbwheels seem hard to find, but you could do octal on 10-position switches (and just ignore 8 and 9).  They're cheap these days on ebay:

http://www.ebay.com/itm/10PCS-22-8MM-DECIMAL-0-9-DIGITAL-PUSHWHEEL-THUMBWHEEL-8421BCDCODING-SWITCH-KM-1-/261913742626?hash=item3cfb468d22:g:BtYAAOSwdsFUN1PN

but, I guess 10 octal digits is only 30 bits - you would have to go to eleven!

So, on another note, have you noticed that it's difficult to get long stacks of boards mounted on standoffs?  I did this with my diode clock, and by the end of the stack, it was always difficult to get the last few boards on.  Maybe the standoffs were not all exactly straight, or they were not aligned in the holes correctly, or whatever, but it was a real pain.  The only way I got it to work was by not tightening them until all the boards were on, then going back and using wrenches to tighten them all "at once".  I didn't have black anodized standoffs - so I had painted them, and the wrenches would leave marks.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 01/08/2017 at 17:15 point

that's why *real* engineers use backplanes ;-)

  Are you sure? yes | no

Nicky Nickell wrote 01/08/2017 at 18:58 point

or a wide ribbon cable. might even be cheaper than the stacking headers

  Are you sure? yes | no

Yann Guidon / YGDES wrote 01/08/2017 at 19:04 point

ribbon cables are ok for straight signals.

when you want to do some smart routing (like I do), however, you need a PCB.

  Are you sure? yes | no

Nicky Nickell wrote 01/08/2017 at 19:32 point

was meaning in this specific case since he has common lines between all of the boards, but I see what you're saying.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 01/08/2017 at 12:18 point

A resistor network would use less room too :-)

  Are you sure? yes | no

Phil Wright wrote 01/08/2017 at 12:18 point

Definitely will do that once I getting further along.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 01/08/2017 at 12:16 point

Wow !

One other thing to do is to interface some computer/microcontroller to generate values on demand, such that "test vectors" can be repeatedly fed to the circuit.

  Are you sure? yes | no