[发明专利]一种FPGA动态重构方法有效
申请号: | 201610811460.1 | 申请日: | 2016-09-08 |
公开(公告)号: | CN106372032B | 公开(公告)日: | 2018-02-13 |
发明(设计)人: | 陶飞;邹孝付;左颖 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 北京科迪生专利代理有限责任公司11251 | 代理人: | 成金玉,卢纪 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种FPGA动态重构方法,包括利用FPGA读取存储在片外Flash中的不同偏移地址处的配置文件,通过自行编写的状态机将读取到的配置文件写入FPGA内部的ICAP(内部配置访问端口),以完成FPGA的本地动态重构;利用以太网将各个配置文件传输到FPGA内部并利用编写的状态机将各个配置文件存储在FPGA内部的BRAM中,最后利用编写的状态机将BRAM中的配置文件烧写进片外Flash,以完成FPGA的远程动态重构。本发明相比于常用的实现FPGA动态重构的方法而言,能够使得存储在片外Flash中的配置文件的个数大大提高,片外Flash与FPGA的连接也不受固定管脚的约束,不需要第三方协议芯片的协助,Flash的类型也不受约束。 | ||
搜索关键词: | 一种 fpga 动态 方法 | ||
【主权项】:
一种FPGA动态重构方法,其特征在于包括以下步骤:步骤一:当重构模式为本地重构时,利用FPGA读取存储在片外Flash中的不同偏移地址处的配置文件,通过状态机将读取到的配置文件写入FPGA内部的内部配置访问端口ICAP,,以完成FPGA的本地动态重构;步骤二:当重构模式为远程重构时,利用以太网将各个配置文件传输到FPGA内部并利用编写的状态机将各个配置文件存储在FPGA内部的BRAM中,利用状态机将BRAM中的配置文件烧写进片外Flash,以完成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中的动态重构;所述步骤二中,当重构模式为远程重构时,此时首先需要在状态机的控制下将远程的配置文件写入片外Flash,具体实现为:①编写状态机读取网络传输过来的配置数据,并同时计数,当接收到的数据大小小于102字节时,忽略这些数据;当接收到的数据大小大于等于103字节时,将此时接收到的数据进行基于字节的大小端转换,即一个字节的最高位当作最低位、最低位当作最高位,然后将转换后的数据写入FPGA内部的BRAM中;②直到接收到的数据为十六进制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中的动态重构。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610811460.1/,转载请声明来源钻瓜专利网。