SPI_IP串行外围设备接口毕业设计.doc_第1页
SPI_IP串行外围设备接口毕业设计.doc_第2页
SPI_IP串行外围设备接口毕业设计.doc_第3页
SPI_IP串行外围设备接口毕业设计.doc_第4页
SPI_IP串行外围设备接口毕业设计.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、( 此文档为 word 格式,下载后您可任意编辑修改!)摘要SPI 是英语 Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。 SPI 是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间。 SPI Flash主要用于代码存储或者其他非易失性存储应用。本设计目的在于完成一个SPI Flash Controller 的设计,相当于在上层的Driver 和 Flash 器件之间建立起一座连接的桥梁。控制器接收上层配置的并行数据和控制信号,经过控制器处理之后以串行的方式发送至Flash 器件以

2、完成对 Flash 的相应的读写等操作。本设计采用Verilog HDL语言,在 Vi 编辑器中完成设计,并用EDA tool 对设计进行了编译、模拟、仿真和调试。最后又在 FPGA 上对结果进行了实践证明。完成上述全部工作之后,再从功能、面积优化和成本缩减等方面对设计进行分析总结本次毕业设计中获得的宝贵经验。关键词 :闪存Verilog HDL串行并行FPGAiABSTRACTSPI (Serial Peripheral interface) is a serial periphery slave interface. SPI is a fast, duplex and synchronis

3、m communication bus. And there are only 4 pinson the chip of SPI. It is so convenient for wire layings of PCB. SPI Flash is ideal for code download as well as storing nonvolatile voice, text and data.In this design, Ithe parallel data will be processed, and transmitted to theflash by SPI interface a

4、s serial signal in order to execute the read or write operation to the flash. The program actualizes in Verilog HDL, designed in VI under linux. EDA tools are used to simulate, synthesize and debug such as Debussy. After the design RTLs code and simulation, this design made up a system with other IP

5、 on a FPGA platform in order to check the design. After all the work above finished, this paper analyze the function, area and cost of the SPI flash controller, summarize the experience of the graduation design.Keywords:FlashVerilogSERIALCOLLATERALFPGA毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文) ,是我

6、个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,

7、学校可以公布论文的部分或全部内容。作者签名:日期:目录第一章引 言.6第二章SPI FLASH CONTROLLER简介.82.1SPI 简介 ········· ······· ················82.2SPI FLASH 简介 ···

8、;···························10第三章SPI FLASH CONTROLLER设计环境 .123.1VERILOG HDL 语言简介 ·· ············

9、;·· ·······123.2LINUX 系统下的设计开发环境简介·· ···············133.3数字电路设计方法 ·················&#

10、183;········143.4VERILOG HDL 的设计流程·············· ·······143.5编译、模拟仿真 EDA TOOL 简介 ···· ········&

11、#183;······153.6ISE 软件简介 ······························153.7XILINX SPARTAN -3 系列器件介绍··· ···

12、;············163.8HE REGISTER BUS 协议简介 ······ ······· ·······17第四章SPI FLASH CONTROLLER设计与实现 .184.1SPI FLASH CONTROLLER 的设计流程 ·· &#

13、183;·············184.2设计规格 ········ ······· ···············194.2.1设计要求 .194.2.2IO 端口

14、.194.3功能模块划分 ·····························214.4功能模块设计 ·················

15、;············224.4.1HE register 总线接口.224.4.2发送顺序控制逻辑 .234.4.3串并转换控制逻辑 .264.4.4并串转换控制逻辑 .274.4.5数据状态信息选择逻辑.284.4.6分频模块 .294.4.7片选逻辑模块 .错误!未定义书签。4.4.8中断信号产生模块 .错误!未定义书签。第五章SPI FLASH CONTROLLER测试与验证 . 错误!未定义书签。5.1测试环境····&#

16、183;·················错误!未定义书签。5.2测试文件架构·· ················错误!未定义书签。5.3测试功能点········&#

17、183;···········错误!未定义书签。5.4测试流程······················错误!未定义书签。5.5FPGA 验证··········

18、83;·········错误!未定义书签。5.5.1C_CODE 的仿真5.5.2FPGA 硬件测试.错误!未定义书签。.错误!未定义书签。5.6验证结果······················错误!未定义书签。第六章总结 . 31致谢 . 33参考文献. 35第一章引 言SPI 是英

