基于FPGA的SPI FLASH控制器及其设计方法技术

技术编号:17994784 阅读:55 留言:0更新日期:2018-05-19 11:57
本发明专利技术公开基于FPGA的SPI FLASH控制器及其的设计方法,涉及计算机芯片设计领域,根据SPI FLASH的指令类型软件配置标志寄存器;在FPGA中设置逻辑核心若干FIFO、状态机FSM、SPI时序产生模块;FIFO接收寄存器的值并发送给状态机,状态机根据标志寄存器的内容,决定读取对应FIFO;从FIFO读出数据转换为SPI时序,通过SPI接口输出给SPI FLASH。状态机接收SPI FLASH的读返回信息,并缓存到FIFO,等待软件读取。本发明专利技术基于FPGA逻辑设计,自主实现SPI FLASH控制器,实现方法简单,减少了系统复杂度,不需要额外购买FPGA IP,极大降低项目成本。

SPI FLASH controller based on FPGA and its design method

The invention discloses a design method of SPI FLASH controller based on FPGA and its design method. It involves the field of computer chip design, configuring the sign register according to the instruction type software of SPI FLASH; setting the logical kernel of a number of FIFO, state machine FSM, SPI timing generation module in FPGA; FIFO receiving register values and sending to the state machine, The state machine decides to read the corresponding FIFO according to the contents of the flag register, and reads the data from FIFO to SPI sequence, and outputs it to SPI FLASH through the SPI interface. The state machine receives the read and return information of SPI FLASH and caches to FIFO, waiting for the software to read. The invention is based on the logic design of FPGA and realizes the SPI FLASH controller independently. The realization method is simple, the complexity of the system is reduced, the extra FPGA IP is not needed, and the cost of the project is greatly reduced.

【技术实现步骤摘要】
基于FPGA的SPIFLASH控制器及其设计方法
本专利技术涉及计算机芯片设计领域,具体的说是基于FPGA的SPIFLASH控制器及其设计方法。
技术介绍
传统SPIFLASH控制器,应用场景如附图1所示,软件通过APB接口向FPGA配置指令;FPGA解析指令类型,得到SPI指令、地址、数据,然后产生SPI时序,输出到SPI接口上;SPI输出接口连接到SPIFLASH。同时,FPGA接收SPIFLASHD的返回数据,进行缓存处理,等待软件读取。上述FPGA(Field-ProgrammableGateArray)是现场可编程逻辑器件。APB(AdvancedPeripheralBus),是外围总线,该总线协议是ARM公司提出的AMBA总线结构之一,已成为一种标准的片上总线结构。SPI(SerialPeripheralInterface),是串行外设接口,是一种高速的,双全工,同步的通信总线,在芯片的管脚上只占四根线。FLASH或FLASH内存,是一种长寿命的非易失性存储器,在断电情况下仍能保持所存储的数据信息;数据删除不是以单个字节为单位,是以固定区块为单位,区块大小一般为256KB本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201711373989.html" title="基于FPGA的SPI FLASH控制器及其设计方法原文来自X技术">基于FPGA的SPI FLASH控制器及其设计方法</a>

【技术保护点】
基于FPGA的SPI FLASH控制器,其特征在于,其结构包括:标志寄存器,通过软件配置标志寄存器flag,用于标志SPI FLASH的指令类型;FPGA,接收并缓存软件通过APB接口发送的指令;包括的核心逻辑件为若干FIFO、一个状态机FSM、一个SPI时序产生模块;FIFO,用于接收软件通过APB配置下来的寄存器的值;包括FLAG_FIFO :用于接收软件通过APB配置下来的当前标志寄存器的值;状态机,接收FLAG_FIFO发送的标志寄存器的值,根据标志寄存器的内容,决定读取对应FIFO;同时接收SPI FLASH的读返回信息,将读返回信息缓存到FIFO,等待软件读取;SPI时序产生模块,...

