NPU Controller Modules

RTL source on GitHub

SystemVerilog sources documented on this page:

  • hw/rtl/NPU_Controller/npu_controller_top.svView on GitHub

  • hw/rtl/NPU_Controller/NPU_Control_Unit/ctrl_npu_decoder.svView on GitHub

  • hw/rtl/NPU_Controller/NPU_Control_Unit/ctrl_npu_dispatcher.svView on GitHub

  • hw/rtl/NPU_Controller/Global_Scheduler.svView on GitHub

1. Controller Top

npu_controller_top.sv integrates the AXI-Lite frontend, instruction decoder, dispatcher, and global scheduler into a single unit.

2. Instruction Decoder

ctrl_npu_decoder.sv parses the 64-bit VLIW instruction word: strips the 4-bit opcode and routes the 60-bit body into the appropriate typed struct (GEMV_op_x64_t, memcpy_op_x64_t, etc.).

3. Instruction Dispatcher

ctrl_npu_dispatcher.sv resolves Constant Cache pointer lookups (shape / size / scale), checks for address and resource hazards, and issues per-core control μops to GEMM, GEMV, CVO, and mem_dispatcher.

4. Global Scheduler

Global_Scheduler.sv tracks in-flight async instructions, maintains the dependency scoreboard, and gates new dispatches when a hazard is detected.

Last verified against

Commit 773bd82 @ hwkim-dev/pccx-FPGA-NPU-LLM-kv260 (2026-04-21).

See also

Per-Instruction Dataflow — dependency and completion tracking.