[发明专利]一种基于PCIE的FPGA快速局部重构方法在审
申请号: | 202011048210.X | 申请日: | 2020-09-29 |
公开(公告)号: | CN112131176A | 公开(公告)日: | 2020-12-25 |
发明(设计)人: | 洪畅;翟栋梁;钱伟宁;朱庆彬 | 申请(专利权)人: | 中国船舶重工集团公司第七二四研究所 |
主分类号: | G06F15/78 | 分类号: | G06F15/78;G06F13/42 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pcie fpga 快速 局部 方法 | ||
1.一种基于PCIE的FPGA快速局部重构方法,其特征在于:
包括FPGA多任务重构子系统和任务调度子系统;
所述FPGA多任务重构子系统包括PCIE总线控制逻辑和快速局部重构模块;
其中:PCIE总线控制逻辑包括BAR寄存器控制、DMA控制、MSI中断控制和其他控制逻辑,快速局部重构模块包括ICAP模块、ICAP控制逻辑和FIFO;
所述任务调度子系统包括PCIE驱动和任务调度应用程序;
其中:PICE驱动实现PCIE总线驱动和设备扫描、BAR寄存器控制、中断控制、内存映射、DMA数据通信功能,任务调度应用程序完成权限检查、参数检查、FPGA状态检查、多任务配置数据导入、数据预处理、控制头封装,再使能DMA将数据传输至FPGA,等待内核异步通知信号,最后检验FPGA状态和当前任务编号。
2.根据权利要求1所述的一种基于PCIE的FPGA快速局部重构方法,其特征在于:所述PCIE总线控制逻辑中,控制局部加载使用的寄存器为BAR1,储存和处理的数据包括FPGA状态数据、配置数据版本号、长度、切换日期、加载消耗时间和重构相关中断状态;使用MSI中断,设置配置数据错误和配置数据加载完成两种中断模式。
3.根据权利要求1所述的一种基于PCIE的FPGA快速局部重构方法,其特征在于:所述的快速局部重构模块状态机流程为:
状态一,ICAP模块的CSIB使能信号和RDWRB读写选择信号均置1,ICAP输入信号I为x“FFFFFFFF”,进入状态二;
状态二,清零重构时间计数器,并将RDWRB读写使能信号置0,即选择ICAP读模式,进入状态三;
状态三,读取配置数据接收FIFO中数据,当数据有效且与FPGA中预设的重构报文起始SOF一致时,计数器开始计数,设置FPGA状态为正在重构,并进入状态四,否则重复该状态;
状态四,继续读取数据,分别保存任务编号、数据长度、切换日期信息,进入状态五;
状态五,继续读取数据,当数据为x“FFFFFFFF”时,将CSIB信号置1使能ICAP,设置ICAP输入数据为将FIFO输出处理后的数据,重复该状态;当数据为其他数据时,重复该状态;当数据为报文结束EOF时,记录FPGA状态为重构完成,返回状态一;
FIFO输出数据处理方法:将FIFO输出数据进行Bit Swap操作,每个字节分别进行高低位交换,用以满足ICAP同步字要求。
4.根据权利要求1所述的一种基于PCIE的FPGA快速局部重构方法,其特征在于:所述任务调度子系统中用户态和内核态数据交互采用内存映射方式,包括BAR数据和配置数据;PCIE中断采用基于消息机制的MSI中断方式;重构任务配置数据DMA传输,步骤如下:步骤一,驱动基于内核链表在内核中分配多个物理地址连续的空间,构成循环缓冲区,用户可自定义空间大小;步骤二,应用层检查用户是否具有FPGA重构权限;步骤三,应用层分配一片地址空间,并调用mmap函数建立与内核地址空间映射关系;步骤四,应用层读取配置数据bit或bin文件,先对数据进行预处理和报文封装,再将数据储存在分配好的用户空间中;步骤五,读取FPGA工作状态,判断重构任务是否和FPGA当前工作任务不同;步骤六,应用层对BAR寄存器进行相应控制,启动DMA数据传输;步骤七,驱动等待中断到来,在内核中断处理函数中通知应用层;步骤八,应用层接收到内核异步通知后,获取中断标识、FPGA状态标识和重构时间信息,判定重构任务是否加载成功;步骤九,程序结束并退出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶重工集团公司第七二四研究所,未经中国船舶重工集团公司第七二四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011048210.X/1.html,转载请声明来源钻瓜专利网。