一种基于FPGA的NandFlash控制器的制作方法

文档序号:11250817阅读:647来源:国知局
本发明涉及nandflash控制器,具体涉及一种基于fpga的nandflash控制器。
背景技术
:近年来随着云计算的高速发展,存储设备作为云计算中不可缺少的部分,需求量越来越大。nandflash因其单位价格存储密度大,由其构成的ssd已成为云计算存储设备中,最为常用的高速大容量存储单元。利用fpga设计实现nandflash控制器,具有很好的可移植性,大大提高系统的灵活性,可方便快速的搭建nandflash存储系统。技术实现要素:本发明针对nandflash控制,利用fpga实现nandflash控制器,该控制器可方便的在fpga器件中进行移植,大大提高系统的灵活性,可方便快速的搭建nandflash的存储系统。本发明的技术方案是:一种基于fpga的nandflash控制器,包括nandflash芯片,还包括:配置寄存器组,以及对配置寄存器组进行配置的控制接口;进行时序操作的异步模式状态机或同步模块状态机;对异步模式状态机、同步模式状态机进行切换的接口切换模块;对数据进行写入或读取的数据接口;对数据进行暂存的ram芯片;将数据由ram存储格式转换为fifo模块的ram与fifo转换模块;所述控制接口的输出端与配置寄存器组的输入端连接,配置寄存器组的输出端分别与异步模式状态机、同步模式状态机的输入端连接,异步模式状态机、同步模式状态机的输出端分别与接口切换模块的输入端连接,接口切换模块的输出端与nandflash芯片连接;所述数据接口的输出端与ram芯片输入端连接,ram芯片的输出端与ram与fifo转换模块的输入端连接,ram与fifo转换模块的输出端也接口切换模块的输入端连接。进一步地,控制接口采用标准axi-lite接口。进一步地,控制接口包括:第一控制接口,为读写使能信号;第二控制接口,用于寻址寄存器;第三控制接口,用于配置寄存器。进一步地,数据接口采用标准ram接口。进一步地,数据接口包括:第一数据接口,为写入数据包头,标志数据包起始位置;第二数据接口,为写入数据包尾,标志数据包结束位置;第三数据接口,为写入数据有效信号;第四数据接口,用于写入数据;第五数据接口,为写入允许信号;第六数据接口,为读取数据包头,标志数据包起始位置;第七数据接口,为读取数据包尾,标志数据包结束位置;第八数据接口,为读取数据有效信号;第九数据接口,用于读取数据;第十数据接口,为读取允许信号。进一步地,nandflash芯片上设置nandflash端接口,所述nandflash端接口采用nofi2.0标准接口。进一步地,nandflash端接口包括:第一nandflash端接口,为nandflash片选信号;第二nandflash端接口,为地址使能信号;第三nandflash端接口,为命令使能信号;第四nandflash端接口,异步模式下为写入使能信号,同步模式下为clk时钟信号;第五nandflash端接口,异步模式下为读取使能信号,同步模式下为1为写入,0为读取;第六nandflash端接口,为数据输入输出接口;第七nandflash端接口,异步模式下无作用,同步模式下为数据选择信号。进一步地,配置寄存器组包括:第一寄存器,用于地址周期到数据周期的保持时间配置寄存器;第二寄存器,用于列选择变换建立时间配置寄存器;第三寄存器,用于片选高电平保持时间配置寄存器;第四寄存器,用于片选保持时间配置寄存器;第五寄存器,用于片选建立时间配置寄存器;第六寄存器,用于数据保持时间配置寄存器;第七寄存器,用于数据建立时间配置寄存器;第八寄存器,用于setfeature指令忙时间配置寄存器;第九寄存器,用于接口切换时间配置寄存器;第十寄存器,用于数据输出准备时间配置寄存器;第十一寄存器,用于器件复位时间配置寄存器;第十二寄存器,用于命令或者地址周期到数据输出保持时间配置寄存器;第十三寄存器,用于写保护到命令周期时间配置寄存器;第十四寄存器,用于擦除时间配置寄存器;第十五寄存器,用于多plane擦除时间配置寄存器;第十六寄存器,用于多plane编程时间配置寄存器;第十七寄存器,用于多plane读取时间配置寄存器;第十八寄存器,用于cache编程时间配置寄存器;第十九寄存器,用于写入时间配置寄存器;第二十寄存器,用于读取时间配置寄存器。本发明提供的基于fpga的nandflash控制器,各个模块均分布于fpga内部,采用fpga作为核心的控制单元,提高了系统的灵活性。该控制器遵循nofi2.0协议,兼容nandflash的异步与同步模式,可以灵活配置寄存器组,实现不同模式,不同速率以及不同nandflash型号之间的兼容性,灵活方便。该控制器设计精巧,技术先进,使用方便简单,具有广阔的应用前景。附图说明图1是本发明具体实施例结构示意图。图中,1-控制接口,2-配置寄存器组,3-异步模式状态机,4-同步模式状态机,5-接口切换模块,6-nandflash芯片,7-数据接口,8-ram芯片,9-ram与fifo转换模块。具体实施方式下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。如图1所示,本发明提供的基于fpga的nandflash控制器,包括nandflash芯片6和配置寄存器组2,以及:对配置寄存器组2进行配置的控制接口1;进行时序操作的异步模式状态机3或同步模块状态机;对异步模式状态机3、同步模式状态机4进行切换的接口切换模块5;对数据进行写入或读取的数据接口7;对数据进行暂存的ram芯片8;将数据由ram存储格式转换为fifo模块的ram与fifo转换模块9。控制接口1的输出端与配置寄存器组2的输入端连接,配置寄存器组2的输出端分别与异步模式状态机3、同步模式状态机4的输入端连接,异步模式状态机3、同步模式状态机4的输出端分别与接口切换模块5的输入端连接,接口切换模块5的输出端与nandflash芯片6连接;数据接口7的输出端与ram芯片8输入端连接,ram芯片8的输出端与ram与fifo转换模块9的输入端连接,ram与fifo转换模块9的输出端也接口切换模块5的输入端连接。具体实施时,将控制接口1连接于系统的控制总线,数据接口7连接于系统的数据总线,通过控制接口1,进行配置寄存器组2的配置,通过数据接口7进行数据的写入,写入的数据在ram芯片8中暂存。当配置完成的时,若配置异步模式,则异步状态机工作;若配置为同步模式,则同步状态机工作。同步与异步之间的切换,由接口切换模块5完成。ram与fifo转接模块9负责将数据由ram存储格式转换为fifo模式,方便异步或者同步状态机使用。读取时首先通过控制接口1,配置寄存器组2,将命令配置为读取,时间参数配置成相应器件的时间值。读取时若配置为异步模式则启动异步模式状态机3,若配置为同步模式则启动同步模式状态机4,将nandflash芯片6中的数据读取。读取的数据经过数据通道,暂存在ram芯片8中,待合适时,由数据接口7送出。在本实施中,控制接口1采用标准axi-lite接口,使用人员也可根据需要采用其他接口。控制接口1具体包括第一控制接口、第二控制接口和第三控制接口,如表1所示。表1控制接口1控制接口1接口名称功能描述第一控制接口control_wr读写使能信号,高电平写入,低电平读出第二控制接口control_addr[7:0]8位地址线,用于寻址寄存器第三控制接口control_data[63:0]64位宽数据接口7,用该数据配置寄存器数据接口7采用标准ram接口,数据接口7包括第一数据接口~第十数据接口,如表2所示。表2数据接口7数据接口7接口名称功能描述第一数据接口wr_data_sop写入数据包头,标志数据包起始位置第二数据接口wr_data_eop写入数据包尾,标志数据包结束位置第三数据接口wr_data_vaild写入数据有效,该信号为1时,写入数据有效第四数据接口wr_data[63:0]64位写入数据第五数据接口wr_data_rdy写入允许信号,该信号为1时,准许写入第六数据接口rd_data_sop读取数据包头,标志数据包起始位置第七数据接口rd_data_eop读取数据包尾,标志数据包结束位置第八数据接口rd_data_vaild读取数据有效,该信号为1时,读取数据有效第九数据接口rd_data[63:0]64位读取数据第十数据接口rd_data_rdy读取允许信号,该信号为1时,准许读取nandflash芯片6上设置nandflash端接口,nandflash端接口采用nofi2.0标准接口,nandflash端接口包括第一nandflash端接口包括~第七nandflash端接口,如表3所示。表3nandflash端接口nandflash端接口接口名称功能描述第一nandflash端接口nand_cenandflash片选信号第二nandflash端接口nand_ale地址使能信号第三nandflash端接口nand_cle命令使能信号第四nandflash端接口nand_wr_clk异步模式下为写入使能信号,同步模式下为clk时钟信号第五nandflash端接口nand_rd_wr异步模式下为读取使能信号,同步模式下为1为写入,0为读取第六nandflash端接口nand_dq[7:0]数据输入输出接口第七nandflash端接口nand_dqs异步模式下无作用,同步模式下为数据选择信号本控制器可通过灵活配置寄存器组2,兼容各个厂家的不同器件,在本具体实施例中,配置寄存器组2如表4所示。表4配置寄存器组2寄存器寄存器名称功能描述第一寄存器tadl[7:0]地址周期到数据周期的保持时间配置寄存器第二寄存器tccs[7:0]列选择变换建立时间配置寄存器第三寄存器tceh[7:0]片选高电平保持时间配置寄存器第四寄存器tch[7:0]片选保持时间配置寄存器第五寄存器tcs[7:0]片选建立时间配置寄存器第六寄存器tdh[7:0]数据保持时间配置寄存器第七寄存器tds[7:0]数据建立时间配置寄存器第八寄存器tfeat[7:0]setfeature指令忙时间配置寄存器第九寄存器titc[7:0]接口切换时间配置寄存器第十寄存器trr[7:0]数据输出准备时间配置寄存器第十一寄存器trst[7:0]器件复位时间配置寄存器第十二寄存器twhr[7:0]命令或者地址周期到数据输出保持时间配置寄存器第十三寄存器tww[7:0]写保护到命令周期时间配置寄存器第十四寄存器tbers[31:0]擦除时间配置寄存器第十五寄存器tplebsy[31:0]多plane擦除时间配置寄存器第十六寄存器tplpbsy[31:0]多plane编程时间配置寄存器第十七寄存器tplrbsy[31:0]多plane读取时间配置寄存器第十八寄存器tpcbsy[31:0]cache编程时间配置寄存器第十九寄存器tprog[31:0]写入时间配置寄存器第二十寄存器tr[31:0]读取时间配置寄存器以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1