FSSD: FPGA-based Emulator for SSDs
![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)
Overview
FSSD is an FPGA-based emulator for solid-state drives (SSDs), designed to provide a high-performance and flexible platform for SSD emulation. This project is implemented using Vivado 2019.2 and is aimed at facilitating research and development in the field of SSDs. This work is published on FPL 2023.
Installation
Prerequisites
Prior to initiating the project setup, the following prerequisites must be fulfilled:
Obtaining License
To obtain a license for the Xilinx NVMe Target Controller:
- Navigate to the Xilinx NVMe Target Controller IP Page.
- Click on 'Evaluate IP', and complete the required prompts.
- You will receive an email from Xilinx with an attachment named 'Xilinx.lic'. Download this file.
- In Vivado, navigate to
Help -> Manage License... -> Load License
.
- Choose the downloaded 'Xilinx.lic' file and click 'OK'.
- Verify the license status in Vivado by selecting 'View License Status' and clicking 'Refresh'.
Obtaining the Required Files
- Navigate to the Xilinx NVMe Target Controller IP Page.
- Click on 'Access Secure Site', and complete the required prompts.
- Locate the 'Document' section for Vivado 2019.2, download the
NVMeTC Reference Design User Guide v1.0
.
- Locate the 'NVMe TC Hardware Reference Design' section for Vivado 2019.2 and proceed with the selection.
- Complete the required fields to initiate the download of
NVMeTC_Hardware_Reference_Design_package.tar.gz
.
- Decompress the downloaded file, ensuring the presence of the
NVMeTC/hw/250s+/local_pcores
directory.
Project Setup
The project source code are available here at: FSSD Source Code.
Follow these steps to configure the Vivado project:
-
Open the Vivado Project:
-
Incorporate the Source Code Folders:
- Within Vivado, access
Tools -> Settings...
.
- In Project Settings, opt for
IP -> Repository
.
- Append the previously extracted
local_pcores
folder in Obtaining the Required Files.
- Append the
fssd.ipdefs
folder found in the source code link.
-
Acquire and Integrate the Xilinx NVMe Target Controller License:
- Adhere to the instructions in the Obtaining License segment for license procurement.
- Incorporate the acquired license into your project as outlined.
-
Complete the Project Setup:
- Within Vivado, access
Tools -> Run Tcl Script...
.
- Select the
design_1.tcl
file found in the source code link.
- Wait for the script to finish loading.
- Users are now equipped to proceed with synthesis, implementation, or bitstream generation as required.
FPGA Deployment
Follow instructions in the NVMeTC Reference Design User Guide v1.0
document.