Author Topic: I've designed a circuit board and soldered all the pieces.  (Read 10996 times)

good luck sorting all those wires my brother

good luck sorting all those wires my brother
I don't keep track of the wires, I keep track of the pinholes on the chips:

Bachelor of arts in biology with russian and criminal justice minors.
So are you interested in comp bio as well, or are you just one of these polymath types that can pick up stuff like this as a side project?  :cookieMonster:

So are you interested in comp bio as well, or are you just one of these polymath types that can pick up stuff like this as a side project?  :cookieMonster:
Honestly I wanted to go into college for a computer science degree but 17 year old me thought it would be too over-saturated. Sort of kicking myself now because I ended up changing majors half way through college to a stem field and now I'm gonna have to attend an extra year and only come out with a BA.

Maybe someday my evolution simulators and breadboard computers will let me live off youtube ad revenue.  :cookieMonster:

Anyway, I made a gif, sorry for the low resolution:

It's just a test of the general register B.
« Last Edit: April 19, 2017, 10:08:12 PM by DrenDran »

Actually quite well! I've updated the OP with a new picture and a few more opcodes.
I'll post a video this evening that shows the machine running a few basic programs I've made for it.
Could you describe your computer with a finite state automaton? I think in America they call it a finite state machine.

I'd love to see a single instruction like a move or add decoded into opcodes using of them.

Honestly I wanted to go into college for a computer science degree but 17 year old me thought it would be too over-saturated. Sort of kicking myself now because I ended up changing majors half way through college to a stem field and now I'm gonna have to attend an extra year and only come out with a BA.

The attrition/dropout rate is shockingly high for my university. My year had a lot of people who studied computer science to make big amounts of money and their grades suffered as a result. I heard it's the same for other establishments (at least in my country anyway).

I'm surprised you're not studying computer science. At my university, they taught us how to build a CPU from first principles in the second year so I'd imagine you would probably find the first year very easy going.

Hey so I just wanted to update to say that this got destroyed in trying to move back from college. That said, my new EEPROMs arrived and I think I'll at least try and get some hexadecimal displays made tonight.

Knowing what I know now I could probably build this in a week.

Hey so I just wanted to update to say that this got destroyed in trying to move back from college.
how emotionally destroyed were you on a scale of 0 to 1 to 12 to 13 to 0

new scientist builds intel i10 only to get it destroyed, shows amd his new cpu, gets bought out for 1 million dollars.

On Thursday I uploaded this video:
https://youtu.be/PXBCeddZLZM
Of my EEPROM being used to drive a 7-segment display.


I've also learned how to use KiCad and created this board:


Which I'll have printed for me at some point.
It's the cards usb power supply, clock, and step counter.

teach me

anyways looking pretty damn good

I'm surprised you're not studying computer science. At my university, they taught us how to build a CPU from first principles in the second year so I'd imagine you would probably find the first year very easy going.
this! good stuff OP, I'm impressed (that project destroyed me LOL)

I might have some screenshots from it if anyone's interested. I think it ran on MIPS architecture?

this! good stuff OP, I'm impressed (that project destroyed me LOL)

I might have some screenshots from it if anyone's interested. I think it ran on MIPS architecture?
Sure, I'd like to see some.


Anyway, here's some renderings of the first board I hope to have produced:
I'll probably have to have like 10 different boards made and then wire them together.

This handles the USB power supply, clock, step counter, 5->22 line opcode decoding, user interface, and interrupt handling.

Sure, I'd like to see some.


Expecting massive page stretch so click for full view. Didn't have to do any actual physical wiring thank god, this was pre-implementation of pipelining, don't think I have anything after this. The program outputs an address which the harness uses to find an instruction as an input, couldn't find the harness .circ file but all it would do is have a memory lookup of the output ("fetch_addr") and feed that output back into the cpu (as "INSTRUCTION"). If you're not familiar with this kind of architecture: it'll first pass through instruction fetch to get an instruction from the PC, then goes to instruction decoder where it's dissected into parts, looks up registers and passes opcode/func through controller, executes code & then writes back to memory/registers. There's a bunch of extra circuitry to handle immediates (i.e. constants) and program flow (i.e. jumping, returning) but that's the gist of it.

Also the controller was super dumb/tedious to implement as it involved basically hardcoding based on opcode and function code so I didn't put it in any screenshots, but it basically tells the ALU what to do/defines other cpu behavior based on what the operation specified by an instruction is

(but dear lord why would you do this to yourself... this class was the death of me, i couldn't imagine ever doing this for fun)

How's this look for an instruction set?

0 - No Operation
1 - Const to gen register
2 - Memory to gen reg
3 - Gen reg to alu reg A
4 - Gen reg to alu reg B
5 - Alu add to gen reg
6 - Alu OR to gen reg
7 - Alu AND to gen reg
8 - Alu NOT to gen reg
9 - Alu LEFT to gen reg
10 - Alu RIGHT to gen reg
11 - Gen reg to compare reg
12 - Compare to gen reg
13 - Jump unconditionally
14 - Jump if greater than
15 - Gen reg to display
16 - Gen reg to expansion
17 - Expansion to gen reg
18 - Trigger expansion
19 - Gen reg to memory
20 - Jump if less than
21 - Jump if equal
22 - Return to after last jump
23 - Wait to continue

The top two bits of an instructions word would select one of 4 general registera where applicable. The bottom 5 bits choose the opcode.

« Last Edit: June 08, 2017, 06:52:03 PM by DrenDran »


Tonight I do my first soldering.