以Virtex5开发板和SPI FLASH为基础的FPGA多重配置分析.doc
《以Virtex5开发板和SPI FLASH为基础的FPGA多重配置分析.doc》由会员分享,可在线阅读,更多相关《以Virtex5开发板和SPI FLASH为基础的FPGA多重配置分析.doc(5页珍藏版)》请在三一文库上搜索。
1、以Virtex5开发板和SPI FLASH为基础的FPGA多重配置分析引言现代硬件程序设计规模越来越大,功能越来越复杂,当多个应用程序同时在一个硬件平台上实现时,各个程序的资源使用和数据通路可能会冲突,这增加了控制电路设计的复杂程度,给开发人员增加了工作量和开发难度。通过多重配置,可以将多个应用程序根据需要分时加载到FPGA 中,不仅精简了电路设计,而且使系统更加灵活。FPGA 多重配置的特点可以让特定条件下的用户选择片上资源不多的FPGA 去实现需要很多资源FPGA 才能实现的功能,这大大降低了开发费用,同时提高了FPGA的利用率。Xilinx 公司Virtex5 系列的FPGA 具有多重配
2、置的特性,允许用户在不掉电重启的情况下,根据不同时刻的需求,可以从FLASH 中贮存的多个比特文件选择加载其中的一个,实现系统功能的变换。1 总体设计当FPGA完成上电自动加载初始化的比特流后,可以通过触发FPGA内部的多重启动事件使得FPGA从外部配置存储器(SPI FLASH)指定的地址自动下载一个新的比特流来重新配置。FPGA 的多重配置可以通过多种方式来实现。本文采用的是基于ICAP核的状态机编码方式。通过调用Xilinx 自带的ICAP 核,编写状态机按照一定的指令流程对ICAP核进行不断的配置,可以控制FPGA 重新配置。这种方式可以在源代码中加很多注释,让后来的开发者很清楚地明白
3、ICAP核指令流顺序,以及多重配置地址计算方法,是一种简单实用的实现方法。1.1 硬件电路多重配置的硬件主要包括FPGA 板卡和贮存配置文件的FLASH 芯片。FPGA 选用XILINX 公司Virtex-5系列中的ML507,该产品针对FPGA多重配置增加了专用的内部加载逻辑。FLASH 芯片选用XILINX 公司的SPI FLASH 芯片M25P32,该芯片存贮空间为32 Mb,存贮文件的数量与文件大小以及所使用的FPGA 芯片有关。实现多重配置首先要将FPGA 和外部配置存储器连接为从SPI FLASH 加载配置文件的模式。配置电路硬件连接框图如图1所示。在FPGA配置模式中,M2,M1
4、,M0为0,0,1,这种配置模式对应边界扫描加上拉,FPGA在这种模式下所有的I/O只在配置期间有效。在配置完成后,不用的I/O将被浮空5.M2,M1,M0 三个选择开关对应于ML507 开发板上的SW3开关中的4,5,6位,在FPGA上电之前将上述开关拨为0,0,1状态。1.2 软件设计从软件设计的角度可以将FPGA 多重配置主要分为两个部分。第一部分是用户自己开发的程序,这一部分包括用户要在FPGA上边实现的功能,同时也包括为重载模块提供时钟信号,以及触发信号,本文触发信号是通过用户程序编写串口通信协议栈来接收PC端传输的数字作为触发信号。第二部分是FPGA 重载配置模块。FPGA多重配置
5、首先要调用ICAP核,当满足触发条件后,采用状态机编码的方式对ICAP 核进行赋值配置。FPGA多重配置的软件结构图如图2所示。FPGA多重配置的软件结构图如图2所示。重载模块首先要调用ICAP核。ICAP原语在Xilinx的编译软件ISE 中调用,调用路径为Edit LanguageTemplates,VHDL/Verilog Device Primitive Instantia-tionVirtex5FPGA Config/BSCAN Components In-ternal Config Access Por(t ICAP_VIRTEX5)。ICAP_VIRTEX5调用接口如下:ICAP
6、 核支持X8,X16,X32 三种数据带宽模式。在整个FPGA 重配置的过程中并没有用到ICAP核的输出,因此在重载模块的状态机控制程序中不关注BUSY,O 信号的值,可以不对它们赋值。用户程序在使用接口时只需对CE,CLK,I,WRITE4个信号不断赋值来发送命令。在调用了ICAP核接口之后,通过Verilog编码的方式实现状态机。通过状态机发送IPROG指令给ICAP 核,ICAP 核在接收到这些指令后会根据指定的地址自动加载配置文件。IPROG 指令的作用是对FPGA 芯片进行复位操作,该复位操作对FPGA 内部的应用程序进行复位,复位过程中除专用配置管脚和JTAG 管脚,其他输入/输出
7、管脚均为高阻态。完成复位操作后,将默认的加载地址用热启动地址寄存器(Warm Boot Start Address,WB-STAR)中的新地址替换。在发送IPROG 指令之前,需要对ICAP核进行预配置。重载控制模块在收到触发信号后,第一个时钟周期将ICAP 核的WRITE 信号和CE 信号置高,第二个周期将WRITE 信号置底,CE 信号置高,第三个周期将WRITE信号置底,CE信号也置底。接着在下面的8 个时钟周期里,将指令队列中的控制命令逐个发出。状态机指令流程如图3所示。在状态机发送IPROG 指令的过程中,为了保证ICAP 核接收到正确的指令,每一个发送出去的命令和数据必须遵循Sel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 以Virtex5开发板和SPI FLASH为基础的FPGA多重配置分析 Virtex5 开发 SPI FLASH 基础 FPGA 多重 配置 分析
链接地址:https://www.31doc.com/p-3375186.html