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

下载本文档

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

文档简介

目录i 摘摘 要要 SPI 是英语是英语 Serial Peripheral interface 的缩写 顾名思义就是串行外围设的缩写 顾名思义就是串行外围设 备接口 备接口 SPI 是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上 只占用四根线 节约了芯片的管脚 同时为只占用四根线 节约了芯片的管脚 同时为 PCB 的布局上节省空间 的布局上节省空间 SPI Flash 主要用于代码存储或者其他非易失性存储应用 主要用于代码存储或者其他非易失性存储应用 本设计目的在于完成一个本设计目的在于完成一个 SPI Flash Controller 的设计 相当于在上层的的设计 相当于在上层的 Driver 和和 Flash 器件之间建立起一座连接的桥梁 控制器接收上层配置的并器件之间建立起一座连接的桥梁 控制器接收上层配置的并 行数据和控制信号 经过控制器处理之后以串行的方式发送至行数据和控制信号 经过控制器处理之后以串行的方式发送至 Flash 器件以完器件以完 成对成对 Flash 的相应的读写等操作 本设计采用的相应的读写等操作 本设计采用 Verilog HDL 语言 在语言 在 Vi 编辑编辑 器中完成设计 并用器中完成设计 并用 EDA tool 对设计进行了编译 模拟 仿真和调试 最后对设计进行了编译 模拟 仿真和调试 最后 又在又在 FPGA 上对结果进行了实践证明 完成上述全部工作之后 再从功能 面上对结果进行了实践证明 完成上述全部工作之后 再从功能 面 积优化和成本缩减等方面对设计进行分析总结本次毕业设计中获得的宝贵经验 积优化和成本缩减等方面对设计进行分析总结本次毕业设计中获得的宝贵经验 关键词关键词 闪存闪存 Verilog HDL 串行串行 并行并行 FPGA 目录ii ABSTRACT SPI Serial Peripheral interface is a serial periphery slave interface SPI is a fast duplex and synchronism communication bus And there are only 4 pins on 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 I have finished a SPI Flash Controller IP Core It connects top driver and flash device just like a bridge The controller receive the parallel data and control signal configured by top and then the parallel data will be processed and transmitted to the flash by SPI interface as 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 s RTL code and simulation this design made up a system with other IP 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 Flash Verilog SERIAL COLLATERAL FPGA 毕业设计 论文 原创性声明和使用授权说明毕业设计 论文 原创性声明和使用授权说明 原创性声明原创性声明 本人郑重承诺 所呈交的毕业设计 论文 本人郑重承诺 所呈交的毕业设计 论文 是我个人在指导 是我个人在指导 教师的指导下进行的研究工作及取得的成果 尽我所知 除文中特教师的指导下进行的研究工作及取得的成果 尽我所知 除文中特 别加以标注和致谢的地方外 不包含其他人或组织已经发表或公布别加以标注和致谢的地方外 不包含其他人或组织已经发表或公布 过的研究成果 也不包含我为获得过的研究成果 也不包含我为获得 及其它教育机构的学及其它教育机构的学 位或学历而使用过的材料 对本研究提供过帮助和做出过贡献的个位或学历而使用过的材料 对本研究提供过帮助和做出过贡献的个 人或集体 均已在文中作了明确的说明并表示了谢意 人或集体 均已在文中作了明确的说明并表示了谢意 作作 者者 签签 名 名 日日 期 期 指导教师签名 指导教师签名 日日 期 期 使用授权说明使用授权说明 本人完全了解安阳工学院关于收集 保存 使用毕业设计 论本人完全了解安阳工学院关于收集 保存 使用毕业设计 论 文 的规定 即 按照学校要求提交毕业设计 论文 的印刷本和文 的规定 即 按照学校要求提交毕业设计 论文 的印刷本和 电子版本 学校有权保存毕业设计 论文 的印刷本和电子版 并电子版本 学校有权保存毕业设计 论文 的印刷本和电子版 并 提供目录检索与阅览服务 学校可以采用影印 缩印 数字化或其提供目录检索与阅览服务 学校可以采用影印 缩印 数字化或其 它复制手段保存论文 在不以赢利为目的前提下 学校可以公布论它复制手段保存论文 在不以赢利为目的前提下 学校可以公布论 文的部分或全部内容 文的部分或全部内容 作者签名 作者签名 日日 期 期 目录iv 目目 录录 第一章第一章 引引 言言 1 第二章第二章 SPI FLASH CONTROLLER 简介简介 3 2 1 SPI 简介简介 3 2 2 SPI FLASH简介简介 5 第三章第三章 SPI FLASH CONTROLLER 设计环境设计环境 7 3 1 VERILOG HDL 语言简介语言简介 7 3 2 LINUX系统下的设计开发环境简介系统下的设计开发环境简介 8 3 3 数字电路设计方法数字电路设计方法 9 3 4 VERILOG HDL 的设计流程的设计流程 9 3 5 编译 模拟仿真编译 模拟仿真 EDA TOOL简介简介 10 3 6 ISE 软件简介软件简介 10 3 7 XILINX SPARTAN 3 系列器件介绍系列器件介绍 11 3 8 HE REGISTER BUS 协议简介协议简介 12 第四章第四章 SPI FLASH CONTROLLER 设计与实现设计与实现 13 4 1 SPI FLASH CONTROLLER的设计流程的设计流程 13 4 2 设计规格设计规格 14 4 2 1 设计要求设计要求 14 4 2 2 I O 端口端口 14 4 3 功能模块划分功能模块划分 16 4 4 功能模块设计功能模块设计 17 4 4 1 HE register 总线接口总线接口 17 4 4 2 发送顺序控制逻辑发送顺序控制逻辑 18 4 4 3 串并转换控制逻辑串并转换控制逻辑 21 4 4 4 并串转换控制逻辑并串转换控制逻辑 22 4 4 5 数据状态信息选择逻辑数据状态信息选择逻辑 24 4 4 6 分频模块分频模块 24 4 4 7 片选逻辑模块片选逻辑模块 25 4 4 8 中断信号产生模块中断信号产生模块 25 第五章第五章 SPI FLASH CONTROLLER 测试与验证测试与验证 27 5 1 测试环境测试环境 27 5 2 测试文件架构测试文件架构 28 5 3 测试功能点测试功能点 28 5 4 测试流程测试流程 30 5 5 FPGA 验证验证 31 5 5 1 C CODE 的仿真的仿真 31 5 5 2 FPGA 硬件测试硬件测试 31 5 6 验证结果验证结果 32 第六章第六章 总总 结结 35 致致 谢谢 37 参考文献参考文献 39 第一章 引言1 第一章第一章 引引 言言 SPI 是英语是英语 Serial Peripheral Interface 的缩写 就是串行外围设备接口 的缩写 就是串行外围设备接口 SPI 接口主要应用在接口主要应用在 EEPROM FLASH 实时时钟 实时时钟 AD 转换器 还有数字信号处转换器 还有数字信号处 理器和数字信号解码器之间 理器和数字信号解码器之间 SPI 是一种高速的 全双工 同步的通信总线 并是一种高速的 全双工 同步的通信总线 并 且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为 PCB 的布局上节的布局上节 省空间 提供方便 正是出于这种简单易用的特性 现在越来越多的芯片集成了省空间 提供方便 正是出于这种简单易用的特性 现在越来越多的芯片集成了 这种通信协议 这种通信协议 闪速存储器闪速存储器 Flash Memory 是是 Intel 公司于公司于 1988 年推出的一种新型非易失性年推出的一种新型非易失性 大容量存储器 它因良好的性能而深受广大用户和半导体芯片制造商的青睐 大容量存储器 它因良好的性能而深受广大用户和半导体芯片制造商的青睐 Flash Memory 以其集成度高 成本低 使用方便等优点 在众多领域中获得了以其集成度高 成本低 使用方便等优点 在众多领域中获得了 广泛应用 在现代数字电路设计中经常需要保存大量数据 而广泛应用 在现代数字电路设计中经常需要保存大量数据 而 Flash 存储速度快 存储速度快 体积小 功耗低且价格低廉 可在线电擦写 信息在掉电后不会丢失 因此成为体积小 功耗低且价格低廉 可在线电擦写 信息在掉电后不会丢失 因此成为 设计人员的首选 在目前所有的非易失性存储器 设计人员的首选 在目前所有的非易失性存储器 PROM EPROM EEPROM 和和 F lash 中唯有 中唯有 Flash 存储器几乎拥有现今讲究个性化的用户所需的所有特点存储器几乎拥有现今讲究个性化的用户所需的所有特点 且成本已低于且成本已低于 PROM EPROM 因而已为新一代嵌入式应用 如数字相机和 因而已为新一代嵌入式应用 如数字相机和 MP3 播放机 的首选存储器 播放机 的首选存储器 Flash 是一种具有电可擦除的可编程是一种具有电可擦除的可编程 ROM 可以分为两大类 并行 可以分为两大类 并行 Flash 和和 串行串行 Flash 并行 并行 Flash 存储量大 速度快 而串行存储量大 速度快 而串行 Flash 存储量相对较小 但体存储量相对较小 但体 积小 连线简单 可减小电路面积 节约成本 二者各有其优缺点 可依据实际积小 连线简单 可减小电路面积 节约成本 二者各有其优缺点 可依据实际 需要选取需要选取 随着并行总线的数据传输率越来越高 传统的并行接口逐渐暴露出一随着并行总线的数据传输率越来越高 传统的并行接口逐渐暴露出一 些设计上的缺陷 比如并行线路的信号干扰问题 而串行技术采有极少的数据线 些设计上的缺陷 比如并行线路的信号干扰问题 而串行技术采有极少的数据线 虽然传输速率受到限制 但在传输数据时几乎不会因为受到干扰而出错 虽然传输速率受到限制 但在传输数据时几乎不会因为受到干扰而出错 SPI Flash 就是这样一种采用串行接口的就是这样一种采用串行接口的 Flash 存储器件 存储器件 本课题通过对最基本的本课题通过对最基本的 Flash 器件和器件和 SPI 总线协议的研究和实现 设计了总线协议的研究和实现 设计了 SPI Flash Controller 以此来熟悉以此来熟悉 IP 核的设计和验证 核的设计和验证 SPI IP 接口设计2 第二章 SPI Flash Controller 简介3 第二章第二章 SPI Flash Controller 简介简介 SPI Flash Controller 即为串行外设接口即为串行外设接口 flash 存储器控制器 存储器控制器 SPI Flash 以其以其 优良的特性已被广泛应用于很多设计之中 本课题设计开发一款优良的特性已被广泛应用于很多设计之中 本课题设计开发一款 SPI Flash 控制控制 器 器 2 1 SPI 简介简介 SPI Serial Peripheral Interface 串行外围设备接口 是 串行外围设备接口 是 Motorola 首先在首先在 其其 MC68HCXX 系列处理器上定义的 正因为引言中所述的诸多优点 现在越来系列处理器上定义的 正因为引言中所述的诸多优点 现在越来 越多的芯片集成了这种通信协议 比如越多的芯片集成了这种通信协议 比如 AT91RM9200 处 理外 设 MOSI MISO SCLK I O GND SI SO CLK CS GND 图图 2 1 基本的基本的 SPI 接口接口 SPI 总线系统是一种同步串行外设接口 它可以使总线系统是一种同步串行外设接口 它可以使 MCU 与各种外围设备以与各种外围设备以 串行方式进行通信以交换信息 外围设置串行方式进行通信以交换信息 外围设置 FLASHRAM 网络控制器 网络控制器 LCD 显示显示 驱动器 驱动器 A D 转换器和转换器和 MCU 等 等 SPI 总线系统可直接与各个厂家生产的多种标总线系统可直接与各个厂家生产的多种标 准外围器件直接接口 准外围器件直接接口 SPI 接口一般使用接口一般使用 4 条线 串行时钟线 条线 串行时钟线 SCK 主机输入 主机输入 从机输出数据线从机输出数据线 MISO 主机输出 主机输出 从机输入数据线从机输入数据线 MOST 和低电平有效的从机和低电平有效的从机 选择线选择线 SS 有的有的 SPI 接口芯片带有中断信号线接口芯片带有中断信号线 INT 或或 INT 有的 有的 SPI 接口芯片没接口芯片没 有主机输出有主机输出 从机输入数据线从机输入数据线 MOSI SPI 的通信原理很简单 它以主从方式工作 这种模式通常有一个主设备和的通信原理很简单 它以主从方式工作 这种模式通常有一个主设备和 一个或多个从设备 需要至少一个或多个从设备 需要至少 4 根线 事实上根线 事实上 3 根也可以 单向传输时或者使用根也可以 单向传输时或者使用 SPI IP 接口设计4 双工双工 I O PIN 所有基于 所有基于 SPI 的设备共有的的设备共有的 PIN 脚 它们是脚 它们是 SDI 数据输入 数据输入 SDO 数据输出 数据输出 SCLK 时钟 时钟 CS 片选 片选 1 SDO 主设备数据输出 从设备数据输入主设备数据输出 从设备数据输入 2 SDI 主设备数据输入 从设备数据输出主设备数据输入 从设备数据输出 3 SCLK 时钟信号 由主设备产生时钟信号 由主设备产生 4 CS 从设备使能信号 由主设备控制从设备使能信号 由主设备控制 其中其中 CS 是控制芯片是否工作 也就是说只有片选信号为预先规定的使能信是控制芯片是否工作 也就是说只有片选信号为预先规定的使能信 号时 高电位或低电位 号时 高电位或低电位 对此芯片的操作才有效 否则会被忽略 这就允许在 对此芯片的操作才有效 否则会被忽略 这就允许在 同一主机上连接多个同一主机上连接多个 SPI 设备 设备 其余的其余的 3 根线是负责通信的 通讯是通过数据交换完成的 根线是负责通信的 通讯是通过数据交换完成的 SPI 是串行通讯是串行通讯 协议 也就是说数据是一位一位的传输的 这就是协议 也就是说数据是一位一位的传输的 这就是 SCLK 时钟线存在的原因 由时钟线存在的原因 由 SCLK 提供时钟脉冲 提供时钟脉冲 SDI SDO 则基于此脉冲完成数据传输 数据输出通过则基于此脉冲完成数据传输 数据输出通过 SDO 线 数据在时钟下降沿时改变 在紧接着的上升沿被读取 完成一位数据传线 数据在时钟下降沿时改变 在紧接着的上升沿被读取 完成一位数据传 输 输入也使用同样原理 这样 在至少输 输入也使用同样原理 这样 在至少 8 次时钟信号的改变 上沿和下沿为一次时钟信号的改变 上沿和下沿为一 次 次 就可以完成 就可以完成 8 位数据的传输 位数据的传输 要注意的是 要注意的是 SCLK 信号线只由主设备控制 从设备不能控制信号线 同样 信号线只由主设备控制 从设备不能控制信号线 同样 在一个基于在一个基于 SPI 的设备中 至少有一个主控设备 这样的传输方式有一个优点 的设备中 至少有一个主控设备 这样的传输方式有一个优点 与普通的串行通讯不同 普通的串行通讯一次连续传送至少与普通的串行通讯不同 普通的串行通讯一次连续传送至少 8 位数据 而位数据 而 SPI 允允 许数据一位一位的传送 甚至允许暂停 因为许数据一位一位的传送 甚至允许暂停 因为 SCLK 时钟线由主控设备控制 当时钟线由主控设备控制 当 没有时钟跳变时从设备不采集或传送数据 也就是说主设备通过对没有时钟跳变时从设备不采集或传送数据 也就是说主设备通过对 SCLK 时钟线时钟线 的控制可以完成对通讯的控制 的控制可以完成对通讯的控制 SPI 还是一个数据交换协议 因为还是一个数据交换协议 因为 SPI 的数据输的数据输 入和输出线独立 所以允许同时完成数据的输入和输出 不同的入和输出线独立 所以允许同时完成数据的输入和输出 不同的 SPI 设备的实现设备的实现 方式不尽相同 主要是数据改变和采集的时间不同 在时钟信号上沿或下沿采集方式不尽相同 主要是数据改变和采集的时间不同 在时钟信号上沿或下沿采集 有不同定义 应该注意的是有不同定义 应该注意的是 SPI 主主模模块块和和与与之之通通信信的的外外设设备备时时钟钟相相位位和和极极性性应应 该该一一致致 这这句句话话有有 2 层层意意思思 其其一一 主主设设备备 SPI 时时钟钟和和极极性性的的配配置置应应该该由由外外 设设来来决决定定 其其二二 二二者者的的配配置置应应该该保保持持一一致致 即即主主设设备备的的SDO 同同从从设设备备的的 SDO 配配置置一一致致 主主设设备备的的 SDI 同同从从设设备备的的 SDI 配配置置一一致致 因因为为主主从从设设备备是是在在 SCLK 的的控控制制下下同同时时发发送送和和接接收收数数据据 并并通通过过 2 个个双双向向移移位位寄寄存存器器来来交交换换数数 据据在点对点的通信中 在点对点的通信中 SPI 接口不需要进行寻址操作且为全双工通信 显得简单接口不需要进行寻址操作且为全双工通信 显得简单 高效 在多个从设备的系统中 每个从设备需要独立的使能信号 硬件上比高效 在多个从设备的系统中 每个从设备需要独立的使能信号 硬件上比 I2C 第二章 SPI Flash Controller 简介5 系统要稍微复杂一些 系统要稍微复杂一些 最后 最后 SPI 接口的一个缺点 没有指定的流控制 没有应答机制确认是否接接口的一个缺点 没有指定的流控制 没有应答机制确认是否接 收到数据 收到数据 2 2 SPI Flash 简介简介 本次所设计控制器针对的是华邦公司的本次所设计控制器针对的是华邦公司的 W25X20 2Mbit W25X40 4M bit W25X80 8M bit 系列 该系列为只有有限的空间 系列 该系列为只有有限的空间 pin 的串行存储器 的串行存储器 W25X20 40 80 的的 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 总线可以配置成单主单从 单主多从 互为主从 总线可以配置成单主单从 单主多从 互为主从 SPI IP 接口设计6 第三章 SPI Flash Controller 设计环境7 第三章第三章 SPI Flash Controller 设计环境设计环境 3 1 Verilog 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 HDL1364 1995 Verilog HDL 具有以下特点 能形式化地抽象表示电路的结构和行为 借用具有以下特点 能形式化地抽象表示电路的结构和行为 借用 高级语言的结构和语句 如循环语言 赋值语言等 高级语言的结构和语句 如循环语言 赋值语言等 简化了电路行为的描述 简化了电路行为的描述 能在多个层次上对所设计的电路进行描述 内置了基本的逻辑门 更接近开关级能在多个层次上对所设计的电路进行描述 内置了基本的逻辑门 更接近开关级 电路 可以使用用户自定义原语电路 可以使用用户自定义原语 UDP 使得设计更加灵活 等等 使得设计更加灵活 等等 与与 VHDL 语言相比 语言相比 Verilog HDL 和和 VHDL 作为描述硬件电路设计的语言 作为描述硬件电路设计的语言 其共同的特点在于 能形式化地抽象电路的行为和结构 支持逻辑设计中层次与其共同的特点在于 能形式化地抽象电路的行为和结构 支持逻辑设计中层次与 范围的描述 可借用高级语言的精巧结构来简化电路行为的描述 具有电路仿真范围的描述 可借用高级语言的精巧结构来简化电路行为的描述 具有电路仿真 与验证机制以保证设计的正确性 支持电路描述由高层到底层的综合转换 硬件与验证机制以保证设计的正确性 支持电路描述由高层到底层的综合转换 硬件 描述与实现工艺无关 有关工艺参数可通过语言提供的属性包括进去 描述与实现工艺无关 有关工艺参数可通过语言提供的属性包括进去 易于理 易于理 解和设计重用 解和设计重用 但是但是 Verilog HDL 和和 VHDL 又各有其自己的特点 与又各有其自己的特点 与 VHDL 相比相比 Verilog HDL 最大的特点在于它是一种非常容易掌握的硬件描述语言 而且和最大的特点在于它是一种非常容易掌握的硬件描述语言 而且和 C 语言有语言有 许多相似之处 并继承和借鉴了许多相似之处 并继承和借鉴了 C 语言的多种操作符和语法结构 而且语言的多种操作符和语法结构 而且 Verilog HDL 在开关级电路的建模能力比在开关级电路的建模能力比 VHDL 要强 而与要强 而与 Verilog HDL 相比 相比 VHDL 则显得严谨的多 比较抽象 所以掌握起来比较困难 还有则显得严谨的多 比较抽象 所以掌握起来比较困难 还有 VHDL 在系统级建模在系统级建模 方面要比方面要比 Verilog HDL 强一些 强一些 这两种语言各有其特点 而且都在不断完善 这两种语言各有其特点 而且都在不断完善 2001 年公布的年公布的 Verilog IEEE 1364 2001 标准 使得标准 使得 Verilog 语言在综合和仿真性能方面有了大幅度的提高 语言在综合和仿真性能方面有了大幅度的提高 学习掌握学习掌握 Verilog HDL 建模 仿真和综合技术不仅可以对数字电路设计技术有更建模 仿真和综合技术不仅可以对数字电路设计技术有更 SPI IP 接口设计8 进一步的了解 而且为以后学习高级的行为综合和物理综合打下坚实的基础 进一步的了解 而且为以后学习高级的行为综合和物理综合打下坚实的基础 3 2 Linux 系统下的设计开发环境简介系统下的设计开发环境简介 Linux 是是一一套套免免费费使使用用和和自自由由传传播播的的类类 Unix 操操作作系系统统 它它主主要要用用于于基基于于 Intel x86 系系列列 CPU 的的计计算算机机上上 这这个个系系统统是是由由世世界界各各地地的的成成千千上上万万的的程程序序员员 设设计计和和实实现现的的 其其目目的的是是建建立立不不受受任任何何商商品品化化软软件件的的版版权权制制约约的的 全全世世界界都都能能 自自由由使使用用的的 Unix 兼兼容容产产品品 Linux 以以它它的的高高效效性性和和灵灵活活性性著著称称 它它能能够够在在PC 计计算算机机上上实实现现全全部部的的 Unix 特特性性 具具有有多多任任务务 多多用用户户的的能能力力 Linux 是是在在 GNU 公公共共许许可可权权限限下下 免免费费获获得得的的 是是一一个个符符合合 POSIX 标标准准的的操操作作系系统统 Linux 操操作作系系统统软软件件包包不不 仅仅包包括括完完整整的的 Linux 操操作作系系统统 而而且且还还包包括括了了文文本本编编辑辑器器 高高级级语语言言编编译译器器 等等应应用用软软件件 它它还还包包括括带带有有多多个个窗窗口口管管理理器器的的X Window 图图形形用用户户界界面面 如如 同同我我们们使使用用 Windows NT 一一样样 允允许许我我们们使使用用窗窗口口 图图标标和和菜菜单单对对系系统统进进行行 操操作作 VI 编编辑辑器器是是 Linux 和和 Unix 上上最最基基本本的的文文本本编编辑辑器器 工工作作在在字字符符模模式式 下下 由由于于不不需需要要图图形形界界面面 使使它它成成了了效效率率很很高高的的文文本本编编辑辑器器 尽尽管管在在Linux 上上也也有有很很多多图图形形界界面面的的编编辑辑器器可可用用 但但VI 在在系系统统和和服服务务器器管管理理中中的的 功功能能是是 那那些些图图形形编编辑辑器器所所无无法法比比拟拟的的 VI 编编辑辑器器是是 Visual interface 的的简简称称 通通常常称称之之为为 VI 它它在在 Linux 上上的的 地地位位就就像像 Edit 程程序序在在 DOS 上上一一样样 它它可可以以执执行行输输出出 删删除除 查查找找 替替换换 块块 操操作作等等众众多多文文本本操操作作 而而且且用用户户可可以以根根据据自自己己的的需需要要对对其其进进行行定定制制 这这是是其其他他 编编辑辑程程序序所所没没有有的的 VI 编编辑辑器器并并不不是是一一个个排排版版程程序序 它它不不像像Word 或或 WPS 那那样样可可以以对对字字体体 格格式式 段段落落 等等其其他他属属性性进进行行编编排排 它它只只是是一一个个文文本本编编辑辑程程 序序 没没有有菜菜单单 只只有有命命令令 而而且且命命令令繁繁多多 Vi 有有 3 种种基基本本工工作作模模式式 命命令令行行模模 式式 文文本本输输入入模模式式和和末末行行模模式式 VIM 是是 VI 的的加加强强版版 比比 vi 更更容容易易使使用用 vi 的的命命令令几几乎乎全全部部都都可可以以在在 vim 上上使使用用 要要在在 Linux 下下编编写写文文本本或或语语言言程程序序 您您首首先先必必须须选选择择一一种种文文本本编编 辑辑器器 可可以以选选择择使使用用 vim 编编辑辑器器 使使用用它它的的好好处处是是几几乎乎每每一一个个版版本本的的Linux 都都会会有有它它的的存存在在 然然而而它它是是在在文文本本模模式式下下使使用用 需需要要记记忆忆一一些些基基本本的的命命令令操操作作 方方式式 第三章 SPI Flash Controller 设计环境9 3 3 数字电路设计方法数字电路设计方法 数字电路设计中主要有两种基本的设计方法 自底向上和自顶向下设计方法 数字电路设计中主要有两种基本的设计方法 自底向上和自顶向下设计方法 在自顶向下的设计方法中 我们首先定义顶层模块 然后分析实现顶层模块在自顶向下的设计方法中 我们首先定义顶层模块 然后分析实现顶层模块 功能需要那些必要的子模块 然后按照相同的方法对子模块进行分解 知道无法功能需要那些必要的子模块 然后按照相同的方法对子模块进行分解 知道无法 进一步细分的最底层模块为止 进一步细分的最底层模块为止 在自底向上的设计方法中 我们首先对现有的功能模块进行分析 然后利用在自底向上的设计方法中 我们首先对现有的功能模块进行分析 然后利用 这些模块去搭建较大的功能模块 如此继续直至顶层的功能模块 这些模块去搭建较大的功能模块 如此继续直至顶层的功能模块 在实际的设计中 通常是两种方法混合使用的 设计者首先根据电路体系接在实际的设计中 通常是两种方法混合使用的 设计者首先根据电路体系接 口定义顶层模块 逻辑设计者确定如何根据功能将整个设计划分为子模块 同时 口定义顶层模块 逻辑设计者确定如何根据功能将整个设计划分为子模块 同时 电路设计者对底层功能快进行优化设计 并进一步使用这些底层模块来搭建其高电路设计者对底层功能快进行优化设计 并进一步使用这些底层模块来搭建其高 层模块 两者的工作按相反的方向独立的进行 直至在某一中间点会合 这是 层模块 两者的工作按相反的方向独立的进行 直至在某一中间点会合 这是 电路设计者已经使用开关级原语创建了一个底层功能块库 而逻辑设计设也通过电路设计者已经使用开关级原语创建了一个底层功能块库 而逻辑设计设也通过 使用自顶向下的方法将整个设计分解为由库单元构成的结构描述 使用自顶向下的方法将整个设计分解为由库单元构成的结构描述 3 4 Verilog HDL 的设计流程的设计流程 在用在用 Verilog HDL 进行硬件设计的过程中 开发人员通常是将设计分层三个进行硬件设计的过程中 开发人员通常是将设计分层三个 层次进行设计 层次进行设计 第一层次是行为描述 就是用数学模型对整个系统进行的描述 一般来说 第一层次是行为描述 就是用数学模型对整个系统进行的描述 一般来说 对系统进行行为描述的目的是为了在系统设计的初始阶段 通过对系统行为的仿对系统进行行为描述的目的是为了在系统设计的初始阶段 通过对系统行为的仿 真来发现设计中存在的问题 在行为描述阶段并不真正考虑实际的算法和操作用真来发现设计中存在的问题 在行为描述阶段并不真正考虑实际的算法和操作用 什么方法来实现 注意力主要集中在系统的结构和工作过程能否达到设计要求方什么方法来实现 注意力主要集中在系统的结构和工作过程能否达到设计要求方 面 在进行完行为描述之后 通常要把它转换为面 在进行完行为描述之后 通常要把它转换为 RTL 级的描述 因为现有的级的描述 因为现有的 EDA 工具只能接受工具只能接受 RTL 级描述的级描述的 HDL 文件进行自动逻辑综合 文件进行自动逻辑综合 第二层次是第二层次是 RTL 方式描述 又称为寄存器传输描述 用行为方式描述系统方式描述 又称为寄存器传输描述 用行为方式描述系统 结构的程序抽象程度很高 很难直接映射到具体逻辑元件的实现 要想得到硬件结构的程序抽象程度很高 很难直接映射到具体逻辑元件的实现 要想得到硬件 的具体实现 必须将行为方式的的具体实现 必须将行为方式的 Verilog HDL 程序改为程序改为 RTL 方式的程序 在编方式的程序 在编 写完写完 RTL 方式的程序之后 就可以利用仿真工具对程序进行仿真了 如果仿真方式的程序之后 就可以利用仿真工具对程序进行仿真了 如果仿真 通过 就可以利用逻辑综合工具进行综合了 通过 就可以利用逻辑综合工具进行综合了 SPI IP 接口设计10 第三层次是逻辑综合 在这一阶段主要是利用逻辑综合工具 将第三层次是逻辑综合 在这一阶段主要是利用逻辑综合工具 将 RTL 级的级的 程序转换成用基本逻辑元件表示的文件 门级网表 程序转换成用基本逻辑元件表示的文件 门级网表 并且综合结果也可以以原 并且综合结果也可以以原 理图的方式输出 得到网表之后 还需要进行门级仿真和定时检查 理图的方式输出 得到网表之后 还需要进行门级仿真和定时检查 其设计过程如图其设计过程如图 3 1 所示 所示 总体方案 行为级描述 行为级仿真 RTL级描述 RTL级仿真 逻辑综合 优化 门级仿真 定时检查 门级网表输出 图图 3 1 Verilog HDL 设计流程设计流程 3 5 编译 模拟仿真编译 模拟仿真 EDA tool 简介简介 Debussy 是是 NOVAS Software Inc 思源科技思源科技 发展的发展的 HDL Debug 2 2 h10 1 16 system clock SPI CON 3 2 2 h11 1 16 system clock 4 4 7 片选逻辑模块片选逻辑模块 上层配置指令 地址 数据之后 控制器接收到上层配置指令 地址 数据之后 控制器接收到 Start 信号 首先会将指令信号 首先会将指令 放入移位寄存器当中 当移位寄存器中需传输的指令准备好之后 会将放入移位寄存器当中 当移位寄存器中需传输的指令准备好之后 会将 Flash 片片 选信号选信号 SPI CS B 拉低 有效 拉低 有效 待整个指令传输完成之后 再将片选信号 待整个指令传输完成之后 再将片选信号 SPI CS B 信号拉高 信号拉高 4 4 8 中断信号产生模块中断信号产生模块 SPI Flash Controller 支持三种中断机制 即 数据缓存支持三种中断机制 即 数据缓存 FIFO 空中断 数据空中断 数据 缓存缓存 FIFO 满中断和传输完成中断 当上述三种中断发生时 会首先将满中断和传输完成中断 当上述三种中断发生时 会首先将 Register File 中的中断状态寄存器 中的中断状态寄存器 INT FLAG 的相应中断状态位置 的相应中断状态位置 1 有效 有效 中断生成模块 中断状态寄 存器 中断使能信 号 SPI INT 图图 4 11 中断信号产生器中断信号产生器 当传输完成中断发生时 如果传输完成中断屏蔽使能信号当传输完成中断发生时 如果传输完成中断屏蔽使能信号 SPI CON 8 为为 0 enable 中断信号中断信号 SPI INT 有效 否则无效 有效 否则无效 SPI IP 接口设计26 第五章 SPI Flash Controller 测试与验证27 第五章第五章 SPI Flash Controller 测试与验证测试与验证 5 1 测试环境测试环境 整个整个 SPI Flash Controller 的测试环境分为的测试环境分为 7 个部分 测试情况 伪个部分 测试情况 伪 CPU 设计方案 设计方案 SPI 闪存 存储器 期望值 闪存 存储器 期望值 存储器 测试输出数据 和监视器 存储器 测试输出数据 和监视器 测试环境框图 测试环境框图 测试情况 存储器 测试输出数据 设计方案 监视器结果 SPI闪存行 为模拟程序 存储器 期 望值 伪CPU 图图 5 1 测试环境框图测试环境框图 在测试情况中 共有在测试情况中 共有 19 个个 pattern 为测试不同功能点提供全面测试的原为测试不同功能点提供全面测试的原 始激励 始激励 在伪在伪 CPU 中 定义了寄存器的读写任务 便于测试更有效的进行 中 定义了寄存器的读写任务 便于测试更有效的进行 设计方案为设计方案为 SPI Flash Controller 设计本身 设计本身 SPI 闪存闪存 为模拟为模拟 Flash 全部行为的一个模型程序 全部行为的一个模型程序 存储器 期望值 用来存储与读出数据比对的原始数据 存储器 期望值 用来存储与读出数据比对的原始数据 存储器 测试输出数据 用来存储从存储器 测试输出数据 用来存储从 Flash 中读出的数据 中读出的数据 监视器用于实现原始数据与测试输出数据的自动比对功能 以判断设计监视器用于实现原始数据与测试输出数据的自动比对功能 以判断设计 的正确性 的正确性 SPI IP 接口设计28 5 2 测试文件架构测试文件架构 SPI Flash Controller src macro sim output waveform model log golden tsk pattern sim v simfiles f makefile cov work 文件 文件夹注释 管理文件 测试功能点 仿真记录文件 行为模拟程序 功能测试覆盖率分析文件 被编译文件列表 仿真波形 期望值 测试中设计的输出 顶层仿真模块 空 图图 5 2 测试文件架构图测试文件架构图 一个好的文件架构能够方便我们的文件管理 在整个测试中由于要用到的以一个好的文件架构能够方便我们的文件管理 在整个测试中由于要用到的以 及产生的文件较多 我们必须有一个规范的文件存放位置和管理架构 这样更有及产生的文件较多 我们必须有一个规范的文件存放位置和管理架构 这样更有 利于我们的测试和改正错误 具体架构如图利于我们的测试和改正错误 具体架构如图 5 2 所示 所示 5 3 测试功能点测试功能点 表表 5 1 仿真测试功能点仿真测试功能点 功能功能子功能子功能控制信号控制信号功能描述功能描述 开始硬件复位开始硬件复位 硬件复位硬件复位RST B 进程中硬件复位进程中硬件复位 开始软件复位开始软件复位 复位复位 软件复位软件复位SW RST 进程中软件复位进程中软件复位 寄存器读写寄存器读写寄存器的正常读写寄存器的正常读写 R RGST WE R RGST RE R RGST SPI SEL R RGST BUS 对每个寄存器进行写操对每个寄存器进行写操 作 然后读取每个寄存作 然后读取每个寄存 器的值器的值 第五章 SPI Flash Controller 测试与验证29 续表续表 功能功能子功能子功能控制信号控制信号功能描述功能描述 写保护写保护SPI WP B 保护保护 Flash 状态寄存器内容状态寄存器内容 不被改变不被改变 Write enable Write enable 必须在每一个必须在每一个 写操作前写入写操作前写入 Flash Write disable ADR EN DATA RW BYTE CNT WE EN STA ID FAST 将状态寄存器将状态寄存器 WEL 位置位置 0 写状态寄存器写状态寄存器写状态寄存器写状态寄存器 写操作写操作 数据写入数据写入 ADR EN DATA RW BYTE CNT WE EN STA ID FAST Write data into Flash memory 读状态寄存器读状态寄存器 将将 Flash 状态寄存器的值读状态寄存器的值读 入入 SPI 读数据读数据 将将 Falsh Memory 中的数据中的数据 读如读如 SPI FIFO 快速读数据快速读数据 为了数据准确 写入地址后为了数据准确 写入地址后 需要等待需要等待 8 个周期才能采集个周期才能采集 数据数据 读操作读操作 读厂商信息读厂商信息 ADR EN DATA RW BYTE CNT WE EN STA ID FAST 将将 Falsh 厂商信息读入厂商信息读入 SPI STATUS ID 寄存器寄存器 片擦除片擦除将整个存储空间写为全将整个存储空间写为全 1 Sector 擦除擦除 将写入地址的对应将写入地址的对应 Sector 写写 为全为全 1 擦除擦除 Block 擦除擦除 ADR EN DATA RW BYTE CNT WE EN STA ID FAST 将写入地址的对应将写入地址的对应 Block 写写 为全为全 1 中断中断传输完成中断传输完成中断BYTE CNT WE EN SPI 操作执行完之后 发出操作执行完之后 发出 有效的中断信号有效的中断信号 写入数据写入数据 SPI TX REQ SPI TX CLR FIFO 为空 将数据写入为空 将数据写入 FIFO 写满后将 写满后将 TX REQ 清除清除DMA 模式模式 DMA 模式模式 读出数据读出数据 SPI RX REQ SPI RX CLR FIFO 为满 从为满 从 FIFO 中将中将 数据读出 读空后将数据读出 读空后将 RX REQ 清除清除 SPI IP 接口设计30 续表续表 功能功能子功能子功能控制信号控制信号功能描述功能描述 读写读写STA ID FAST正常的读写正常的读写 空状态时的空状态时的 TX REQ CPU DMA 检查能否在检查能否在 FIFO 为空时为空时 正常准确的发出正常准确的发出 TX REQ 信号信号 FIFO 满状态使得满状态使得 RX REQ CPU DMA 检查能否在检查能否在 FIFO 为满时为满时 正常准确的发出正常准确的发出 RX REQ 信号信号 读操作读操作 读操作 配置信息及指读操作 配置信息及指 令随机错误令随机错误 非正常操作非正常操作 写操作写操作 ADR EN DATA RW BYTE CNT WE EN STA ID FAST 写操作 配置正确 指写操作 配置正确 指 令错误令错误 5 4 测试流程测试流程 整个整个 SPI Flash Controller 支持对支持对 Flash 的一些基本的读写操作 如果需要的一些基本的读写操作 如果需要 验证读写操作的正确性 必须读写操作一起执行 才能得到测试输出数据 以便验证读写操作的正确性 必须读写操作一起执行 才能得到测试输出数据 以便 和原始数据做比对 和原始数据做比对 在测试写操作的正确性前 必须证明读操作的正确性 首先 修改测试用的在测试写操作的正确性前 必须证明读操作的正确性 首先 修改测试用的 SPI 后端后端 Flash 的行为模拟程序的的行为模拟程序的 Memory

温馨提示

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

评论

0/150

提交评论