一种FPGA动态重构方法技术

技术编号:14517287 阅读:133 留言:0更新日期:2017-02-01 19:45
本发明专利技术涉及一种FPGA动态重构方法,包括:利用FPGA读取存储在片外Flash中的不同偏移地址处的配置文件,通过自行编写的状态机将读取到的配置文件写入FPGA内部的ICAP(内部配置访问端口),以完成FPGA的本地动态重构;利用以太网将各个配置文件传输到FPGA内部并利用编写的状态机将各个配置文件存储在FPGA内部的BRAM中,最后利用编写的状态机将BRAM中的配置文件烧写进片外Flash,以完成FPGA的远程动态重构。本发明专利技术相比于常用的实现FPGA动态重构的方法而言,能够使得存储在片外Flash中的配置文件的个数大大提高,片外Flash与FPGA的连接也不受固定管脚的约束,不需要第三方协议芯片的协助,Flash的类型也不受约束。

【技术实现步骤摘要】

本专利技术具体涉及一种FPGA动态重构方法,属于电子工程和计算机科学领域。
技术介绍
FPGA的动态重构已经越来越多的应用到各个领域,FPGA的动态重构主要就是基于时分复用的思想在FPGA内部同一区域上分时实现不同的逻辑功能。目前常用的实现FPGA动态重构的方法主要分为以下三种(以Xilinx公司的Virtex-5系列FPGA芯片为例):(1)基于PlatformFlashPROM的重构方式此种重构方式虽然是最常用的方式,但是这里的PlatformFlashPROM是Xilinx公司为配置FPGA而设计的专用Flash芯片,其普适性大大降低;同时,由于Xilinx公司对PlatformFlash的限制,导致只能存储至多4种配置文件在其内部,这严重限制了大型系统的重构设计;此种方式中的Flash芯片需要连接到FPGA指定的管脚,这也限制了使用的灵活性;需要通过软件或者硬件跳线的方式选择相对应的配置方式,这就需要开发人员熟悉一款FPGA芯片的配置细节,增加了设计难度。但是不可否认,此种方式的实时性是最高的。(2)基于BPIFlashPROM的重构方式此种重构方式所采用的BPIFlash种类受到限制;也只能存储至多4种配置文件在其内部;也需要通过软件或者硬件跳线的方式选择相对应的配置方式;Flash芯片也需要连接到FPGA指定的管脚。(3)基于SystemACECF的重构方式此种配置方式是最方便的一种,屏蔽了很多底层细节,相关配置功能完全由Xilinx公司的SystemACE芯片完成,这也就限制了开发人员的主动性,同时使得重构系统的设计完全受制于第三方芯片。此种方式的实时性是最低的。通过以上分析可以看出,目前实现FPGA动态重构的方法都存在很多不足,包括Flash芯片种类的限制、Flash内部可存储的配置文件个数的限制、Flash需要连接到FPGA固定管脚的限制以及受制于第三方控制芯片的限制。本专利技术在研究FPGA(XilinxVirtex-5系列)底层配置原理的基础上,提出一种FPGA动态重构方法,该方法可以有效解决上述FPGA动态重构时的不足。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种FPGA动态重构方法,实现FPGA重构设计的简单易行化。本专利技术解决其技术问题是采取以下技术方案实现的:一种FPGA动态重构方法,步骤如下:步骤一:当重构模式为本地重构时,利用FPGA读取存储在片外Flash中的不同偏移地址处的配置文件,通过状态机将读取到的配置文件写入FPGA内部的ICAP,即内部配置访问端口,以完成FPGA的本地动态重构;步骤二:当重构模式为远程重构时,利用以太网将各个配置文件传输到FPGA内部并利用编写的状态机将各个配置文件存储在FPGA内部的BRAM中,利用状态机将BRAM中的配置文件烧写进片外Flash,以完成FPGA的远程动态重构。本专利技术的关键技术在于FPGA内部状态机的设计,需要判断配置文件的起止标志以及ICAP端口信号的时序控制。本专利技术相比于常用的实现FPGA动态重构的方法而言,能够使得存储在片外Flash中的配置文件的个数大大提高、片外Flash与FPGA的连接也不受固定管脚的约束、不需要第三方协议芯片的协助、Flash的类型也不受约束。包括如下步骤:步骤一中,当重构模式为本地重构时,此时Flash中的不同偏移地址处已经存储了不同的配置文件:①以4字节为一组读取Flash中的目标配置文件,同时将读取到的数据写入ICAP;②编写状态机控制ICAP端口信号的时序,首先使ICAP工作在X32模式。第一个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为高电平即逻辑‘1’、数据输入信号为十六进制数据0x00000000;③第二个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为低电平即逻辑‘0’、数据输入信号为①中读取到的4字节数据;④第三个时钟周期:设置ICAP的片选信号为低电平即逻辑‘0’、读写信号为低电平即逻辑‘0’、数据输入信号为①中读取到的4字节数据;⑤第四个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为高电平即逻辑‘1’、数据输入信号为十六进制数据0xaaaaaaaa;⑥步骤②-⑤完成了①中读取到的4字节数据的写入ICAP,接着继续以4字节为一组读取Flash数据,当读取到的数据不是十六进制0x000000b0时,重复步骤①-⑤;当读取到十六进制0x000000b0时,按照②-⑤将0x000000b0写入ICAP,同时继续以4字节为一组读取Flash数据,当紧接着读取到的数据为十六进制0x04000000时,按照②-⑤将0x04000000写入ICAP,此时就完成了目标配置文件在FPGA中的动态重构。步骤二中,当重构模式为远程重构时,此时首先需要在状态机的控制下将远程的配置文件写入片外Flash:①编写状态机读取网络传输过来的配置数据,并同时计数,当接收到的数据大小小于102字节时,忽略这些数据;当接收到的数据大小大于等于103字节时,将此时接收到的数据进行基于字节的大小端转换,即一个字节的最高位当作最低位、最低位当作最高位,然后将转换后的数据写入FPGA内部的BRAM(BlockRAM)中;②直到接收到的数据为十六进制0x000000b0,并写入BRAM;③此时再次接收4字节的数据,当此时的数据为十六进制0x04000000时,将其写入BRAM;④然后在状态机控制下将BRAM中的数据烧写进片外Flash;⑤以4字节为一组读取Flash中的目标配置文件,同时将读取到的数据写入ICAP;⑥编写状态机控制ICAP端口信号的时序,首先使ICAP工作在X32模式。第一个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为高电平即逻辑‘1’、数据输入信号为十六进制数据0x00000000;⑦第二个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为低电平即逻辑‘0’、数据输入信号为⑤中读取到的4字节数据;⑧第三个时钟周期:设置ICAP的片选信号为低电平即逻辑‘0’、读写信号为低电平即逻辑‘0’、数据输入信号为⑤中读取到的4字节数据;⑨第四个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为高电平即逻辑‘1’、数据输入信号为十六进制数据0xaaaaaaaa;⑩步骤⑥-⑨完成了⑤中读取到的4字节数据的写入ICAP,接着继续以4字节为一组读取Flash数据,当读取到的数据不是十六进制0x000000b0时,重复步骤⑤-⑨;当读取到十六进制0x000000b0时,按照⑥-⑨将0x000000b0写入ICAP,同时继续以4字节为一组读取Flash数据,当紧接着读取到的数据为十六进制0x04000000时,按照⑥-⑨将0x04000000写入ICAP,此时就完成了目标配置文件在FPGA中的动态重构。本专利技术设计的动态重构方法适用于Xilinx公司的所有Virtex-5FPGA芯片。本专利技术与现有技术相比的优点在于:(1)通过在FPGA内部设计状态机来完成基于普通Flash芯片的FPGA动态重构,相比于常用的实现FPGA动态重构的方法而言,本专利技术能够使得存储在片外Flash中的配置文件的个数大大提高、片外Fl本文档来自技高网
...
一种FPGA动态重构方法

