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. |
Constants | Components | Subtypes | Types | Signals | Procedures | Functions | Processes | Instantiations
Behavioral Architecture Reference
Functions | |
unsigned | doorbellAddress ( queueNum: in integer , reply: in integer ) |
Processes | |
PROCESS_6 | ( clk ) |
Process requests. |
Procedures | |
queueAddress( address: unsigned ,signal ramAddress: out unsigned ) | |
Given Pcie address calculate RAM address. | |
queueAddressStart( signal queueArray: inout QueuePosArrayType queueNum: unsigned signal address: out unsigned ) | |
Sets the RAM access address from last queue position and updates queue position. | |
queueOutIncrement( signal queueArray: inout QueuePosArrayType , queueNum: unsigned ) |
Components | |
Ram | <Entity Ram> |
The data width of the RAM in bits. |
Constants | |
TCQ | time := 1 ns |
NUM_QUEUES | integer := 4 |
RAM_SIZE | integer := NUM_QUEUES* NumQueueEntries * 4 |
Only write to request queues are stored. | |
ADDRESS_WIDTH | integer := log2 ( RAM_SIZE ) |
Types | |
QueuePosArrayType | ( 0 to NUM_QUEUES- 1 ) QueuePosType |
StateType | ( STATE_IDLE , STATE_WRITE , STATE_READHEAD1 , STATE_READHEAD2 , STATE_READDATA , STATE_WRITE_QUEUE , STATE_SEND_DOORBELL_HEAD , STATE_SEND_DOORBELL_POS , STATE_REPLY_RDATA , STATE_REPLY_SHEAD , STATE_REPLY_SDATA , STATE_SEND_RDOORBELL_HEAD ) |
Subtypes | |
QueueNumRange | integer range 17 downto 16 |
The active high reset line. | |
QueuePosType | unsigned ( log2 ( NumQueueEntries ) - 1 downto 0 ) |
Signals | |
state | StateType := STATE_IDLE |
ramWriteEnable | std_logic := ' 0 ' |
ramReadEnable | std_logic := ' 0 ' |
ramAddressWrite | unsigned ( ADDRESS_WIDTH- 1 downto 0 ) := ( others = > ' 0 ' ) |
ramAddressRead | unsigned ( ADDRESS_WIDTH- 1 downto 0 ) := ( others = > ' 0 ' ) |
ramReadData | std_logic_vector ( 127 downto 0 ) := ( others = > ' 0 ' ) |
data1 | std_logic_vector ( 127 downto 0 ) := ( others = > ' 0 ' ) |
queueIn | integer range 0 to NUM_QUEUES- 1 := 0 |
queueInArrayPos | QueuePosArrayType := ( others = > ( others = > ' 0 ' ) ) |
queueOutArrayPos | QueuePosArrayType := ( others = > ( others = > ' 0 ' ) ) |
requestHead | PcieRequestHeadType |
requestHead1 | PcieRequestHeadType |
replyHead | PcieReplyHeadType |
doorbellReqHead | PcieRequestHeadType |
Instantiations | |
queuemem0 | Ram <Entity Ram> |
The documentation for this class was generated from the following file:
- /src/dune/source/DuneNvme/src/NvmeQueues.vhd
Generated by
![doxygen](doxygen.png)