Here's a challenge for everyone interested in CPU design - design something small. In fact, so small you can fit it on one page.
To keep it fun, make up your own idea of what that means - one page of spec, or one page of schematic, or one page of HDL, or a one-page emulator in the language of your choice. If you can write a one-page monitor, or any application in one page, that's interesting too!
And if you want to define one page as a huge page with tiny font, go ahead! Personally I'm more interested in the 66-line fanfold paper, which is I think 132 characters across. I hope not to code-golf, so the code is remains readable and self-explanatory. I just might allow myself to print at 8 lines per inch, and get 88 lines to the page.
Here's an image, with the extra register and little LEDs to tell you what data is being sent where. (the register (OUTPUT_REG) is a fill-in for a co-processor, since the way that it communicate is through a shared register anyway)
See our #OPC-5 - a CPU for FPGA, in one page which is still evolving but has been seen to compute hundreds of digits of Pi. It's a 16-bit wide, word-addressed machine, with 16 registers.
What would be a good a demonstration that the one-page creation is indeed a computer? For me, controlling some hardware according to a program is ample demonstration, and for a more conventional machine, some kind of numeric processing, for example something like any one of these:
- print out the first N squares [1]
- the first N Fibonacci numbers
- the first N primes
- the first N square roots
- the first N digits of e
- the first N digits of pi
- Mastermind / cows and bulls game
- Higher/Lower guess a number game
- Lunar Lander game (not real time, of course! Turn-based.)
[1] Historically interesting: EDSAC ran a squares and differences program written by Wilkes. It had multiplication, so squaring was easy, but printing numbers in decimal always takes effort. http://www.cl.cam.ac.uk/~mr10/edsacposter.pdf
Running any kind of HLL interpreter would support any of those programs, but they could equally well be written in assembler. I'd be surprised to see a reasonable interpreter in one page.
My entry: https://hackaday.io/project/159003-c61 -- a 6-bit pipelined CPU with schematic that fits on a single page.