NPU Controller Modules¶
RTL source on GitHub
SystemVerilog sources documented on this page:
hw/rtl/NPU_Controller/npu_controller_top.sv— View on GitHubhw/rtl/NPU_Controller/NPU_Control_Unit/ctrl_npu_decoder.sv— View on GitHubhw/rtl/NPU_Controller/NPU_Control_Unit/ctrl_npu_dispatcher.sv— View on GitHubhw/rtl/NPU_Controller/Global_Scheduler.sv— View 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.