Most impressive breadboard computer? - Page 1
Forum section: electronics / general

author: golden_labels
author_rank: Super Contributor
timestamp: June 22, 2024, 01:21:57 am
content: The builder is going to disassemble the computer afterwards. This feels like a nerd’s version of mandala.Amazing work. I’ve seen many so far, so I’m a bit less impresse by that thing merely working. But this one is one of few very elegant layouts. It even has neat buses laid out as separate lanes. Not just a ratnest of wires.

author: brucehoult
author_rank: Super Contributor
timestamp: June 22, 2024, 02:06:20 am
content: Very unusual to have a 3-address (plus constant!) instruction format in an 8 bit computer. And explicit opcode bits for whether an instruction is a jump / binary op / unary op / enable register write etc. The instruction format is like what comes out of a RISC instruction decoder. The ISA could probably have been encoded into 16 bits per instruction, if not 12, instead of 24. Also I don't quite get what $i is in his assembly language.

author: golden_labels
author_rank: Super Contributor
timestamp: June 22, 2024, 06:03:37 am
content: Could be a marker for instructions using immediate arguments. Perhaps, while writing the assembler, he was planning various argument types.

author: brucehoult
author_rank: Super Contributor
timestamp: June 22, 2024, 06:27:55 am
content: Quote from: golden_labels on June 22, 2024, 06:03:37 amI think you're probably correct. There's a hint in the comment in the immediate field that the immediate operand can replace either the first or second operand -- only really useful for subtraction. I can't see any way to control this except the two "bus selection" bits, which aren't explained. I think 11 may mean to use register sources, and a 0 in either position means to use the literal value instead of that register source -- or possibly even both of them for 00! This is visible in the pseudo instruction for load immediate, which is exactly the same as mv except for the bus selection bits being 1x instead of 0x.

author: SiliconWizard
author_rank: Super Contributor
timestamp: June 22, 2024, 07:00:19 am
content: Spending so much time and effort on something that is so short-lived is kind of crazy.Either that, or it may be a lesson in wisdom.

author: Psi
author_rank: Super Contributor
timestamp: June 22, 2024, 07:13:45 am
content: As amazing as it is, it's even more amazing that it's all working on board boards and has no bad connections

author: pcprogrammer
author_rank: Super Contributor
timestamp: June 22, 2024, 07:14:01 am
content: Quote from: SiliconWizard on June 22, 2024, 07:00:19 amWhy, when it is a hobby you just have fun doing it.I can see this one as very frustrating though, when one of the many wires acts up with a bad contact. Good luck in debugging that.

author: Psi
author_rank: Super Contributor
timestamp: June 22, 2024, 07:15:51 am
content: yep, sometimes the satisfaction of knowing you actually did something is the entire reason for doing it.

author: tggzzz
author_rank: Super Contributor
timestamp: June 22, 2024, 08:01:26 am
content: Quote from: Psi on June 22, 2024, 07:13:45 amQuote from: pcprogrammer on June 22, 2024, 07:14:01 am"Just because I can and I want to" is a valid reason for doing something heroically obtuse.I think we can assume that the builder didn't sneeze or slam the door while testing it.However, he is honest, and notes problems that come asabsolutely zerosurprise (myemphasis)"Noise was a big problem. The clock design I came up with was very sensative. This meant that atransient voltage spike/drop would often cause an unintentional clock step. A couple of times I had problems that were solved by simply adding capacitors to make my power supply more stable. I also discovered very late into the build that myclock only works with my oscilloscope plugged into the wall. It doesn't need to be connected to anything, or even turned on. Just plugged into the wall. The moment I unplug it my computer goes haywire."https://naberhausj.com/miscellaneous/8-bit-computer/page.html

author: tggzzz
author_rank: Super Contributor
timestamp: June 22, 2024, 08:06:23 am
content: Quote from: golden_labels on June 22, 2024, 01:21:57 amSuch "neat" busses can cause crosstalk, and hence pattern-sensitive (mis)behaviour.The creator has noted "noise problems".The construction techniques and solving problems by adding capacitors are exactly what I would expect an inexperienced softie to do. But that's exactly what he isGood for him for doing it, and not hiding the problems he encountered.

author: tooki
author_rank: Super Contributor
timestamp: June 22, 2024, 08:49:03 am
content: Quote from: Psi on June 22, 2024, 07:13:45 amSomeone asked this in a comment, and he said those problems went away once he found a source of good breadboards.

author: tooki
author_rank: Super Contributor
timestamp: June 22, 2024, 08:52:26 am
content: Quote from: tggzzz on June 22, 2024, 08:06:23 amIndeed! And I am sure that simply reducing the lengths of the wires and cables would improve things a lot. All the other breadboard CPUs on YouTube (and there are way more than one might think!) use much, much tighter layouts and wiring.

author: brucehoult
author_rank: Super Contributor
timestamp: June 22, 2024, 10:19:55 am
content: Quote from: brucehoult on June 22, 2024, 06:27:55 amYes, that turns out to be correct. The README description of the instruction set doesn't address this question, but the assembler makes it clear e.g. in the utility routine used to encode add, sub etc:https://github.com/JosephNaberhaus/8-bit-computer-programmer/blob/fac1fd06cdfba79c77ea9babe20bd8adc8558ee7/assembler/main.go#L277Note that the bit order is reversed compared to the diagram in the video. The two "bus selection" bits are the LSB and bit 1 of "control". The left operand uses bits 3:2, the right operand bits 5:4, and the result register bits 7:6.Both source operands could indeed use the constant value -- which isn't useful at all.

author: golden_labels
author_rank: Super Contributor
timestamp: June 22, 2024, 05:00:52 pm
content: Quote from: SiliconWizard on June 22, 2024, 07:00:19 amYour person is very short lived. Why spend so much time and effort on it? Mere six dozen years and poof. The wind blows it all away, one lightsecond from Earth nothing and nobody even notices.

author: Rick Law
author_rank: Super Contributor
timestamp: June 22, 2024, 06:22:25 pm
content: This is indeed very impressive.A college should build a one or two semester course on this. This is a great tool to teach or to learn with. CS majoring students should have some understanding of the inner workings of a CPU and the inner workings of a computer. Building something like this will help a great deal in absorbing that knowledge. Even looking at a working build can help explaining to students the different working parts.There may be a market for a kit with wiring diagram. I can imagine many colleges want to use that as teaching aid.

author: DiTBho
author_rank: Super Contributor
timestamp: June 22, 2024, 07:39:50 pm
content: With FPGAs + hdl sim. Instead of ttl/cmos.

author: themadhippy
author_rank: Super Contributor
timestamp: June 22, 2024, 08:01:57 pm
content: Quotesomething like this?https://eater.net/8bit/

author: brucehoult
author_rank: Super Contributor
timestamp: June 22, 2024, 08:13:25 pm
content: Quote from: Rick Law on June 22, 2024, 06:22:25 pmThis exists.On the simpler end, Ben Eater's design with 16 bytes of space for code+data:https://eater.net/8bit/kitsAnd on the "can actually do useful things at useful speed" end ... for example can emulate 6502 or z80 ... there is Gigatron, which has in the past been available as a kit (until one of the designers died, I think), but is still documented:https://gigatron.io/