三、实战篇-NVME SSD控制之FPGA实现(一)

发布时间:2026/9/26 21:09:09
三、实战篇-NVME SSD控制之FPGA实现(一) 本章节讲述如何使用FPGA纯verilog语言实现NVME SSD硬盘的读写控制。参考FPGA控制NVME开发流程-CSDN博客一、理论篇-NVME协议学习笔记-CSDN博客二、实战篇-NVME SSD控制之ZYNQ实现一-CSDN博客二、实战篇-NVME SSD控制之ZYNQ实现二-CSDN博客本实验主要基于AXI Memory Mapped to PCI Express IP进行设计。使用的FPGA芯片为XILINX的xc7z045ffg900xc7z045ffg900芯片的PCIE接口为PCIE 2.0速率为5GT/S。采用纯Verilog代码实现不使用ARM端任何功能所以FPGA芯片用K7,V7这些都可以替代只要芯片包含PCIE接口就行。新建工程先新建一个工程选择FPGA芯片型号本实验使用米联客开发板所以这里FPGA选择xc7z045ffg900。新建BD工程在BD工程中添加IP添加AXI Memory Mapped to PCI Express IP配置如下至此IP核配置结束。这里先讲解一下IP核几个AXI总线接口作用方面后续调试S_AXI_CTL总线S_AXI_CTL总线主要用于访问PCIE总线中各设备的配置空间这里主要配置RC端FPGA 和EP端(NVME SSD)的配置CFG空间寄存器。S_AXI总线S_AXI总线主要用于访问EP端的BAR空间主要用于配置NVME SSD设备的内部寄存器。M_AXI总线M_AXI总线由EP端NVME SSD发起FPGA端作为从机。主要用于NVME SSD进行DMA读写。将M_AXI总线与DDR连接读、写操作时NVME SSD会自动通过M_AXI总线访问DDR内存数据。将AXI PCIE IP核的时钟、复位、pcie_tx、pcie_rx等引脚接好后按照之前ZYNQ控制NVME时的流程先通过S_AXI_CTL总线访问和配置设备的PCIE配置空间。S_AXI_CTL总线采用AXI_LITE接口AXI_LITE接口信号比较多这里使用一个本地转AXI_LITE接口的模块AXI_LITE_M方便读写。这样我们通过本地接口就可以进行S_AXI_CTL总线接口的访问将AXI_LITE_M模块的M_AXI连接到S_AXI_CTL总线本地信号引出到外部。新建一个pcie_cfg_ctrl模块用于控制AXI_LITE_M模块的本地接口主要状态流程如下主要寄存器配置流程和ZYNQ控制NCME SSD配置一致。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询