Playground · NPU register playground
Drive the GRX930 NPU from its registers.
Set the dimensions, precision and buffer addresses, then write START. The NPU's register file, status flags,
command queue and memory update the way the driver's contract says they do, and the C code to do it on the real chip is written for you.
Model Behavior and data model of c930_npu_csr.sv and c930_npu_driver.c, not the RTL running. Timing is illustrative; read CYCLE_LO, OP_COUNT and STALL_CT from make npu or the board for real cycle counts.
1 · Program
Try: START four times quickly to fill the queue, then once more. Or set DIM_K to 20.
2 · Register file
BUSYDONEERRORQueue
| Offset | Register | Value |
|---|
Bus log
3 · Memory little-endian, row-major, packed per 32-bit word
4 · The same thing in C
API from c930/sw/c930_npu_driver.h. Registers and limits from c930/rtl (SoC build: MAX_M 8, MAX_N 12, MAX_K 16, queue depth 4). NPU register docs →