Hands-on Python Practice for Machine Learning FPGA Implementation
When you study machine learning, you learn how to improve accuracy. But the moment you try to deploy that model onto an actual chip, you are left with questions no one ever taught you to ask: How many multiplications does this model require? What does it need to remember, and how much? Can the target chip specifications handle these demands? Machine learning textbooks focus on accuracy, while semiconductor textbooks focus on circuits, yet resources bridging the two are scarce. I repeatedly encountered this gap while implementing RISC-V CPUs and NPUs on FPGAs—facing situations where the model with the highest accuracy simply wouldn't fit on the board. In this course, you will build six algorithms from scratch in Python, measuring the number of multiplications, comparisons, memory usage, and accuracy for each. You will then translate these metrics into actual FPGA board resources. While knowing the number of multiplications alone doesn't give you a sense of scale, expressing it as a percentage of the board's resources makes it easy to assess. After completing nine labs and compiling the six models into a single table, an unexpected picture emerges. We spent nine sessions counting multiplications, only to find that multiplications weren't the actual bottleneck. From there, we move on to quantizing floating-point numbers to integers, managing bit widths, and even establishing criteria for grading circuits. An FPGA board is not required. The course can be completed using Python alone, with the board serving merely as a reference for translating the measured metrics.
3 learners are taking this course
Level Intermediate
Course period Unlimited
Want to know what questions other learners frequently ask?

