一种基于FPGA_ROS的可重构计算系统和方法技术方案

技术编号:16188124 阅读:27 留言:0更新日期:2017-09-12 11:24
本发明专利技术涉及FPGA系统领域,具体为一种基于FPGA_ROS的可重构计算系统和方法,其能够将FPGA_ROS应用到超出芯片资源的复杂图像算法上,降低了开发成本,将至少两组FPGA_ROS模块串联连接,所述FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,所述ARM芯片上设置有订阅接口、发布接口,所述FPGA芯片配置与所述FPGA_ROS模块数量对应的IP核,所述IP核之间通过可重构方式进行切换,前面一组所述FPGA_ROS模块的发布接口发布的数据输入相邻的后面一组所述FPGA_ROS模块的订阅接口,最后一组所述FPGA_ROS模块的发布接口输出的为最终结果。

Reconfigurable computing system and method based on FPGA_ROS

The present invention relates to the field of FPGA system, in particular to a computing system and method of FPGA_ROS Based Reconfigurable, the FPGA_ROS can be applied to the complex image beyond the algorithm chip resources, reduce the cost of development, will be at least two sets of FPGA_ROS modules are connected in series, the FPGA_ROS module includes a ARM chip, ARM and FPGA interface and the FPGA chip, the ARM chip is arranged on the subscription interface, publishing interface, the FPGA chip is configured with the FPGA_ROS module corresponding to the nuclear IP, between the IP core switching through the reconfiguration, the subscription interface behind the data input interface in front of a group of adjacent released by the FPGA_ROS module released a set the FPGA_ROS module, the last group of the FPGA_ROS module interface output for the final results released.

