"This makes the machine transparent in a way that microcode-based designs cannot be."<p>Every output bit <i>m</i> of microcode can be equivalently expressed as a logic function of <i>n</i> inputs where the microcode has <i>n</i> 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 <i>more</i> transparent than having a giant sea of gates.
Ben Eater's SAP came from "Digital Computer Electronics" by Albert Paul Malvino and Jerald A. Brown<p><a href="https://en.wikipedia.org/wiki/Simple-As-Possible_computer" rel="nofollow">https://en.wikipedia.org/wiki/Simple-As-Possible_computer</a>
Awesome project, re fpga implementation one option you might want to explore are used Bitcoin miner control boards if you want the best logic units/$ ratio. I've used the EBAZ4205 (zynq 7010) control boards with a cheap/generic FT2232HL dev board and it works great. Of course it's a bit more of a pain compared to a regular dev board
the rom-to-ram bootstrap is a nice touch. after it hands over, what stops
the bootloader from writing to I-SRAM again? a mode flag in the control matrix?
With all the talk about developers being lazy and younger folk not understanding the technology they use, it is always great to see examples of core foundational work still being done. Makes the rest of that talk feel like fear mongering.
[dead]