19、语 Serial Peripheral Interface 的缩写,就是串行外围设备接口。SPI接口主要应用在EEPROM , FLASH ,实时时钟, AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI 是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。闪速存储器 (Flash Memory) 是 Intel 公司于 1988 年推出的一种新型非易失性大容量存储器。它因良好的性能而深受广大用户和半导体芯片制造商的青睐。Flash Memo

20、ry 以其集成度高、成本低、使用方便等优点,在众多领域中获得了广泛应用。在现代数字电路设计中经常需要保存大量数据,而Flash 存储速度快、体积小、功耗低且价格低廉,可在线电擦写,信息在掉电后不会丢失,因此成为设计人员的首选。在目前所有的非易失性存储器( PROM 、EPROM 、 EEPROM 和 F lash)中唯有 Flash 存储器几乎拥有现今讲究个性化的用户所需的所有特点 , 且成本已低于 PROMEPROM ,因而已为新一代嵌入式应用(如数字相机和 MP3 播放机)的首选存储器。Flash 是一种具有电可擦除的可编程 ROM ,可以分为两大类:并行 Flash 和串行 Flash。

21、并行 Flash 存储量大,速度快;而串行 Flash 存储量相对较小,但体积小,连线简单,可减小电路面积,节约成本,二者各有其优缺点,可依据实际需要选取。随着并行总线的数据传输率越来越高,传统的并行接口逐渐暴露出一些设计上的缺陷,比如并行线路的信号干扰问题,而串行技术采有极少的数据线,虽然传输速率受到限制, 但在传输数据时几乎不会因为受到干扰而出错。SPI Flash就是这样一种采用串行接口的Flash 存储器件。本课题通过对最基本的Flash 器件和 SPI 总线协议的研究和实现, 设计了 SPIFlash Controller, 以此来熟悉 IP 核的设计和验证。6第二章SPI Flas

22、h Controller简介SPI Flash Controller 即为串行外设接口flash 存储器控制器。 SPI Flash 以其优良的特性已被广泛应用于很多设计之中。本课题设计开发一款SPI Flash 控制器。2.1SPI 简介SPI Serial Peripheral Interface(串行外围设备接口)是Motorola 首先在其MC68HCXX系列处理器上定义的,正因为引言中所述的诸多优点,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200.处理外设MOSISIMISOSOSCLKCLKI/OCSGNDGND图 2.1 基本的 SPI 接口SPI 总线系统是一种

23、同步串行外设接口, 它可以使 MCU 与各种外围设备以串行方式进行通信以交换信息。外围设置 FLASHRAM 、网络控制器、 LCD 显示驱动器、 AD 转换器和 MCU 等。SPI 总线系统可直接与各个厂家生产的多种标准外围器件直接接口, SPI 接口一般使用 4 条线:串行时钟线( SCK)、主机输入从机输出数据线 MISO 、主机输出从机输入数据线 MOST 和低电平有效的从机选择线SS(有的 SPI 接口芯片带有中断信号线 INT 或 INT 、有的 SPI 接口芯片没有主机输出从机输入数据线 MOSI) 。SPI 的通信原理很简单,它以主从方式工作。这种模式通常有一个主设备和一个或多

24、个从设备,需要至少4 根线,事实上3 根也可以(单向传输时或者使用双工 IO PIN )。所有基于 SPI 的设备共有的 PIN 脚,它们是 SDI (数据输入),SDO(数据输出),SCLK (时钟), CS(片选)。( 1) SDO 主设备数据输出,从设备数据输入( 2) SDI 主设备数据输入,从设备数据输出( 3) SCLK 时钟信号,由主设备产生( 4) CS 从设备使能信号,由主设备控制其中 CS 是控制芯片是否工作, 也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效,否则会被忽略。这就允许在同一主机上连接多个 SPI 设备。其余的 3 根线是负责

25、通信的。通讯是通过数据交换完成的, SPI 是串行通讯协议,也就是说数据是一位一位的传输的。这就是 SCLK 时钟线存在的原因,由SCLK 提供时钟脉冲, SDI 、SDO 则基于此脉冲完成数据传输。 数据输出通过 SDO 线,数据在时钟下降沿时改变,在紧接着的上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少 8 次时钟信号的改变(上沿和下沿为一次) ,就可以完成 8 位数据的传输。要注意的是, SCLK 信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于 SPI 的设备中,至少有一个主控设备。这样的传输方式有一个优点:与普通的串行通讯不同,普通的串行通讯一次连续传送

