【接口时序】5、QSPI Flash的原理与QSPI时序的Verilog实现.docxVIP

【接口时序】5、QSPI Flash的原理与QSPI时序的Verilog实现.docx

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、软件平台与硬件平台

软件平台:

1、操作系统:Windows-8.1

2、开发套件:ISE14.7

3、仿真工具:ModelSim-10.4-SE

4、Matlab版本:Matlab2014b/Matlab2016a

硬件平台:

1、FPGA型号:Xilinx公司的XC6SLX45-2CSG324

2、Flash型号:WinBond公司的W25Q128BV??QuadSPIFlash存储器

提示:如果图片不清晰,请把图片在浏览器的新建标签页打开或保存到本地打开。

二、原理介绍

上一篇博客《SPI总线的原理与FPGA实现》中已经有关于标准SPI协议的原理与时序的介绍,这里不再赘述。本节主要是讨论QSPI(QuadSPI,四线SPI总线)的相关内容。我的开发板上有一片型号是W25Q128BV的QuadSPIFlash存储器,本文将以它为例子来说明QSPI操作的一些内容。

W25Q128BV的QuadSPIFlash存储器的TopView如下图所示

?

这块芯片一共有8个有用的管脚,其每个管脚的功能定义如下图所示

?

由上图可知2号管脚DO(IO1),3号管脚/WP(IO2),5号管脚DI(IO0)以及7号管脚/HOLD(IO3)均为双向IO口,所以在编写Verilog代码的时候要把它们定义为inout类型,inout类型的信号既可以做输出也可以作为输入,具体在代码里面如何处理后文会有介绍。

QSPIFlash每个引脚的详细描述如下:

1、ChipSelect(/CS)

?????片选信号ChipSelect(/CS)的作用是使能或者不使能设备的操作,当CS为高时,表示设备未被选中,串行数据输出线(DO或IO0,IO1,IO2,IO3)均处于高阻态,当CS为低时,表示设备被选中,FPGA可以给QSPIFlash发送数据或从QSPIFlash接收数据。

2、串行数据输入信号DI以及串行输出信号DO

?????W25Q128BV支持标准SPI协议,双线SPI(DualSPI)协议与四线SPI(QuadSPI)协议。标准的SPI协议在串行时钟信号(SCLK)的上升沿把串行输入信号DI上的数据存入QSPIFlash中,在串行时钟信号(SCLK)的下降沿把QSPIFlash中的数据串行化通过单向的DO引脚输出。而在DualSPI与QuadSPI中,DI与DO均为双向信号(既可以作为输入,也可以作为输出)。

3、WriteProject(/WP)

?????写保护信号的作用是防止QSPIFlash的状态寄存器被写入错误的数据,WP信号低电平有效,但是当状态寄存器2的QE位被置1时,WP信号失去写保护功能,它变成QuadSPI的一个双向数据传输信号。

4、HOLD(/HOLD)

?????HOLD信号的作用是暂停QSPIFlash的操作。当HOLD信号为低,并且CS也为低时,串行输出信号DO将处于高阻态,串行输入信号DI与串行时钟信号SCLK将被QSPIFlash忽略。当HOLD拉高以后,QSPIFlash的读写操作能继续进行。当多个SPI设备共享同一组SPI总线相同的信号的时候,可以通过HOLD来切换信号的流向。和WP信号一样,当当状态寄存器2的QE位被置1时,HOLD信号失去保持功能,它也变成QuadSPI的一个双向数据传输信号。

5、串行时钟线

?????串行时钟线用来提供串行输入输出操作的时钟。

W25Q128BV的内部结构框图如下图所示:

?

更多详细的内容请阅读W25Q128BV的芯片手册。由于本文要进行4线SPI的操作,但QSPIFlash默认的操作模式是标准单线SPI模式,所以在每次进行4线SPI操作的时候一定要先把状态寄存器2的QE位(倒数第2位)置1,然后才能进行QSPI操作。

最后介绍一下我的开发板上QSPIFlash硬件原理图如下图所示:

?

三、目标任务

1、编写标准SPI协议Verilog代码来操作QSPIFlash,并用ChipScope抓出各个指令的时序与芯片手册提供的时序进行对比

2、在标准SPI协议的基础上增加QuadSPI的功能,并用ChipScope抓出QuadSPI的读写数据的时序

3、对比标准SPI与QuadSPI读写W25Q128BV的ChipScope时序,感受二者的效率差距

四、设计思路与Verilog代码编写

4.1、命令类型的定义

W25Q128BV一共有35条命令,这里不可能把所有命令的逻辑都写出来,所以截取了一部分常用的命令作为示例来说明QSPI

文档评论(0)

stereo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档