A Tiny Computer

Lambda the Ultimate today posted a interesting blog entry on A Tiny Computer. It refers to 2007 paper by Chuck Thacker at Microsoft Research describing a tiny 32-bit processor. Appendix A of the paper includes the entire synthesizeable verilog implementation in just a page and a half of code! Here’s a direct link to the PDF: http://www.bottomup.co.nz/mirror/Thacker-A_Tiny_Computer-3.pdf.

I plan on using verilog for my initial moxie implementation. I’m told that it’s the clear choice from a tools perspective. There’s even a free software implementation already packaged for Fedora: Icarus Verilog. As far as eduction is concerned, I’ve mainly been using the two terrific books show below. Do you have any better suggestions? I’d love to hear them.

Now, however, I’m still debugging GDB’s interaction with qemu. It mostly involves watching remote protocol traffic, looking up the packet codes, and then trying to understand why the simulator is not behaving as expected. Good times…

Designing Digital Computer Systems With Verilog
Designing Digital Computer Systems With Verilog
David J. Lilja, Sachin S. Sapatnekar; Cambridge University Press 2009
WorldCatLibraryThingGoogle BooksBookFinder

Verilog® Quickstart
Verilog® Quickstart: A Practical Guide To Simulation And Synthesis In Verilog (The Springer International Series In Engineering And Computer Science)
James M. Lee; Springer 2005
WorldCatLibraryThingGoogle BooksBookFinder

Tags:

View Comments to “A Tiny Computer”

  1. foo says:

    Patch wireshark to understand the GDB protocol?

  2. green says:

    Nothing so drastic was needed. You can turn on protocol debugging in both gdb and qemu. That’s how I tracked down the problem. It works well now.

  3. Thanks for your update!

Leave a Reply

blog comments powered by Disqus