NHacker Next
- new
- past
- show
- ask
- show
- jobs
- submit
login
▲Show HN: We built an 8-bit CPU as 2nd year EE students (github.comself.__VINEXT_RSC_CHUNKS__=self.__VINEXT_RSC_CHUNKS__||[];self.__VINEXT_RSC_CHUNKS__.push("2:I[\"aadde9aaef29\",[],\"default\",1]\n3:I[\"6e873226e03b\",[],\"Children\",1]\n5:I[\"bc2946a341c8\",[],\"LayoutSegmentProvider\",1]\n6:I[\"6e873226e03b\",[],\"Slot\",1]\n7:I[\"3506b3d116f7\",[],\"ErrorBoundary\",1]\n8:I[\"a9bbde40cf2d\",[],\"default\",1]\n9:I[\"3506b3d116f7\",[],\"NotFoundBoundary\",1]\na:\"$Sreact.suspense\"\n:HL[\"/assets/index-BLEkI_5r.css\",\"style\"]\n")>)
Rendered at 13:42:39 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
https://en.wikipedia.org/wiki/Simple-As-Possible_computer
Back in the day i built a 4-bit CPU on a breadboard (it was huge actually spanned 3 breadboards). Programming the ROM by hand like cavemen (to be fair it was the cave ages). We didn’t carry cameras in our pockets so sadly we didn’t get a picture.
At the end, my team drew straws to see who would get to keep it. Alas, I didn't win.
CMU in 1986.
That was also where I learned about ground-bounce & dynamic IR-drop effects due to those long looping wires between breadboards.
That was a fun class.
It doesn't appear to have any kind of interrupts, which is quite a limitation for actual usecases, but also makes the architecture much simpler.
The use of dual phase clocking is interesting. The document describes it as having the control and data paths operating on opposite phases. I'm curious as to where you got this technique from, since it's not common (apart from the use of both edges by DDR RAM). I also suspect that it would go away if you had better tooling for managing setup and hold violations (does logisim do that for you, or did you have to manage it manually somehow?). Not all FPGA tools like nonstandard clock architectures.
Most one-instruction processors take multiple clocks and often need extra registers (for fetching 16 bit addresses from an 8 bit wide memory, for example) [1].
The four instruction MCPU [2] is not as bad to program as the one-instruction computers (it still needs 10 times as many instructions as a RISC-V, for example) while being very simple. Making it Harvard allows it to be slightly simpler and making it 16 bits allows it to run non trivial programs [3].
[1] https://github.com/jeceljr/SBN/blob/master/sbn.pdf
[2] https://github.com/cpldcpu/MCPU
[3] https://github.com/jeceljr/digitalCPUzoo/tree/main/MCPU
Every output bit m of microcode can be equivalently expressed as a logic function of n inputs where the microcode has n incoming address lines. This no less transparent than pure logic if you know the contents of the microcode. Microcode is often preferred because changing it is much easier than changing a bunch of gate logic. IMHO factoring your design into registers vs. control signals and putting the control signals into microcode makes the design more transparent than having a giant sea of gates.
Very implressive tbh
You should include a screenshot of the logisim diagram
Not to say that this is easy, but I think you'd find that a whole lot more people are doing this kind of thing than you might think.
Now do it the other way round and make the 8 bit cpus become a 2nd year EE student.
My friends and I...
OP said:
> me and my friends together built an 8 bit CPU…
– and if one replaces that with your suggestion:
> My friends and I together built an 8 bit CPU…
– you'll find that you are, gleefully, wrong.
For those unaware, the simplest test for 'me and x' vs. 'x and I' is that, in the latter case, you should be able to remove 'x and', and have the sentence still make sense.
For example, 'Me and Lucy went to the shops' is technically incorrect, because 'Lucy and I went to the shops' makes sense if we remove Lucy. 'I went to the shops'.
The pendant's adjustment fails this test:
> I together built an 8 bit CPU
"I" is the subject of the sentence, or the person who is doing the thing. "Me" is the object of the sentence, or the thing that is receiving the action. Since he and his friends are the ones who did the building, "I" is the correct pronoun.
Going back to the test you gave, the correct way to apply it is to replace entire the noun phrase with "I" or "me". The noun phrase here was "me and my friends together". "I built an 8 bit CPU" vs "Me built an 8 bit CPU". The former is the obviously correct one.
See https://en.wikipedia.org/wiki/Muphry%27s_law