TinyTapeout VGA Circuits Simulator
Update (2025-01-27) This project started an effort to learn more about circuit design toolchain by making a script that would "reverse-engineer" and simulate a circuit from just a GDSII file. In the beginning it only worked with my own 1D CA design, but after a warm response from the open source silicon community I updated the simulator to work with a few other circuits. Now, it can automatically determine the function of almost all Sky130 PDK standard cells. I also made the circuit simulator to show the gate flipping cascades in a heatmap-style visualization.
(original description) This is a gate-level simulation of my TinyTapeout '09 submission running directly in your browser. The circuit occupies a single 160x100 μm tile on a multiproject chip and generates a 60fps 640x480 VGA signal that forms a scrolling animation of several elementary 1D cellular automata rules. Most of the tile area is occupied by two 160-bit shift registers: one (left) stores the current image line, while another (right) stores the first line of the next frame (4th line of the current).
This demo combines a tiny custom WebAssembly gate-level simulator with a SwissGL-based interactive visualization of gate activations. The overlay displays the content of the simulated VGA screen and the current ray position.
Links: