What it is
POLITE is a 4×4 int8 matrix unit designed for Tiny Tapeout. One operand panel stays on chip; the other streams through the pad bus one beat at a time. Each PE keeps a 24-bit partial sum. A finished tile leaves as sixteen 32-bit words, one result byte per beat on uo_out.
I wrote this for Rev Silicon’s first-chip effort. The architecture (widths, resident panels, dual-edge pad protocol) is intended to be open. Full RTL is not mirrored on this site.
My role
Sole designer of the POLITE core: golden model in C (polite/src/chip.c), SystemVerilog RTL under rtl/, cosimulation testbench, and architecture docs/diagrams.
Tech
- SystemVerilog (Tiny Tapeout top
tt_um_polite.v) - C11 golden model + Makefile cosim (iverilog / vvp)
- Behavioral stand-in for sky130 2 kB SRAM macros
Key points
- Pad beat = one
clkperiod; rising edge samples the bus and starts compute, falling edge continues. - Three
sky130_sram_2kbyte_1rw1r_32x512_8macros for the operand store (behavioral model inrtl/polite_mem.v). - Docs walk the block diagram, command encoding, and where RTL differs from the earlier sketch.
Dates
September 2026 (active). Git history on the org remote starts 2026-09-21.
Links
Architecture will be public with the Tiny Tapeout / Rev Silicon release. The org repo is currently private — no public GitHub link here yet.
Figures
chip.pngpolite-array-flow.pngpolite-both-edges.pngpolite-commands.pngpolite-input-buffering.pngpolite-old-block-diagram.png— earlier sketch, not the current RTLpolite-rp2350-tiling.pngpolite-sram-capture.pngpolite-usb-speeds.png








