Building a 6800 CPU on an FPGA with nMigen (part 1)

Robert Baruch · 27K views · 2019 · 24:46

Open on YouTube

Computer architecture & CPUsSemiconductors & chip manufacturingEmbedded systems & DIY electronicstutorialdated

Why Hacker News recommends it

HN recommends the series as a practical introduction to nMigen and formal verification for CPU design.

What it is

The first part of Robert Baruch's series on building a 6800 CPU on an FPGA with nMigen, a Python-based hardware description language. It introduces the HDL while implementing a simpler 6800 core.

Recommended by 3 HN commenters across 4 different months, 2020 to 2021.

What Hacker News said

Recommends magicalhippo · 2020-01 · on “Show HN: 1.5kb Microkernel for Ben Eater's 6502 Computer”

Semi-related, I've been enjoying Robert Baruch's videos[1] on creating a FPGA implementation of the 6800, using nMigen and formal verification. First videos are almost like live coding, then he skips to a more compact format. As a regular programmer, it's quite interesting to get into how the bits actually end up getting the work done. [1]: [this video]

Recommends krasin · 2020-08 · on “Glasgow: Scots Army Knife for Electronics”

nMigen is pretty cool and capable. I can only recommend these Youtube series, where nMigen is used to build a full 6800 CPU: [this video]

Recommends MrRadar · 2021-03 · on “Lion: A formally verified, 5-stage pipeline RISC-V core”

Robert Baruch on Youtube is building a RISC-V CPU core of comparable complexity to the one in the OP using nMigen which is an HDL based on Python and it looks like a very nice tool to work with relative to other HDLs I've seen (though I've never had to actually use an HDL myself before so I may not be the best judge). Here's a playlist of the video series, with the earlier videos basically being an introduction to nMigen: [LINK] He's got another series that's focused more on the HDL itself building a (relatively much simpler) 6800 CPU core: [this video]

Recommends krasin · 2021-09 · on “Awesome Lattice FPGA Boards”

TinyFPGA BX ([1]) and nmigen/yosys as the fully open source toolchain for generating logic with Python and formally verifying it ([2], [3]). There is a good nMigen tutorial by Robert Baruch ([4]. [5]). Alternatively, if you really want to try Verilog first (not a bad idea), I enjoyed reading a book "Designing Video Game Hardware in Verilog" ([6]). 1. [LINK] 2. [LINK] 3. [LINK] 4. [LINK] 5. [this video] 6. [LINK]