Show HN: FPGA-SIM – interactive virtual boards to help teach Verilog

2 pointsposted 5 hours ago
by theharmonic

1 Comments

theharmonic

5 hours ago

I developed this starting in December to improve the digital circuits intro course at my college (WPI). The version I took had us buy Basys 3 boards, but the school stopped requiring them the next year. I created this to bring back that interactive part, which to me had made the class much more exciting. It also supports Verilog testbenches and is a much smaller install than Vivado.

The app takes in synthesizable user Verilog code and, after compiling and verifying that it matches the required ports, runs it connected to a GUI window. While it only supported a Basys 3-like design during the school year, I have since updated the app to let users write new boards with arbitrary ports using Python. I want instructors to be able to make new ones for specific assignments, such as the calculator board I include with the software. I am planning to work on this part a lot to make it easier in the future.

The software fully supports the three main desktop OSes. It uses Verilator for the backend, Python Prompt Toolkit for contextual tab suggestions, and Qt (PySide6) for the boards. To make installation consistent and simple, I run the Verilator parts in an Ubuntu container. Performance is great, though I would like to see if I can make it run natively and cut out the container part; it works perfectly on Mac but I have not yet tried Verilator on Windows.