Documentation updates.
authorTerry Barnaby <terry.barnaby@beam.beam.ltd.uk>
Thu, 21 May 2020 13:44:44 +0000 (14:44 +0100)
committerTerry Barnaby <terry.barnaby@beam.beam.ltd.uk>
Thu, 21 May 2020 13:44:44 +0000 (14:44 +0100)
doc/Readme.pdf
docsrc/Readme.odt
docsrc/fpga_doxygen.dox
docsrc/fpga_overview.dox
docsrc/host_doxygen.dox
docsrc/host_overview.dox
src/AxisClockConverter.vhd
src/DuneNvmeTestTop.vhd
src/NvmeStorageUnit.vhd

index dc67d38bb359f83e41cff1bded8ec54eed8c2e1e..3e99ed6ed7f4fcad1f38c02a2f105b15563d7a7d 100644 (file)
Binary files a/doc/Readme.pdf and b/doc/Readme.pdf differ
index 2b0e237d30a5439fcb5962e8437379fd7fb849ff..0fd0fe1870ce0ac924f94782d91e625737615072 100644 (file)
Binary files a/docsrc/Readme.odt and b/docsrc/Readme.odt differ
index 356abad0d25ca1c71d27c07cbc3017b39d152d31..2772efe893c88ba12f883850bb82b2fe41a9e543 100644 (file)
@@ -1,7 +1,7 @@
 # Doxyfile 1.8.15
 
 PROJECT_NAME           = "DuneNvme"
-PROJECT_NUMBER         = 0.3.1
+PROJECT_NUMBER         = 0.4.1
 PROJECT_BRIEF          = "This is a simple NVMe test environment that allows experimentation with the low level PCIe NVMe interfaces as available on a Xilinx FPGA environment."
 PROJECT_LOGO           =
 INPUT                  = fpga_overview.dox ../src
