NPX Tutorial:
From Spike-Based Learning to FPGA Prototyping

Hyunguk Jang and Kyuseung Han
ETRI, Daejeon, South Korea

v2025-07-15 or later

Overview

This tutorial offers step-by-step guidance covering the process from spike-based learning to FPGA prototyping.

Prerequisites

Things to Know

Installing the Xarvis and RVX Environment

Follow the two tutorials in the Prerequisites to install both the Xarvis and RVX.
The directories cloned from npx-xarvis.git and npx-tutorials.git are called #(xarvis dir) and #(tutorial dir), respectively.
In this tutorial, we’ll use #(tutorial dir)/platform/starc_neugemm as the platform directory, referred to as #(platform dir).

Synthesizing the Processor

cmd) source #(tutorial dir)/rvx_setup.sh
cmd) cd #(platform dir)
cmd) make syn

Training an Example Application

cmd) source #(xarvis dir)/rvx_setup.sh
cmd) cd #(platform dir)/util/npx
cmd) make mnist_app

Running an NPX Application via RTL Simulation

cmd) source #(tutorial dir)/rvx_setup.sh
cmd) cd #(platform dir)
cmd) make sim_rtl
cmd) cd sim_rtl
cmd) make test_app_npx.all

Prototyping the Processor on the Genesys2 Board

cmd) source #(tutorial dir)/rvx_setup.sh
cmd) cd #(platform dir)
cmd) make genesys2
cmd) cd imp_genesys2_YYYY-MM-DD
cmd) make imp

Running an NPX Application on the Genesys2 Board

cmd) source #(tutorial dir)/rvx_setup.sh
cmd) cd #(platform dir)/imp_genesys2_YYYY-MM-DD
cmd) make program
cmd) make mcom
cmd) make test_app_npx.all

Navigate