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. |
This module configures a Nvme device for operation. More...
![](classNvmeConfig.png)
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.
- 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.
- Copyright
- 2020 Beam Ltd, Apache License, Version 2.0 Copyright 2020 Beam Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
The documentation for this class was generated from the following file:
- /src/dune/source/DuneNvme/src/NvmeConfig.vhd
Generated by
![doxygen](doxygen.png)