【技术保护点】
一种FPGA动态重构方法,其特征在于包括以下步骤:步骤一:当重构模式为本地重构时,利用FPGA读取存储在片外Flash中的不同偏移地址处的配置文件,通过状态机将读取到的配置文件写入FPGA内部的ICAP,即内部配置访问端口,以完成FPGA的本地动态重构;步骤二:当重构模式为远程重构时,利用以太网将各个配置文件传输到FPGA内部并利用编写的状态机将各个配置文件存储在FPGA内部的BRAM中,利用状态机将BRAM中的配置文件烧写进片外Flash,以完成FPGA的远程动态重构。

【技术特征摘要】
1.一种FPGA动态重构方法,其特征在于包括以下步骤:步骤一:当重构模式为本地重构时,利用FPGA读取存储在片外Flash中的不同偏移地址处的配置文件,通过状态机将读取到的配置文件写入FPGA内部的ICAP,即内部配置访问端口,以完成FPGA的本地动态重构;步骤二:当重构模式为远程重构时,利用以太网将各个配置文件传输到FPGA内部并利用编写的状态机将各个配置文件存储在FPGA内部的BRAM中,利用状态机将BRAM中的配置文件烧写进片外Flash,以完成FPGA的远程动态重构。2.根据权利要求1所述的一种FPGA动态重构方法,其特征在于:所述步骤一中,当重构模式为本地重构时,此时Flash中的不同偏移地址处已经存储了不同的配置文件,具体实现如下:①以4字节为一组读取Flash中的目标配置文件,同时将读取到的数据写入ICAP;②编写状态机控制ICAP端口信号的时序,首先使ICAP工作在X32模式。第一个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为高电平即逻辑‘1’、数据输入信号为十六进制数据0x00000000;③第二个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为低电平即逻辑‘0’、数据输入信号为①中读取到的4字节数据;④第三个时钟周期:设置ICAP的片选信号为低电平即逻辑‘0’、读写信号为低电平即逻辑‘0’、数据输入信号为①中读取到的4字节数据;⑤第四个时钟周期:设置ICAP的片选信号为高电平即逻辑‘1’、读写信号为高电平即逻辑‘1’、数据输入信号为十六进制数据0xaaaaaaaa;⑥步骤②-⑤完成了①中读取到的4字节数据的写入ICAP,接着继续以4字节为一组读取Flash数据,当读取到的数据不是十六进制0x000000b0时,重复步骤①-⑤;当读取到十六进制0x000000b0时,按照②-⑤将0x000000b0写入ICAP,同时继续以4字节为一组读取Flash数据,当紧接着读取到的数据为十六进制0x04000000时,按照②-⑤将0x04000000写入ICAP,此时就完成了目标配置文件在FPGA中的动态重构。3.根据权利要求1所述的一种FPGA动态重构方法,其特征在于:所述步骤二中,当重构模式为...

【专利技术属性】
技术研发人员:陶飞邹孝付左颖
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1