【技术实现步骤摘要】
一种基于FPGA_ROS的可重构计算系统和方法
本专利技术涉及FPGA系统领域,具体为一种基于FPGA_ROS的可重构计算系统和方法。
技术介绍
ROS(RobotOperatingSystem)是美国WillowGarage公司于2007年发布的开源机器人操作系统。ROS是专为机器人软件开发所设计出来的一套操作系统架构。它提供类似于操作系统的服务,首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架,这使可执行文件能被单独设计,并且在运行时松散耦合。FPGA_ROS是将FPGA芯片作为一个ROS节点,同样遵循发布/订阅消息机制,可以和其他标准的ROS节点进行交互,FPGA_ROS通过将需要运算的模块移交给FPGA处理,实现FPGA对ROS节点的加速。基于FPGA的计算系统设计与通用计算机系统编程相比,其开发难度大,可移植性和可拓展性差,这主要是因为两者在编程模式上有这本质区别。使用通用计算机开发程序时,开发人员无需了解硬件,也无须关注硬件本身资源大小。而在基于FPGA开发程序时,一开始就已经选定了器件类型,其本身资源大小已经固定,而在设计中,如果所需资源超出器件本身资源,则无法生成硬件电路加载到FPGA器件中。因此,如果想在FPGA器件上运行超出器件资源的程序,需要对FPGA的架构进行重新设计,提高了开发成本。
技术实现思路
为了解决上述问题,本专利技术提供了一种基于FPGA_ROS的可重构计算系统和方法,其能够将FPGA_ROS应用到超出芯片资源的复杂图像算法上,降低了开发成本。其技术方案是这样的:一种基于FPGA_ROS的可重构计算系统,其特征在于,其包括至少两组串联连接的FPGA_ROS模块,所述FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,所述ARM芯片上设置有订阅接口、发布接口,前面一组所述FPGA_ROS模块的发布接口与相邻的后面一组所述FPGA_ROS模块的订阅接口连接,所述FPGA芯片配置与所述FPGA_ROS模块数量对应的IP核。其进一步特征在于,相邻的两个所述IP核之间通过图像缓冲模块、DDR芯片和行缓冲模块连接。一种基于FPGA_ROS的可重构计算方法,其特征在于,将至少两组FPGA_ROS模块串联连接,所述FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,所述ARM芯片上设置有订阅接口、发布接口,所述FPGA芯片配置与所述FPGA_ROS模块数量对应的IP核,所述IP核之间通过可重构方式进行切换,前面一组所述FPGA_ROS模块的发布接口发布的数据输入相邻的后面一组所述FPGA_ROS模块的订阅接口,最后一组所述FPGA_ROS模块的发布接口输出的为最终结果。采用本专利技术的系统和方法后,将大型算法分解成不同的模块并通过函数调用实现不同模块之间的配合一样,将FPGA上的算法拆分成不同的功能块,然后将这些功能块串联起来作为完整的算法模块,即可将FPGA_ROS应用到超出芯片资源的复杂图像算法上,降低了开发成本。附图说明图1为本专利技术系统框图;图2为相邻的两个IP核连接框图;图3为PR机制的示意图;图4为算法调度示意图;图5为双目算法的ROS可重构实现流程图。具体实施方式见图1所示,一种基于FPGA_ROS的可重构计算系统,其包括至少两组串联连接的FPGA_ROS模块,FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,ARM芯片上设置有订阅接口、发布接口,前面一组FPGA_ROS模块的发布接口与相邻的后面一组FPGA_ROS模块的订阅接口连接,FPGA芯片配置与FPGA_ROS模块数量对应的IP核。相邻的两个IP核之间通过图像缓冲模块、DDR芯片和行缓冲模块连接。一种基于FPGA_ROS的可重构计算方法,将至少两组FPGA_ROS模块串联连接,FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,ARM芯片上设置有订阅接口、发布接口,FPGA芯片配置与FPGA_ROS模块数量对应的IP核,IP核之间通过可重构方式进行切换,前面一组FPGA_ROS模块的发布接口发布的数据输入相邻的后面一组FPGA_ROS模块的订阅接口,最后一组FPGA_ROS模块的发布接口输出的为最终结果。硬件系统模块算法的调度策略借助了PR(PartialReconfiguration)技术,PR技术允许FPGA在运行过程中切换逻辑,这是FPGA_ROS可以对算法进行重构的基础。PR技术为FPGA提供了一块特殊区域,允许FPGA在运行过程中替换这个区域的逻辑而不影响。其他逻辑的正常运行.使用PR技术主要有以下三大优点:通过分时复用的方式节约硬件资源;保持成熟的设计不变,只修改部分逻辑,加快开发效率;只替换需要的逻辑部分,运行过程中加快了逻辑功能的切换速度[6].图3所示是PR机制的示意图,在FPGA上划分出一个可重构的块A.运行过程中可以使用多个部分的BIT文件,如A1.bit、A2.bit等对块A进行配置.A1.bit、A2.bit、A3.bit和A4.bit分别包含不同的算法,通过对BIT文件的配置完成算法的切换.在配置BIT文件的过程中,除了可重构块A以外其他的FPGA资源都保持不变,可持续运行而不受配置影响.考虑到在可重构计算中图像算法被分割成了多个模块,软件层需要设计调度方法保证多个模块在调度时结果的准确性,否则会因切换不同模块导致FPGA死锁。死锁的产生主要是因为多个模块的IP核竞争FPGA资源,因为FPGA是独占资源,当FPGA工作时如果又有模块通过PR方式尝试去替换正在运行的逻辑资源,会导致FPGA直接卡死,所以软件的调度主要是控制不同图像模块在FPGA的启停时间和顺序。ROS的通讯基于发布订阅方式,即在订阅到话题后进行处理,然后将结果发布给订阅了发布话题的节点,然后下一个节点订阅到后依次再处理然后发布,所以在可重构FPGA_ROS中,如图4所示,算法分割成了n个模块,分别为IP1、IP2、…、IPn;Time_n表示不同模块所执行的时间;标有PC的一行代表PC上进行的操作,ARM和FPGA表示在ARM和FPGA上进行的操作。可以看出,当从PC上发布图像时,IP1所在模块开始工作,处理完成后交由IP2,直至IPn在FPGA处理的结果返回,然后由PC上的订阅图片接收到结果,整幅图片的流程结束。ROS本身是串行处理单张图片的,但PC发布的图像多数是连续的视频流,如果PC发布图片的速度快于各个模块之间的时间之和,必然会导致在新图片发布的同时,上一帧图片依然在第n个模块中处理,这会造成这两个模块竞争FPGA资源,所以在软件调度中,需要根据各个模块的运行时间来调整发布图片的速率,保证其慢于各个模块的运行时间之和。设PC上ROS发布的两帧间隔为Tcamera,则Tcamera>(Time_1+Time_2+…+Time_n),通过放慢发布图像的速度保证了图像结果的正确性。下面举例具体说明ROS可重构实现双目算法过程:用户ROS节点首先发布左图和右图图像(分别为left_input和right_input),在订阅到左右图像数据后,双目校正算法的FPGA_ROS节点从本地读取左右参数数本文档来自技高网...
一种基于FPGA_ROS的可重构计算系统和方法

【技术保护点】
一种基于FPGA_ROS的可重构计算系统,其特征在于,其包括至少两组串联连接的FPGA_ROS模块,所述FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,所述ARM芯片上设置有订阅接口、发布接口,前面一组所述FPGA_ROS模块的发布接口与相邻的后面一组所述FPGA_ROS模块的订阅接口连接,所述FPGA芯片配置与所述FPGA_ROS模块数量对应的IP核。

【技术特征摘要】
1.一种基于FPGA_ROS的可重构计算系统,其特征在于,其包括至少两组串联连接的FPGA_ROS模块,所述FPGA_ROS模块包括ARM芯片、ARM与FPGA交互接口和FPGA芯片,所述ARM芯片上设置有订阅接口、发布接口,前面一组所述FPGA_ROS模块的发布接口与相邻的后面一组所述FPGA_ROS模块的订阅接口连接,所述FPGA芯片配置与所述FPGA_ROS模块数量对应的IP核。2.根据权利要求1所述的一种基于FPGA_ROS的可重构计算系统,其特征在于,相邻的两个所述IP核之间通过图像缓冲模块、DD...

【专利技术属性】
技术研发人员:柴志雷周浩杰阳文敏王芝斌张圆蒲王涛尤佳
申请(专利权)人:苏州蓝甲虫机器人科技有限公司
类型:发明
国别省市:江苏,32

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

1