一种基于FPGA的NVMESSD固件开发仿真平台制造技术

技术编号:33712122 阅读:9 留言:0更新日期:2022-06-06 08:47
本发明专利技术公开了一种基于FPGA的NVME SSD固件开发仿真平台,涉及NVME SSD固件开发技术领域,具体为一种基于FPGA的NVME SSD固件开发仿真平台,包括FPGA和测试机,以及在FPGA上开发的CPU、NAND控制器和SSD硬件平台;其中,在FPGA上通过嵌入式CPU模拟硬件行为;在FPGA上开发通用NAND控制器,并预留socket底座;在FPGA上实现基于TCP/IP的网络传输功能,并提供SSD固件基本接口以及一套SSD固件参考代码;测试机上实现NVME Over Fabric协议,通过网络对SSD仿真平台发命令,通过SSD仿真平台执行相应命令。该基于FPGA的NVME SSD固件开发仿真平台是软件和硬件相结合的仿真平台,更加贴近真实的嵌入式开发环境;本发明专利技术还提供一系列的自动化搭建脚本和参考代码,环境搭建简单,使用方便,是SSD开发高效。是SSD开发高效。是SSD开发高效。

【技术实现步骤摘要】
一种基于FPGA的NVME SSD固件开发仿真平台


[0001]本专利技术涉及NVME SSD 固件开发
,具体为一种基于FPGA的NVME SSD 固件开发仿真平台。

技术介绍

[0002]目前SSD 固件的开发验证大都需要将固件编译好,下载到特定SSD 硬件平台上运行,这种方式会受到硬件平台的限制,当硬件平台不稳定或者还未完善时,容易拉长固件开发的周期。同时搭建硬件环境、下载固件一般比较耗时,所以影响固件开发效率;当前已存在的SSD仿真平台,一般是利用主机端的CPU、内存和硬盘资源,搭建一个纯软件的平台,虽然可以实现SSD 的固件的仿真,但难以模拟真实的嵌入式运行环境;当前纯软件的仿真平台都不能模拟前端数据传输的通道,以及后端闪存的读写擦的特性;当前已有的一些SSD 仿真平台, 在搭建和使用时不够灵活的问题;针对上述问题,我们提供了一种基于FPGA的NVME SSD 固件开发仿真平台。

技术实现思路