26、至少8位数据,而 SPI 允许数据一位一位的传送,甚至允许暂停,因为SCLK 时钟线由主控设备控制,当没有时钟跳变时从设备不采集或传送数据。也就是说主设备通过对SCLK 时钟线的控制可以完成对通讯的控制。 SPI 还是一个数据交换协议:因为 SPI 的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI 设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义。 应该注意的是 SPI 主模块和与之通信的外设备时钟相位和极性应该一致。这句话有 2 层意思:其一,主设备SPI 时钟和极性的配置应该由外设来决定;其二,二者的配置应该保持一致,即主设备

27、的SDO 同从设备的SDO 配置一致, 主设备的 SDI 同从设备的SDI 配置一致。 因为主从设备是在SCLK 的控制下同时发送和接收数据,并通过2 个双向移位寄存器来交换数据在点对点的通信中。SPI 接口不需要进行寻址操作且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。最后, SPI 接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。2.2SPI Flash 简介本次所设计控制器针对的是华邦公司的W25X20( 2Mbit )、W25X40(4M-bit)、W25X80(8M-bit)系列,该系列为只有有限

28、的空间、pin 的串行存储器。W25X204080的SPI接口主要由4 个引脚构成:SL_SPI_CLK、SPI_DO 、SL_SPI_DI 及 SPI_CS_B,其中 SL_SPI_CLK 是整个 SPI 总线的公用时钟, SPI_DO 、SL_SPI_DI 作为主机,从机的输入输出的标志。 SPI_DO 是主机的输出,从机的输入, SL_SPI_DI 是主机的输入,从机的输出。 SPI_CS_B 是从机的标志管脚,在互相通信的两个 SPI 总线的器件, SPI_CS_B 管脚的电平低的是从机, 相反 SPI_CS_B 管脚的电平高的是主机。在一个SPI 通信系统中必须有主机。SPI总线可以

29、配置成单主单从,单主多从,互为主从。第三章SPI Flash Controller设计环境3.1Verilog HDL 语言简介Verilog HDL 是在 1983 年由 Gateway Design Automation(GDA )公司的 Phil Moorby 首创的。 1989 年 Cadence Design Systems公司收购了 GDA 公司,并于 1990 年公开 Verilog HDL 语言, 极大地推动了 Verilog HDL 的发展。基于 Verilog HDL 的优越性 IEEE 于 1995 年制定了 Verilog HDL 的 IEEE 标准,即 Verilog

30、 HDL1364 1995。Verilog HDL 具有以下特点: 能形式化地抽象表示电路的结构和行为;借用高级语言的结构和语句(如循环语言,赋值语言等) ,简化了电路行为的描述;能在多个层次上对所设计的电路进行描述;内置了基本的逻辑门,更接近开关级电路;可以使用用户自定义原语 UDP ,使得设计更加灵活,等等。与 VHDL 语言相比, Verilog HDL 和 VHDL 作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象电路的行为和结构,支持逻辑设计中层次与范围的描述,可借用高级语言的精巧结构来简化电路行为的描述,具有电路仿真与验证机制以保证设计的正确性,支持电路描述由高层到底层

31、的综合转换,硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去),易于理解和设计重用。但是 Verilog HDL 和 VHDL 又各有其自己的特点。 与 VHDL 相比 Verilog HDL最大的特点在于它是一种非常容易掌握的硬件描述语言,而且和 C 语言有许多相似之处,并继承和借鉴了 C 语言的多种操作符和语法结构,而且 Verilog HDL 在开关级电路的建模能力比 VHDL 要强。而与 Verilog HDL 相比, VHDL 则显得严谨的多,比较抽象,所以掌握起来比较困难,还有 VHDL 在系统级建模方面要比Verilog HDL 强一些。这两种语言各有其特点, 而

32、且都在不断完善。 2001 年公布的 Verilog IEEE 1364 2001 标准,使得 Verilog 语言在综合和仿真性能方面有了大幅度的提高。学习掌握 Verilog HDL 建模、仿真和综合技术不仅可以对数字电路设计技术有更进一步的了解,而且为以后学习高级的行为综合和物理综合打下坚实的基础。3.2Linux 系统下的设计开发环境简介Linux 是一套免费使用和自由传播的类Unix 操作系统, 它主要用于基于Intel x86 系列 CPU 的计算机上。 这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix 兼

