The key design decision is that the CSR register file is the unit of state shared between Rust and the FPGA. In software, it's a Box< [u32; 256]>. In hardware, it's mmap'd PCIe BAR. Everything above ...