马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 WALI-123 于 2024-5-5 10:39 编辑
1 测试环境FPGA NVMe Host控制器测试环境为Zynq45TFPGA +闪迪1T NVMe硬盘。
2 FPGA NVMe Host控制器结构FPGA NVMe Host控制器采用纯PL 设计,设计语言为Verilog,支持NVMe硬盘PCie EP初始化,支持NVMe配置寄存器空间初始化,支持Admin指令管理,组要包括可识别命名空间和控制器数据结构,以及Namespace list ID的获取;同时支持IO队列的创建。
2.1FPGA NVMeHost控制器特性(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的总扇区数进行读写,NVMeHost控制器内部惊醒指令拆分。 NVme 读操作波形如下,用户侧支持31bit的总扇区数进行读写,NVMeHost控制器内部惊醒指令拆分。
|