【技术特征摘要】
1.基于FPGA的SPIFLASH控制器,其特征在于,其结构包括:标志寄存器,通过软件配置标志寄存器flag,用于标志SPIFLASH的指令类型;FPGA,接收并缓存软件通过APB接口发送的指令;包括的核心逻辑件为若干FIFO、一个状态机FSM、一个SPI时序产生模块;FIFO,用于接收软件通过APB配置下来的寄存器的值;包括FLAG_FIFO:用于接收软件通过APB配置下来的当前标志寄存器的值;状态机,接收FLAG_FIFO发送的标志寄存器的值,根据标志寄存器的内容,决定读取对应FIFO;同时接收SPIFLASH的读返回信息,将读返回信息缓存到FIFO,等待软件读取;SPI时序产生模块,将FIFO读出数据依次转换为SPI时序,通过SPI接口输出给SPIFLASH。2.根据权利要求1所述基于FPGA的SPIFLASH控制器,其特征在于,通过软件配置指令寄存器、地址寄存器、写个数寄存器、读个数寄存器和写数据寄存器。3.根据权利要求2述基于FPGA的SPIFLASH控制器,其特征在于,所述FPGA内部设置CMD_FIFO:用于接收软件通过APB配置下来的指令寄存器的值;FPGA内部设置ADDR_FIFO:用于接收软件通过APB配置下来的地址寄存器的值;FPGA内部设置WR_CNT_FIFO:用于接收软件通过APB配置下来的写个数寄存器的值;FPGA内部设置RD_CNT_FIFO:用于接收软件通过APB配置下来的读个数寄存器的值;FPGA内部设置WR_DATA_FIFO:用于接收软件通过APB配置下来的写数据寄存器的值;同时,所述FPGA内部设置RV_DATA_FIFO:用于接收SPIFLASH读返回的数据。4.根据权利要求3所述基于FPGA的SPIFLASH控制器,其特征在于,初始状态,若FLAG_FIFO为非空,同时当前cmd配置完毕;则从IDLE状态到RD_FLAG状态;读FLAG_FIFO状态,读出当前指令的类型,若CMD_FIFO为非空,则从RD_FLAG状态跳转到RD_CMD状态;读CMD_FIFO状态,并且将cmd发送到spi总线上;若当前flag只包含cmd,则在发送完cmd到spi总线之后,将跳转到IDLE状态;若当前flag包含cmd和读返回数据,则在发送完cmd到spi总线之后,将跳转到RV_RD_DATA状态,接收flash的返回数据;若当前flag包含cmd和addr,则在发送完cmd到spi总线之后,将跳转到RD_ADDR状态;读ADDR_FIFO状态,将addr发送到spi总线上;若当前flag只包含cmd+addr,则在发送完cmd和addr到spi总线之后,将跳转到IDLE状态;若当前flag只包含cmd+addr+wr_data,则在发送完cmd和addr到spi总线之后,将跳转到RD_WR_DATA状态;若当前flag只包含cmd+addr+rd_data,且当前cmd不包含dummyclock虚拟时钟,则在发送完cmd和addr到spi总线之后,将跳转到RV_RD_DATA状态;若当前flag只包含cmd+addr+rd_data,且当前cmd包含dummyclock,则在发送完cmd和addr到spi总线之后,将跳转到WAIT状态;若当前flag只包含cmd+addr+rd_data,且当前cmd包含dummyclock,则在发送完cmd和addr到spi总线之后,将跳转到WAIT状态。5.根据权利要求4所述基于FPGA的SPIFLASH控制器,其特征在于,在RD_WR_DATA状态下,读WR_DATA_FIFO状态,并且按照配置的写数据的个数,依次将要写入FLASH的数据,发送到spi总线上,然后跳转到IDLE状态;在RV_RD_DATA状态下,按照配置的读数据的个数,接收flash的读返回数据,并且将返回数据写入对应的缓存RV_DATA_FIFO,供APB总线来读取,然后跳转到IDLE状态;在WAIT状态下,等待N个时钟周期,然后跳转到RV_RD_DATA状态,此时对应的cmd为0x0b或者是0x0c。6...

【专利技术属性】
技术研发人员:张贞雷
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1