FPGA NVMe Host控制器介绍与测试

本文详细描述了基于Zynq45TFPGA和1TNVMe硬盘的FPGANVMeHost控制器设计,包括其纯PLVerilog实现、功能特性如Admin和IO队列管理,以及测试寄存器和数据操作波形。特别关注了NVMe接口和数据处理的简化设计及性能限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、测试环境

FPGA NVMe Host控制器测试环境为Zynq45T FPGA +闪迪1T NVMe硬盘。

2、FPGA NVMe Host控制器结构

FPGA NVMe Host控制器采用纯PL 设计,设计语言为Verilog,支持NVMe硬盘PCie EP初始化,支持NVMe配置寄存器空间初始化,支持Admin指令管理,组要包括可识别命名空间和控制器数据结构,以及Namespace list ID的获取;同时支持IO队列的创建。

2.1FPGA NVMe Host控制器特性

  1. Admin队列支持256个entries;
  2. IO队列支持64个entries;
  3. 同时支持8个IO队列,每个队列时分复用,可执行写或者读NVme操作;
  4. 支持MSI中断和INTA中断,MSI中断支持9个向量或者1个向量号;
  5. 支持PRP List模式执行DMA数据搬移。

备注:目前的NVMe Host IO队列采用FPGA片上RAM,所以,属于简化的设计模式,最大读写速率每个通道是150MB/s;每个通道速率彼此独立,不会互相干扰。

3、FPGA NVMe Host控制器测试寄存器

3.1 通过Admin指令获取NVMe控制器数据结构

3.2 通过Admin指令获取NVMe 命名空间数据结构

3.3 通过初始化状态机获取NVMe EP配置空间数据结构

3.4 通过初始化状态机获取NVMe 控制器配置空间数据结构

3.5 通过初始化状态机获取ROOT配置空间数据结构

4、FPGA NVMe Host控制器测试数据

     NVme 写操作波形如下,用户侧支持31bit的总扇区数进行读写,NVMe Host控制器内部惊醒指令拆分。

        NVme 读操作波形如下,用户侧支持31bit的总扇区数进行读写,NVMe Host控制器内部惊醒指令拆分。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值