NVMe控制器IP设计之接口模块
这是NVMe控制器IP设计系列博客之一,其他的见本博客或csdn搜用户名:tiantianuser。相关视频见B站用户名:专注与守望。
接口转换模块负责完成AXI4接口与控制器内部的自定义接口之间的转换工作。接口转换模块的框图如图1所示。
图1 接口转换示意图
由于AXI4接口协议的实现会占用大量的逻辑资源,为了节约资源,控制器内部的接口信号均采用逻辑简单的自定义接口,对外通过此模块转换为通用的AXI4接口,从而实现与其他模块之间的高效互联。
接口转换模块内部包含AXI4-Lite写转换模块、AXI4读转换模块、AXI4写转换模块。AXI4-Lite写转换模块是用于将内部信号(addr、en、data_db)转换为与AXI PCIe IP模块相连接的AXI4-Lite接口。该模块的主要功能是在队列管理模块需要更新SSD内部门铃寄存器时,通过访问BAR空间实现更新NVMe SSD内部门铃寄存器。门铃寄存器更新后,NVMe SSD会通过AXI PCIe IP模块的AXI4接口访问提交队列内存空间,读取NVMe命令。在这个过程中,需要通过读转换模块将读地址通道和读数据通道的信号转换为控制器内部信号(addr、en、data_out)。命令执行结束后,完成信息通过AXI PCIe IP模块的AXI4接口传输至完成信息解析模块。这个过程需要通过AXI4写转换模块将读地址通道和读数据通道的信号转换为控制器内部信号(addr、en、data_in)。