33、容产品。Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux 操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Window 图形用户界面,如同我们使用Windows NT 一样,允许我们使用窗口、图标和菜单对系统进行操作。 VI编辑器是Linux 和 Unix 上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在Linux上也

34、有很多图形界面的编辑器可用,但VI 在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。VI编辑器是Visual interface 的简称,通常称之为VI 。它在 Linux 上的地位就像Edit 程序在 DOS 上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。VI编辑器并不是一个排版程序,它不像Word 或WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令而且命令繁多。Vi 有 3 种基本工作模式:命令行模式、文本输入模式和末行模式。VIM是 VI 的加强版,

35、比 vi 更容易使用。 vi 的命令几乎全部都可以在vim上使用。要在Linux 下编写文本或语言程序,您首先必须选择一种文本编辑器。可以选择使用vim 编辑器,使用它的好处是几乎每一个版本的Linux 都会有它的存在。然而它是在文本模式下使用,需要记忆一些基本的命令操作方式。3.3 数字电路设计方法数字电路设计中主要有两种基本的设计方法:自底向上和自顶向下设计方法。在自顶向下的设计方法中,我们首先定义顶层模块,然后分析实现顶层模块功能需要那些必要的子模块,然后按照相同的方法对子模块进行分解,知道无法进一步细分的最底层模块为止。在自底向上的设计方法中,我们首先对现有的功能模块进行分析,然后利用

36、这些模块去搭建较大的功能模块,如此继续直至顶层的功能模块。在实际的设计中,通常是两种方法混合使用的。设计者首先根据电路体系接口定义顶层模块。逻辑设计者确定如何根据功能将整个设计划分为子模块;同时,电路设计者对底层功能快进行优化设计,并进一步使用这些底层模块来搭建其高层模块。两者的工作按相反的方向独立的进行,直至在某一中间点会合。这是,电路设计者已经使用开关级原语创建了一个底层功能块库,而逻辑设计设也通过使用自顶向下的方法将整个设计分解为由库单元构成的结构描述。3.4 Verilog HDL 的设计流程在用 Verilog HDL 进行硬件设计的过程中,开发人员通常是将设计分层三个层次进行设计。

37、第一层次是行为描述。就是用数学模型对整个系统进行的描述。一般来说,对系统进行行为描述的目的是为了在系统设计的初始阶段,通过对系统行为的仿真来发现设计中存在的问题。在行为描述阶段并不真正考虑实际的算法和操作用什么方法来实现,注意力主要集中在系统的结构和工作过程能否达到设计要求方面。在进行完行为描述之后, 通常要把它转换为 RTL 级的描述,因为现有的 EDA 工具只能接受 RTL 级描述的 HDL 文件进行自动逻辑综合。第二层次是 RTL 方式描述,又称为寄存器传输描述。用行为方式描述系统结构的程序抽象程度很高,很难直接映射到具体逻辑元件的实现。要想得到硬件的具体实现,必须将行为方式的 Veri

38、log HDL 程序改为 RTL 方式的程序。在编写完 RTL 方式的程序之后,就可以利用仿真工具对程序进行仿真了。如果仿真通过,就可以利用逻辑综合工具进行综合了。第三层次是逻辑综合。在这一阶段主要是利用逻辑综合工具,将RTL 级的程序转换成用基本逻辑元件表示的文件(门级网表),并且综合结果也可以以原理图的方式输出。得到网表之后,还需要进行门级仿真和定时检查。其设计过程如图3.1 所示:总体方案行为级描述行为级仿真RTL 级描述RTL 级仿真逻辑综合、优化门级仿真、定时检查门级网表输出图 3.1 Verilog HDL 设计流程3.5编译、模拟仿真EDA tool 简介Debussy是 NOV

39、AS Software Inc(思源科技 )发展的 HDL Debug & Analysistool,这套软体主要不是用来跑仿真或看波形,它最强大的功能是:能够在HDLsource code、schematic diagram、waveform、state bubble diagram之间,即时做trace,协助工程师debug。在本次设计中使用的是经过公司自己修改过的版本( verdi)3.6ISE 软件简介Xilinx 公司的 ISE 软件是一套用以开发Xilinx 公司的 FPGA&CPLD 的集成开发软件,它提供了一个从设计输入到综合、布线、仿真、下载的全套解决方案,并

