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.
NvmeStreamMux Entity Reference

This module Multiplexes/De-multiplexes a 128bit Axis stream into two streams based on which Nvme device the packets are for/from. More...

Inheritance diagram for NvmeStreamMux:
NvmeStorage DuneNvmeTestOsperoTop DuneNvmeTestTop

Entities

Behavioral  architecture
 

Libraries

ieee 
unisim 
work 

Use Clauses

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

Ports

clk   in   std_logic
  The interface clock line.
reset   in   std_logic
  The active high reset line.
hostIn   inout   AxisStreamType := AxisStreamInput
  Host multiplexed Input stream.
hostOut   inout   AxisStreamType := AxisStreamOutput
  Host multiplexed Ouput stream.
nvme0In   inout   AxisStreamType := AxisStreamInput
  Nvme0 Replies input stream.
nvme0Out   inout   AxisStreamType := AxisStreamOutput
  Nvme0 Requests output stream.
nvme1In   inout   AxisStreamType := AxisStreamInput
  Nvme1 Requests input stream.
nvme1Out   inout   AxisStreamType := AxisStreamOutput
  Nvme1 replies output stream.

Detailed Description

This module Multiplexes/De-multiplexes a 128bit Axis stream into two streams based on which Nvme device the packets are for/from.

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

When de-multiplexing the packets the module uses bit 80 in request packets and bit 28 in reply packets to determine which Nume device the packet should be sent too. Reply packets are determined by bit 95 being set in the packets header. When multplexing the packets to the host it sets the appropriate Pcie header bits to indicate to the host where the packet is from. It is used to pass requests from the host to the appropriate NvmeStorageUnit engine and get replies.


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