FPGA挂载SATA SSD需要SATA IP,IP报价动辄十几W,开源的IP也有,但都是基于V6或者V5等老器件的。现在好了,NVME SSD大行其道,而且不需要IP,可以说为广大爱好者带来的福音。国外的FPGA大牛Jeff Johnson写了一个FPGA挂载NVME SSD的教程http://www.fpgadeveloper.com/2016/04/zynq-pci-express-root-complex-design-in-vivado.html,并提供了完整的工程,支持XILINX的大部分7系列及最新的UltraScale系列。
- 下载完整的工程fpga-drive-aximm-pcie-2017.2.zip
- 解压并打开/Vivado目录,根据所用的开发板,运行相应的.bat文件创建工程,例如,我用的是ZC706且通过FMC HPC扩展子卡挂载SSD,则点击build-zc706-hpc.bat
- 打开生成的工程,生成bitstream,export并打开SDK
- 在SDK中创建工程,并将/SDK/common目录下的pcie_gen2_enumerate.c添加到工程中
- 搭建硬件环境
- 下载bitstream,并运行
- 串口显示如下:
由串口打印可知,SSD已LINK成功。