[0003]针对现有技术的不足,本专利技术提供了一种基于FPGA的NVME SSD 固件开发仿真平台,解决了上述
技术介绍
中提出的问题。
[0004]为实现以上目的,本专利技术通过以下技术方案予以实现:一种基于FPGA的NVME SSD 固件开发仿真平台,包括FPGA和测试机,以及在FPGA上开发的CPU、NAND控制器和SSD硬件平台;其中,在FPGA上通过嵌入式CPU模拟硬件行为;在FPGA上开发通用NAND控制器,并预留socket底座;在FPGA上实现基于TCP/IP的网络传输功能,并提供SSD固件基本接口以及一套SSD固件参考代码;测试机上实现NVME Over Fabric协议,通过网络对SSD仿真平台发命令,通过SSD仿真平台执行相应命令。
[0005]可选的,所述SSD硬件平台包括多核CPU、串口、DDR、SPI Nor Flash、EMMC和网口,以及NAND 控制器;测试机上实现基于NVME Over Fabric协议实现收发命令;FPGA上实现串口打印和接受信息的功能,并且提供接口;FPGA上用CPU来模拟NVME SSD硬件行为,实现基于网络的收发命令、传输数据,并且提供接口;FPGA上提供访问DDR的接口;FPGA上提供访问SPI Nor Flash的接口;FPGA上提供访问EMMC的接口。
[0006]可选的,所述FPGA上开发基于ONFI协议的通用NAND控制器,同时预留socket底座,可以把NAND封装成扣卡,接在底座上,实现通信,同时提供读写擦的接口。
[0007]可选的,所述FPGA上提供一套SSD固件参考代码,包括IO路径,垃圾回收,纠错,掉电保护和恢复。
[0008]本专利技术提供了一种基于FPGA的NVME SSD 固件开发仿真平台,具备以下有益效果:1、该基于FPGA的NVME SSD 固件开发仿真平台是软件和硬件相结合的仿真平台,更加贴近真实的嵌入式开发环境。
[0009]2、该基于FPGA的NVME SSD 固件开发仿真平台提供一系列的自动化搭建脚本和参考代码,环境搭建简单,使用方便,是SSD 开发高效。
[0010]3. 该基于FPGA的NVME SSD 固件开发仿真平台提供真实的NAND访问。
[0011]4.该基于FPGA的NVME SSD 固件开发仿真平台模拟了更加真实的NVME SSD,测试机端看到的就是真实的NVME SSD。
附图说明
[0012]图1为本专利技术的结构示意图。
具体实施方式
[0013]下面,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
[0014]实施案例一本专利技术提供一种技术方案:一种基于FPGA的NVME SSD 固件开发仿真平台,包括FPGA和测试机,以及在FPGA上开发的CPU、NAND控制器和SSD硬件平台;其中,在FPGA上通过嵌入式CPU模拟硬件行为;在FPGA上开发通用NAND控制器,并预留socket底座;在FPGA上实现基于TCP/IP的网络传输功能,并提供SSD固件基本接口以及一套SSD固件参考代码;测试机上实现NVME Over Fabric协议,通过网络对SSD仿真平台发命令,通过SSD仿真平台执行相应命令。
[0015]本专利技术把SSD固件运行在FPGA上,并且测试机通过网络下发命令,从而模拟更加真实的SSD 运行场景,用户可以使用该平台完成以下需求:1.通过阅读参考代码学习NVME SSD 工作原理,通过Windows调试机的jtag 链接FPGA, 用断点和单步调试的方法,更加具体地学习NVME SSD 命令处理的流程2.编写自己的NVME SSD 固件代码,下载到FPGA 上,调试和验证SSD固件算法。
[0016]实施案例二步骤1:Windows 开发调试机,实现固件的开发编译,通过jtag将代码下载到FPGA 开发平台上, 同时支持在线调试,以及串口打印调试信息;步骤2:使用FPGA 来模拟SSD的硬件平台,包括以下功能多核CPU, 串口,DDR, SPI Nor Flash, EMMC, 网口,Nand 控制器;步骤3:测试机上实现基于NVME Over Fabric 协议实现收发命令;
步骤4:FPGA 上实现串口打印和接受信息的功能,并且提供接口;步骤5:FPGA 上用CPU来模拟NVME SSD 硬件行为,实现基于网络的收发命令、传输数据,并且提供接口;步骤6:FPGA 上提供访问DDR的接口;步骤7:FPGA 上提供访问 SPI Nor Flash 的接口;步骤8:FPGA 上提供访问EMMC 的接口;步骤9:FPGA 上开发基于ONFI 协议的通用 NAND 控制器,同时预留socket 底座,可以把NAND封装成扣卡, 接在底座上, 实现通信, 同时提供读写擦的接口;步骤10:FPGA 上提供一套SSD 固件参考代码,包括IO 路径,垃圾回收,纠错,掉电保护和恢复;步骤11:FPGA 接通电源,然后在测试机上运行脚本,通过网络与FPGA建立联系,从而使测试机可以看到一个模拟的SSD;步骤12:测试机对这个模拟的SSD 发送各种NVME 命令;步骤13:FPGA 上的固件处理这些命令;步骤14:于此同时,Windows 调试机通过 jtag 链接FPGA上的CPU来观察和调试固件,通过串口来收集固件运行状态。
[0017]具体实施案例一步骤1:用户通过该平台学习NVME SSD 工作原理;步骤2:用户阅读平台自带的参考代码;步骤3:FPGA 上电, 测试机上电,测试机运行脚本,与FPGA 建立联系,测试机可以识别到模拟的NVME SSD;步骤4:Windows 调试机上电,链接串口,通过jtag 链接FPGA CPU;步骤5:测试机上对模拟的SSD 发出各种命令,FPGA 仿真平台处理对应命令;步骤6:Windows 调试机上通过串口和jtag 观察和学习NVME SSD的工作原理。
[0018]具体实施案例二本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的NVME SSD 固件开发仿真平台,其特征在于,包括FPGA和测试机,以及在FPGA上开发的CPU、NAND控制器和SSD硬件平台;其中,在FPGA上通过嵌入式CPU模拟硬件行为;在FPGA上开发通用NAND控制器,并预留socket底座;在FPGA上实现基于TCP/IP的网络传输功能,并提供SSD固件基本接口以及一套SSD固件参考代码;测试机上实现NVME Over Fabric协议,通过网络对SSD仿真平台发命令,通过SSD仿真平台执行相应命令。2.根据权利要求1所述的一种基于FPGA的NVME SSD 固件开发仿真平台,其特征在于:所述SSD硬件平台包括多核CPU、串口、DDR、SPI Nor Flash、EMMC和网口,以及NAND 控制器;测试机上实现基于NVME Over Fabr...

【专利技术属性】
技术研发人员:岑彪
申请(专利权)人:鸾起科技苏州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1