40、很方便的同其它 EDA 工具接口。原理图输入用的是第三方软件 ECS, HDL 综合可以使用 Xilinx 公司开发的 XST 、Synopsys的 FPGA Express和 Synplicity 公司的 SynplifySynplify Pro,测试台输入是图形化的 HDL Bencher,状态图输入用的是 StateCAD,前、后仿真则可以使用 Modelsim XE(Xilinx Edition) 或 Modelsim SE。除了上述软件以外,也可以使用其它公司的相关 EDA 软件产品。具体利用 ISE 进行 FPGA 测试的过程包括:环境设置,新建工程,添加源文件,编写测试文件,前仿

41、真,综合,布线,后仿真,配置管脚和下载测试。这里前仿真主要针对电路的语法和逻辑错误,仿真属于行为级的仿真。而后仿真是在完成布局和布线、时序分析完成生成时序网表以后,根据器件中门 ,或者布线的延时,将时序网表与功能网表一起进行的仿真。3.7Xilinx Spartan-3 系列器件介绍Spartan-3 系列器件采用 Xilinx 最成功的 Virtex- FPGA 器件构架,并利用90nm 和 12 英寸晶圆工艺生产, 芯片大小比 0.13 m 工艺的产品缩小了 80。为了优化结构,降低成本, Xilinx 对 Spartan-3 系列器件的内部结构做了部分简化,器件的晶元大小比0.13m 工

42、艺缩小了 50。这就使得新产品的成品价格比其他厂商的器件降低了80, Spartan-3 的性价比大幅度提高。为了能够提供更多的IO 引脚, Spartan-3 采用错位的双排 IO 引脚结构。该系列产品可提供 5 万至 500 万的系统逻辑门,从3.50 美元起价,完全满足顾客对低成本解决方案的要求,并把价格降低到可以和ASIC 、ASSP 和微控制器相抗衡的水平。器件主要由可配置逻辑块(CLB )、输入输出模块( IOB )、基于矢量的内部互连结构、数字延迟锁相环(DLL )、先进的多级存储器结构组成。Spartan-3 系列器件还提供四个功能强大的数字化时钟管理器(DCM ),由基本的数

43、字延迟锁相环( DLL )构成,具有完善的频率合成、相移、时钟偏移消除等功能。另外, Spartan-3 还提供丰富的嵌入式DSP 功能,可保证每秒执行 3300 亿次乘累加( MAC )运算的高性能DSP 应用。在块存储器方面,Spartan-3 可提供多达 1872Kb 的块存储器,及多达 520Kb 的分布式存储器,这些存储器都具有完全的双口功能。据权威统计,到目前为止, Xilinx 的 Spartan-3 系列 FPGA 是工艺最先进、价格最低、单位成本最有效、 IO 管脚最多的平台级可编程逻辑器件,能够满足大部分的芯片设计验证的需要。设计验证采用Spartan-3 系列的XC3S5

44、000 FPGA 器件,内部时钟频率达326MHz ,可提供 74880 个逻辑单元, 500 万个系统门。 XC3S5000 支持 17 种单端接口标准和 6 种差分接口标准,输出信号的逻辑摆幅可达1.14V 和 3.45V,每个 IO口支持 622Mbs 的数据传输率。 104 个 18 位× 18 位乘法器, 104 个 18 Kb 块存储器,这些使得在一般的集成电路设计验证中,XC3S5000 能够完全胜任。3.8 HE register BUS 协议简介该 BUS 协议共有 7 类信号线,包括片选信号R_RGST_SEL (位宽为 1)、读信号 R_RGST_RE (位宽为

45、 1)、写信号 R_RGST_WE (位宽为 1)、地址信号R_RGST_ADR (位宽为 5)、写入数据信号R_RGST_BUS (位宽为 32)、读出数据信号 SL_RGST_BUS (位宽为 32)、反馈信号 SL_RGST_ACK (位宽为 1)。该协议的主要内容包括:1. 读信号或写信号、地址信号和片选信号必须同时有效;2. 当对寄存器进行写入操作时,在检测到反馈信号有效之前,写信号、地址信号、片选信号和写入数据信号必须一直保持有效状态;3. 当对寄存器进行读操作是,在检测到反馈信号有效之前,读信号、地址信号和片选信号必须一直保持有效状态,而且只有当反馈信号有效时,才能采集读出数据信

