Logo
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.
NvmeConfig Entity Reference

This module configures a Nvme device for operation. More...

Inheritance diagram for NvmeConfig:
NvmeStorageUnit NvmeStorage DuneNvmeTestOsperoTop DuneNvmeTestTop

Entities

Behavioral  architecture
 

Libraries

ieee 
unisim 
work 

Use Clauses

std_logic_1164 
numeric_std 
vcomponents 
NvmeStoragePkg  Package <NvmeStoragePkg>
NvmeStorageIntPkg  Package <NvmeStorageIntPkg>

Generics

ClockPeriod  time := 8 ns
 Clock period for timers (250 MHz)

Ports

clk   in   std_logic
  The interface clock line.
reset   in   std_logic
  The active high reset line.
configStart   in   std_logic
  Start the initialisation (1 clk cycle only)
configComplete   out   std_logic
  Initialisation is complete.
streamOut   inout   AxisStreamType := AxisStreamOutput
  Nvme request stream.
streamIn   inout   AxisStreamType := AxisStreamInput
  Nvme reply stream.

Detailed Description

This module configures a Nvme device for operation.

Author
Terry Barnaby (terry.nosp@m..bar.nosp@m.naby@.nosp@m.beam.nosp@m..ltd..nosp@m.uk)
Date
2020-06-06
Version
1.0.0

This has a set of PCIe requests hard coded in a ROM that are sent out on the streamOut stream when the configStart signal is set high for one clock period. The module ignores all replies and assumes all requests complete with no errors. The configComplete signal is set high on completion. The ROM's contents have a list of 128 bit words. There will be a set of a requests consisting of a PCIe TLP header followed by its data words. The TLP headers count field specifies how many 32 bit words of data follow the header. A 128 bit entry of all 0's terminates the list of Pcie requests. The module will wait 100ms before starting configuration to allow its use directly after a device reset. This time allows the Nvme device to complete its internal initialisation. The ClockPeriod parameter should be set to the clocks period to achieve the correct delay timing.


The documentation for this class was generated from the following file:
  • /src/dune/source/DuneNvme/src/NvmeConfig.vhd