index 8620c15123a5bbddcb7485050f1f1ea2ddab2de1..2dedac1913909d68451658c363408aa2d0693ca1 100644 (file)
@@ -4,21 +4,23 @@
  */
 /**
 \author Dr Terry Barnaby
-\version 0.3.1
-\date 2020-05-11
+\version 0.4.1
+\date 2020-05-21
 
 \mainpage
 
 \section Introduction
-This directory contains the DuneNvme storage system that provides data storage to NVMe devices as available on a Xilinx FPGA.
-The directory contains the source code, simulation environment, build environment and test software for the NVME test FPGA firmware as well as the nvme_test host software.
+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.
+See the Readme.pdf file for more information as well as the
+<a href="../../DuneNvmeStorageManual.pdf">DuneNvmeStorageManual</a>
+and <a href="../../DuneNvmeStorageDesign.pdf">DuneNvmeStorageDesign</a> documents.
 
 \section Directories
 <table>
 <tr><td>src</td><td>The main VHDL source code</td></tr>
-<tr><td>ip-core</td><td>IP cores generated with Vivado</td></tr>
+<tr><td>src/ip</td><td>FPGA IP block definitions</td></tr>
 <tr><td>sim</td><td>The simulation environment</td></tr>
 <tr><td>vivado</td><td>The build environment</td></tr>
 <tr><td>test</td><td>Host test programs accessing the FPGA firmware</td></tr>
@@ -26,15 +28,14 @@ See the Readme.pdf file for more information.
 <tr><td>doc</td><td>Output for the documentation</td></tr>
 </table>
 
-\section The Test Program
-The test Linux host program is in the test directory and is called nvme_test. This program communicates with an NVMe device through the FPGA connected to the host machines PCIe
-bus. This program allows experimentation with the NVMe low level PCIe interface.
+\section The NvmeSorage FPGA test example
+The DuneNvme FPGA bit file for the test example can be built using the Xilinx Vivado tools.
 
 \section Building the FPGA bit file and programming
 <ol>
 <li>cd vivado </li>
-<li><make clean/li>
-<li><make all/li>
+<li>make clean</li>
+<li>make all</li>
 <li>make program</li>
 </ol>
 
index 1bba80c19558aa95fcd6521b0cccaf56c6d7359b..5c1f0bedb27c89b8342fc78f2484ab2e6e449fa2 100644 (file)
@@ -1,7 +1,7 @@
 # Doxyfile 1.8.15
 
 PROJECT_NAME           = "DuneNvme"
-PROJECT_NUMBER         = 0.3.1
+PROJECT_NUMBER         = 0.4.1
 PROJECT_BRIEF          = "This is a simple NVMe test environment that allows experimentation with the low level PCIe NVMe interfaces as available on a Xilinx FPGA environment."
 PROJECT_LOGO           =
 INPUT                  = host_overview.dox ../test
index a35b3f26a14aab1fbe9c31d6f3107db95b5f6d5e..dbf1c199818b9c9199d0c3250f25681955b31d0c 100644 (file)
@@ -4,21 +4,23 @@
  */
 /**
 \author Dr Terry Barnaby
-\version 0.3.1
-\date 2020-05-11
+\version 0.4.1
+\date 2020-05-21
 
 \mainpage
 
 \section Introduction
-This directory contains a simple NVMe test environment that allows experimentation with the low level PCIe NVMe interfaces as available on a Xilinx FPGA environment.
-The directory contains the source code, simulation environment and build environment for the NVME test FPGA firmware as well as the nvme_test host software.
+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.
+See the Readme.pdf file for more information as well as the
+<a href="../../DuneNvmeStorageManual.pdf">DuneNvmeStorageManual</a>
+and <a href="../../DuneNvmeStorageDesign.pdf">DuneNvmeStorageDesign</a> documents.
 
 \section Directories
 <table>
 <tr><td>src</td><td>The main VHDL source code</td></tr>
-<tr><td>ip-core</td><td>IP cores generated with Vivado</td></tr>
+<tr><td>src/ip</td><td>FPGA IP block definitions</td></tr>
 <tr><td>sim</td><td>The simulation environment</td></tr>
 <tr><td>vivado</td><td>The build environment</td></tr>
 <tr><td>test</td><td>Host test programs accessing the FPGA firmware</td></tr>
@@ -27,14 +29,23 @@ See the Readme.pdf file for more information.
 </table>
 
 \section The Test Program
-The test Linux host program is in the test directory and is called nvme_test. This program communicates with an NVMe device through the FPGA connected to the host machines PCIe
-bus. This program allows experimentation with the NVMe low level PCIe interface.
+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 allows experimentation with the NVMe low level PCIe interface.
+Included is a simple Linux driver, bfpga, that interfaces to the Xilinx PCIe DMA core.
+
+\section Building the test software
+<ol>
+<li>cd test</li>
+<li>make clean</li>
+<li>make driver</li>
+<li>make</li>
+</ol>
 
 \section Building the FPGA bit file and programming
 <ol>
 <li>cd vivado </li>
-<li><make clean/li>
-<li><make all/li>
+<li>make clean</li>
+<li>make all</li>
 <li>make program</li>
 </ol>
 
index c0f78248161af146cf71743c8d557626215c84c6..62278ebc2bba44b29a2e4262c004f674815d9e4b 100644 (file)
@@ -54,6 +54,9 @@ end;
 
 architecture Behavioral of AxisClockConverter is
 
+--! @class     Axis_clock_converter
+--! @brief     The Xilinx AXI4 Stream clock doamin crossing IP
+--! @details   See the Xilinx documentation for details of this IP block
 component axis_clock_converter
        port (
        s_axis_aresetn : in std_logic;
index f0a6bb6b3bb16ff1fb503cac81effffebc3e3cf8..990206a5203be5326ed7e65afde9e6208c36f99d 100644 (file)
@@ -84,6 +84,9 @@ port (
 );                                     
 end component;                 
 
+--! @class     Pcie_host
+--! @brief     The Xilinx PCIe XDMA endpoint for host communications with the FPGA
+--! @details   See the Xilinx documentation for details of this IP block
 component Pcie_host
 port (
        sys_clk : in std_logic;
index 671fcecb54e5106fcc83dce58b7984f54046823b..3821496d341490ec3792fd981cc85383ad149d2b 100644 (file)
@@ -125,7 +125,10 @@ port (
 );
 end component;
 
---! The PCIe Gen3 hardblock to communicate with the NVMe device
+-- The Xilinx PCIe Gen3 hardblock to communicate with the NVMe 0 device
+--! @class     Pcie_nvme0
+--! @brief     The Xilinx PCIe Gen3 hard block interface to NVMe device
+--! @details   See the Xilinx documentation for details of this IP block
 component Pcie_nvme0
 port (
        pci_exp_txn : out std_logic_vector ( 3 downto 0 );
@@ -172,6 +175,7 @@ port (
 );
 end component;
 
+-- The Xilinx PCIe Gen3 hardblock to communicate with the NVMe 1 device
 component Pcie_nvme1
 port (
        pci_exp_txn : out std_logic_vector ( 3 downto 0 );
@@ -599,7 +603,7 @@ begin
        synth: if (Simulate = False) generate
 
        genpci0: if(PcieCore = 0) generate
-       --! The PCIe to NVMe interface
+       --! The PCIe to NVMe interface
        pcie_nvme_0 : Pcie_nvme0
        port map (
                sys_clk                 => nvme_clk,
@@ -651,7 +655,7 @@ begin
        end generate;
        
        genpci1: if(PcieCore = 1) generate
-       --! The PCIe to NVMe interface
+       --! The PCIe to NVMe interface
        pcie_nvme_1 : Pcie_nvme1
        port map (
                sys_clk                 => nvme_clk,