On the ARM FPGA group on LinkedIn I ran across a link to the J1 Forth CPU, designed by James Bowman. This diminutive processor is written in 200 lines of Verilog (including about 20 lines of comments). Forth is a stack based language that uses Reverse Polish Notation, and it maps well onto this 16 bit stack based CPU, which has a 33 deep data stack, 32 deep return stack, and a 13 bit program counter. There are no other registers, status flags, or modes.
The native instructions of the J1 are so close to Forth words that the assembly language of the J1 effectively is Forth. I worked at a company as a grad student whose product was a Postscript rasterizer written in Forth (actually a version of Forth they called Fifth). I never really “got” Forth (or Fifth), but since my job was to diagnose and repair boards it didn’t matter too much.
Is this design the quantum computer (i.e. the smallest computer that still exhibits the properties of a computer)? Probably not, a Turing machine is the simplest conceptual computer and it could likely be written in less than 200 lines of verilog, and implemented in fewer gates and bits of storage. However, in the 21st century a more relaxed definition of what constitutes a computer has come into being: Can it Twitter, and are there any games for it?
With a TCP/IP stack that includes an Ethernet driver, ARP, IP, UDP, DHCP, and XYZPDQ (the last one doesn’t actually have anything to do with networking), the J1 can certainly Twitter, and it also plays Space Invaders.
You can read all about the J1 in the paper that Bowman presented at EuroForth 2010.
Design News Gadgeteer