46、号线上的值;4. 读信号和写信号只能在片选信号有效时才会有效, 而且读信号和写信号不能同时有效。第四章SPI Flash Controller 设计与实现数字电路设计中经常需要使用大容量存储器,串行Flash 体积小、占用系统资源少、连线简单,已被应用于数字设计的很多方面。本设计使用Verilog HDL编写了一个针对 Winbond W25X204080 系列 Flash 的控制器,整个设计紧凑、稳定且可靠。4.1SPI Flash Controller 的设计流程设计流程如图4.1 所示:开始结束对定义规格书下载错综合代码编写软体仿真测试平台编写错对错仿真对软体编写图 4.1SPI 的设计

47、流程编写设计代码的前提,是搞清楚所要设计的IP ,要完成什么样的功能。然后根据功能定义规格书,定义配置寄存器(register file),然后考虑好各个功能模块的具体实现方法,实现步骤,为下步的编写代码做好充分的准备。做好准备之后,开始编写代码,与测试环境,然后进行软件仿真至预期效果。等到代码仿真正确后,开始编写软体 (驱动程序,也就是deriver),将软体进行仿真,修改,直到修改正确为止。软体编写成功以后,就可以将所设计的硬件部分,软件部分综合到一起,应用 ISE 软件下载到 FPGA 中进行测试,验证正确后得到最终的代码设计。4.2设计规格本次设计,旨在实现基本的 SPI Flash

48、控制器功能, 即对 Flash 器件的基本读写及擦除操作、状态查询以及中断设置。设计的特点在于:兼容性和可重复性。4.2.1设计要求支持 Register bus总线接口支持 SPI 总线接口支持 SPI 模式传输支持深度 32 宽度 8 的 FIFO支持以下操作指令: Write EnableDisable, ReadWrite Status Register,Read Data, Fast Read, Page Program, BlockSectorChip Erase.支持传输开始可控制支持可配置的传输字节数(maximum 32, little endian)支持传输完成中断机制支持

49、中断状态查询模式支持中断状态写“ 1”清除支持可屏蔽中断信号支持系统时钟 25MHZ 100MHZ支持可配置的 SPI 接口传输速度: 14 system clock, 18 system clock, 116 system clock支持软件复位4.2.2IO端口(1) 系统时钟和系统复位表 4.1 时钟和复位端口端口名称输入输出位宽描述SYSCLK输入1系统时钟, 25MHZ 100MHZRST_B输入1系统复位,低电平有效(2) HE Register Bus 端口端口名称表输入输出4.2 HE 寄存器总线端口位宽描述R_RGST_SPI_SEL输入1Register Bus片选信号,高

50、电平有效R_RGST_WE输入1Register Bus 写使能信号,高电平有效R_RGST_RE输入1Register Bus 读使能信号,高电平有效R_RGST_BUS输入32并行数据输入总线R_RGST_ADR输入5Register Bus 地址信号SL_RGST_BUS输出32并行数据输出总线SL_RGST_ACK输出1Register Bus 读写操作完成信号,高电平有效(3) SPI Flash Bus 端口表 4.3 SPI 总线端口端口名称输入输出位宽描述SL_SPI_DI输入1SPI Flash 控制器串行输入数据SL_SPI_CLK输出1SPI 时钟SPI_DO输出1SPI

51、 Flash 控制器串行输出数据SPI_CS_B输出1SPI 片选信号,低电平有效SPI_WP_B输出1SPI Flash 写保护信号,低电平有效(4) SPI 中断信号端口表 4.4 SPI 中断端口端口名称输入输出位宽描述SPI_INT输出1SPI 中断信号( 5) DMA 传输端口表4.5 DMA传输端口端口名称输入输出位宽描述SPI_TX_REQ输出1SPI的TX需求信号SPI_TX_CLR输入1SPI 的 TX 清除信号SPI_RX_REQ输出1SPI 的 RX 需求信号SPI_RX_CLR输入1SPI 的 RX 清除信号4.3功能模块划分整个 SPI Flash Controller 按不同的功能划分为8 个模块,这样使整个设计的逻辑思路清晰明了,实现起来也比较容易,具体的模块划分情况如下:RGST 总线接口发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论