Daniel Moisset

Daniel Moisset

How I Built a CPU for Fun (and Didn’t Learn Verilog)

ラン#pyconjp_4初級英語
11:05 - 11:3530min
DAY 2
09/27
SAT

Python can run on a regular computer or on a general purpose microcontroller. But as a hobbyist, I was curious about how to design a completely custom device, which led me into the FPGA world. Traditionally, FPGA programming requires learning VHDL or Verilog, but there’s a Pythonic alternative: Amaranth. This powerful open-source library lets you describe digital circuits in Python and load them into affordable FPGA boards. In this presentation, I’ll share a high-level look at the development process using Amaranth, as well as provide demos, including one of a simple CPU built from scratch. If you’re curious about hardware or eager to explore beyond software, this talk will show how Python can open that door.


トーク詳細 / Description

This talk is an invitation to explore hardware through the lens of Python. I'll share my journey as a software engineer stepping into the world of FPGAs — not through Verilog, but via Amaranth, a Python-based hardware description library. I’m approaching this as a hobbyist curious about expanding my knowledge and building fun toys, rather than polished products — though Amaranth is certainly powerful enough for “real” projects.

I’ll walk through the tools and process I used to build a small homebrew CPU, inspired by the SAP-1 from Malvino & Brown’s “Digital Computer Electronics.” We’ll look at how to write and integrate design components, interface with a Tang Nano FPGA board, and connect to external hardware. I’ll share photos, videos, and — live-demo gods willing — a real working device.

This session isn’t a step-by-step tutorial, but a guided tour meant to spark your curiosity. If you enjoy Python and like building things, you might just discover a new playground.


この題材を選んだ理由やきっかけ

I believe this is a new fun way to use Python and I wanted to share it


オーディエンスが持って帰れる具体的な知識やノウハウ

Basics of hardware design, exposure to an open source toolchain for affordable hardware.


オーディエンスに求める前提知識

General Python usage, basic boolean logic

Daniel Moisset

Daniel Moisset

プロフィール

I'm a Latin American expat in London. After 20ys of background as an entrepreneur, software engineer and project leader, I'm currently training engineers. Most of my professional career has been marked by a love for Python and good engineering. I'm deeply interested in compiler and language design, and places were CS theory and engineering practice touch each other closely.

Non professionally, I'm a self-taught maker with electronics, a bad piano player, a husband, a Dungeon Master, and a cat herder. Preferred pronouns are he/him.