Migen Gigatron
An attempt to implement the Gigatron TTL Microcomputer on an FPGA, specifically the TinyFPGA BX using Migen.
Why?
To learn Migen and a bit more about FPGA programming. I've previously messed around with FuPy but it's a pretty complicated place to dive in.
Also I'm just blown away by what the Gigatron creators have achieved from so few parts and how much this would have changed the history of personal computing if Woz had homebrewed something like this instead of the MOS 6502 in the Apple 1.
It's already been done ...
Building
Tools
Other than a bunch of Ubuntu packages, and some of the Python libraries, everything is pulled in as submodules and built within the tree, or at least that's the idea.
git submodule update --init --recursive
cat ubuntu-packages.txt | xargs sudo apt install -y
make -j$(nproc)
pip install -e migen/
pip install tinyprog
Gateware
PATH=$PWD/build/bin:$PATH
python3 test.py
Programming
First make sure systemd modemmanager isn't messing with you
Then you can run tinyprog to copy the gateway onto the FPGA. Press the reset button and then:
tinyprog -p build/test.bin
More Information
For more information, and the story behind this project, see Migen Gigatron project on my blog ...