/migen-gigatron

An attempt to implement the Gigatron TTL Microcomputer on FPGA using Migen.

Primary LanguagePython

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 ...

Yeah, but in Verilog.

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 ...