Dune NVMe Storage Support
DuneNvme  1.0.2
This is a simple NVMe test environment that allows experimentation with the low level PCIe NVMe interfaces as available on a Xilinx FPGA environment.
DuneNvme Documentation
Dr Terry Barnaby


This directory contains the Dune NvmeStorage system that provides data storage on NVMe devices as available on a Xilinx FPGA. The directory contains the FPGA VHDL source code, VHDL simulation environment, build environment and test software for the NVME test FPGA firmware as well as the nvme_test host software.

See the Readme.pdf file for more information as well as the DuneNvmeStorageTestSoftware the, DuneNvmeStorageManual and DuneNvmeStorageDesign documents.


srcThe main VHDL source code
src/ipFPGA IP block definitions
simThe simulation environment
vivadoThe build environment
testHost test programs accessing the FPGA firmware
docsrcSource for the documentation
docOutput for the documentation

Test Program

The test Linux host program is in the test directory and is called nvme_test. This program communicates with an NVMe devices through the FPGA connected to the host machines PCIe bus. This program provides the ability to test the NvmeStorage module as well as allowing experimentation with the NVMe low level PCIe interface. Included is a simple Linux driver, bfpga, that interfaces to the Xilinx PCIe DMA core. See the DuneNvmeStorageManual for details on the test software and its usage.

the test software

  1. cd test
  2. make clean
  3. make driver
  4. make

the test software

  1. cd vivado
  2. make clean
  3. make all
  4. make program

Simulate FPGA

  1. cd sim
  2. Edit Makefile and testbench files for simulation required
  3. make
  4. make view