CN110888835B - 一种基于cpu和fpga并行处理的开发环境系统及运行方法 - Google Patents

一种基于cpu和fpga并行处理的开发环境系统及运行方法 Download PDF

Info

Publication number
CN110888835B
CN110888835B CN201911142952.6A CN201911142952A CN110888835B CN 110888835 B CN110888835 B CN 110888835B CN 201911142952 A CN201911142952 A CN 201911142952A CN 110888835 B CN110888835 B CN 110888835B
Authority
CN
China
Prior art keywords
program
chip
cpu
fpga
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911142952.6A
Other languages
English (en)
Other versions
CN110888835A (zh
Inventor
邬星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Mango Tree Digital Technology Co ltd
Original Assignee
Suzhou Mango Tree Digital Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Mango Tree Digital Technology Co ltd filed Critical Suzhou Mango Tree Digital Technology Co ltd
Priority to CN201911142952.6A priority Critical patent/CN110888835B/zh
Publication of CN110888835A publication Critical patent/CN110888835A/zh
Application granted granted Critical
Publication of CN110888835B publication Critical patent/CN110888835B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7835Architectures of general purpose stored program computers comprising a single central processing unit without memory on more than one IC chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于CPU和FPGA并行处理的开发环境系统及运行方法,系统包括:CPU芯片和FPGA芯片,所述CPU芯片上配备有开发环境,所述FPGA芯片包括预设模块和可编程模块,所述预设模块配备有开发者设定的预设程序,所述可编程模块供用户写入自定义程序,所述预设程序和自定义程序在所述开发环境中共同编译,所述预设模块还包括通讯子模块、ID生成子模块和重置子模块,所述通讯子模块用于实现所述FPGA芯片与所述CPU芯片之间通信连接,所述ID生成子模块用于根据所述自定义程序生成与所述自定义程序一一对应的ID身份编码;方法利用上述系统实现。本发明保证了CPU的高性能,又继承了FPGA的稳定性和强大的并行实时数据处理能力,开发更灵活实用。

Description

一种基于CPU和FPGA并行处理的开发环境系统及运行方法
技术领域
本发明属于电子技术领域,尤其涉及一种基于CPU和FPGA并行处理的开发环境系统及运行方法。
背景技术
近年来,IT电子技术飞速发展,各类可编程芯片层出不穷,其中,以FPGA最为典型,无论是在大型的总控系统、通信系统、各类电子设备以及安防、工业等领域有着比较广泛的应用。FPGA依靠硬件来实现所有的功能,速度上可以和专用芯片相比,但设计的灵活度与CPU相比有很大的差距。如果没有高性能要求,极其复杂的算法用硬件实现会比较困难,资源消耗也很大,那用硬件实现就有点得不偿失了。对于一个复杂系统而言,进行合理的软、硬件划分,由CPU和FPGA合作完成系统功能是非常必要的,也是高效的。
基于CPU和FPGA的系统既保证了CPU的高性能,又使其继承了FPGA的稳定性和强大的并行实时数据处理能力。但是现有的CPU+FPGA系统在程序下载执行时存在部分缺陷,易导致系统稳定性差且存在一定安全风险,如现有的CPU+FPGA系统在编译自定义程序时往往会因重复下载导致已下载的数据覆盖,同时,一旦程序运行后难以在不影响CPU+FPGA系统预设模块的情况下重置,这将会在运动控制、军事追踪等领域存在一定的安全风险。
发明内容
针对上述问题,本发明提供了一种基于CPU和FPGA并行处理的开发环境系统及运行方法,将CPU芯片和FPGA芯片结合,既保证了CPU的高性能,又使其继承了FPGA的稳定性和强大的并行实时数据处理能力,同时FPGA芯片内包含预设模块和可编程模块,可以满足客户的自行开发,同时预设模块具有ID生成子模块和重置子模块,避免自定义程序重复下载且具有重置功能的安全保证。
为了实现上述目的,本发明采用的技术方案为:
一种基于CPU和FPGA并行处理的开发环境系统,包括:CPU芯片和FPGA芯片,所述CPU芯片上配备有开发环境,所述FPGA芯片包括预设模块和可编程模块,所述预设模块配备有开发者设定的预设程序,所述可编程模块供用户写入自定义程序,所述预设程序和自定义程序在所述开发环境中共同编译,生成所述FPGA芯片的下载程序,所述预设模块还包括通讯子模块、ID生成子模块和重置子模块,所述通讯子模块用于实现所述FPGA芯片与所述CPU芯片之间通信连接,所述ID生成子模块用于根据所述自定义程序生成与所述自定义程序一一对应的ID身份编码,所述重置子模块用于根据所述CPU芯片的指令重置所述可编程模块中的程序。
优选地,通过所述开发环境向所述可编程模块写入自定义程序。
优选地,所述ID身份编码和所述下载程序生成配置文件,所述CPU芯片读取所述配置文件。
更优选地,所述ID身份编码为256位。
更优选地,所述CPU芯片用于读取所述配置文件中的ID身份编码和读取所述FPGA芯片当前下载程序的ID身份编码,判断所述配置文件中的ID身份编码和所述FPGA芯片当前下载程序的ID身份编码是否相同,若所述CPU芯片的判断结果为不同,则所述CPU芯片下载所述下载程序;若所述CPU芯片的判断结果为相同,则所述CPU芯片不重复下载所述下载程序,执行当前所述FPGA芯片的下载程序。
更优选地,所述CPU芯片还包括强制下载子模块,所述强制下载子模块用于在所述CPU芯片的判断结果为相同时重新下载所述FPGA芯片当前的下载程序。
优选地,所述CPU芯片和FPGA芯片通过PCIe接口实现数据传输。
一种基于CPU和FPGA并行处理的开发环境运行方法,包括以下步骤:
1)用户编写FPGA芯片的用户自定义程序;
2)预设程序和所述自定义程序在开发环境中共同编译,所述预设程序和自定义程序编译生成下载程序,同时ID生成子模块根据用户自定义程序,生成一一对应的ID身份编码;
3)所述ID身份编码和所述下载程序生成配置文件,所述CPU芯片读取所述配置文件;
4)所述CPU芯片读取所述配置文件中的ID身份编码和所述FPGA芯片当前下载程序的ID身份编码,判断所述配置文件中的ID身份编码和所述FPGA芯片当前所述下载程序的ID身份编码是否相同,若所述CPU芯片的判断结果为不同,则所述CPU芯片下载所述下载程序;若所述CPU芯片的判断结果为相同,则所述CPU芯片不重复下载所述下载程序,执行当前所述FPGA芯片的下载程序。
更优选地,还包括以下步骤:
所述CPU芯片向所述FPGA芯片发送强制下载指令,所述FPGA芯片接收所述CPU芯片发送的强制下载指令,则所述CPU芯片的判断结果为相同时,对所述下载程序进行下载重置。
更优选地,还包括以下步骤:
所述CPU芯片向所述FPGA芯片发送重置指令,所述FPGA芯片接收所述CPU芯片发送的重置指令,对所述可编程模块中的程序进行重置。
与现有技术相比,本发明的有益效果是:
1、本发明所述的一种基于CPU和FPGA并行处理的开发环境系统采用创新的CPU+FPGA系统,既保证了CPU的高性能,又使其继承了FPGA的稳定性和强大的并行实时数据处理能力,FPGA芯片包括预设模块和可编程模块,开发人员可以根据项目需求通过开发环境开发FPGA芯片的预设模块,使用者可以根据项目需求通过开发环境开发FPGA芯片的可编程模块,简化了用户设计,预设模块和可编程模块统一编译,开发更灵活实用,实现了FPGA的可控性,CPU芯片和FPGA芯片密切配合,且CPU芯片和FPGA芯片之间通过PCIe总线连接,简化了外部接口。
2、本发明所述的一种基于CPU和FPGA并行处理的开发环境系统及运行方法,简化了用户编译过程,预设程序可与用户程序生成下载程序,更加高效便捷,同时,对FPGA芯片的开发更加灵活,可对用户程序单独重置和对整个FPGA芯片重置。
3、本发明所述的一种基于CPU和FPGA并行处理的开发环境系统及运行方法,通过ID身份查询的方式避免了CPU芯片重复下载自定义程序,避免了用户数据的覆盖遗失,同时大大减少了用户等待时间。同时,预设模块还包括强制下载子模块,可以在CPU芯片判断无需重复下载的情况下发送强制下载指令使得预设模块和可编程模块重新配置。
4、本发明所述的一种基于CPU和FPGA并行处理的开发环境系统及运行方法具有ID生成子模块,可以在不影响系统预设模块的情况下重置,避免系统不稳或失控时造成的负面影响,同时可通过ID身份编码实时查询FPGA芯片正在运行的程序。
附图说明
图1是本发明所述的一种基于CPU和FPGA并行处理的开发环境系统的结构示意图。
图2是本发明所述的一种基于CPU和FPGA并行处理的开发环境运行方法的流程图。
图3是本发明所述的一种基于CPU和FPGA并行处理的开发环境运行方法重置子模块的流程图。
其中,1、CPU芯片,11、强制下载子模块;2、FPGA芯片,21、预设模块,211,ID生成子模块,212、重置子模块,213、通讯子模块,22、可编程模块。
具体实施方式
为了更好的理解本发明,下面结合附图和实施例进一步阐明本发明的内容,但本发明不仅仅局限于下面的实施例。
实施例
如图1至图3所示,一种基于CPU和FPGA并行处理的开发环境系统,包括:CPU芯片1和FPGA芯片2,CPU芯片1上配备有开发环境,FPGA芯片2包括预设模块21和可编程模块22,预设模块21配备有开发者设定的预设程序,可编程模块22供用户写入自定义程序,预设模块21和可编程模块22在开发环境中共同编译,生成FPGA芯片2的下载程序,预设模块21还包括通讯子模块213、ID生成子模块211和重置子模块212,通讯子模块213用于实现FPGA芯片2与CPU芯片1之间通信连接,ID生成子模块211用于根据自定义程序生成与自定义程序一一对应的256位ID身份编码,重置子模块212用于根据CPU芯片1的指令重置可编程模块22中的程序。其中,CPU芯片1和FPGA芯片2通过PCIe接口实现数据传输,用户可以通过开发环境向可编程模块22写入自定义程序,对可编程模块22进行编程,配置FPGA芯片2内部电路,预设程序由开发者设定,可不断完善。
ID身份编码和下载程序生成配置文件,CPU芯片1读取配置文件。因为是CPU芯片1配备的开发环境对自定义程序和预设程序进行编译,所以CPU芯片1可读取配置文件中的ID身份编码和读取FPGA芯片2当前下载程序的ID身份编码,判断配置文件中的ID身份编码和FPGA芯片2当前下载程序的ID身份编码是否相同,若CPU芯片1的判断结果为不同,则CPU芯片1下载此下载程序;若CPU芯片1的判断结果为相同,则CPU芯片1不重复下载此下载程序,执行当前FPGA芯片2的下载程序。
预设模块21还包括强制下载子模块11,强制下载子模块11用于在CPU芯片1的判断结果为相同时重新下载FPGA芯片2当前的下载程序。强制下载子模块11一般默认为关闭,在CPU芯片1向FPGA芯片2发送强制下载指令后,在CPU芯片1判断配置文件中的ID身份编码和FPGA芯片2当前下载程序的ID身份编码相同时,CPU芯片1也下载此下载程序,相当于重置了下载程序,对整个FPGA芯片2进行了复位。
重置子模块212用于接受CPU芯片1发送的重置指令,重置子模块212读取到重置指令后,对可编程模块22进行重置,相当于重置了用户程序。
一种基于CPU和FPGA并行处理的开发环境运行方法,利用上述一种基于CPU和FPGA并行处理的开发环境系统,包括以下步骤:
(1)用户编写FPGA芯片2的用户自定义程序:
用户通过CPU芯片1提供的开发环境对FPGA芯片2进行编程,开发环境对预设程序和自定义程序进行编译。
(2)预设程序和自定义程序在开发环境中共同编译,预设程序和自定义程序编译生成下载程序,同时ID生成子模块211根据自定义程序,生成一一对应的ID身份编码。
(3)ID身份编码和下载程序生成配置文件,CPU芯片读取配置文件:
CPU芯片1将下载程序和其对应ID身份编码生成配置文件,CPU芯片1读取配置文件,因为是CPU芯片1配备的开发环境对自定义程序和预设程序进行编译,所以CPU芯片1可读取配置文件。
(4)CPU芯片1读取配置文件中的ID身份编码和FPGA芯片2当前下载程序的ID身份编码,判断所述配置文件中的ID身份编码和FPGA芯片2当前下载程序的ID身份编码是否相同,若CPU芯片1的判断结果为不同,则CPU芯片1下载此下载程序;若CPU芯片1的判断结果为相同,则CPU芯片1不重复下载此下载程序,执行当前FPGA芯片2的下载程序。
CPU芯片1向FPGA芯片2发送强制下载指令,FPGA芯片2接收CPU芯片1发送的强制下载指令,则CPU芯片1的判断结果为相同时,对下载程序进行下载重置。在CPU芯片1向FPGA芯片2发送强制下载指令后,在CPU芯片1判断配置文件中的ID身份编码和FPGA芯片2当前下载程序的ID身份编码相同时,CPU芯片1也下载此下载程序,相当于重置了下载程序,对整个FPGA芯片2进行了复位。
为使得系统出现不稳定或失控状态时保证整个系统的安全,还包括以下步骤:
FPGA芯片2接收到CPU芯片1发送的重置指令,重置子模块212对可编程模22块进行重置。使用者可以在系统不稳定或失控状态时,向CPU芯片1发送重置指令,由CPU芯片1向FPGA芯片2发送重置指令,可编程模块22重置恢复初始状态。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

Claims (7)

1.一种基于CPU和FPGA并行处理的开发环境系统,其特征在于,包括:CPU芯片和FPGA芯片,所述CPU芯片上配备有开发环境,所述FPGA芯片包括预设模块和可编程模块,所述预设模块配备有开发者设定的预设程序,所述可编程模块供用户写入自定义程序,通过所述开发环境向所述可编程模块写入自定义程序;所述预设程序和自定义程序在所述开发环境中共同编译,生成所述FPGA芯片的下载程序,所述预设模块还包括通讯子模块、ID生成子模块和重置子模块,所述通讯子模块用于实现所述FPGA芯片与所述CPU芯片之间通信连接,所述ID生成子模块用于根据所述自定义程序生成与所述自定义程序一一对应的ID身份编码,所述ID身份编码和所述下载程序生成配置文件,所述CPU芯片读取所述配置文件;所述CPU芯片用于读取所述配置文件中的ID身份编码和读取所述FPGA芯片当前下载程序的ID身份编码,判断所述配置文件中的ID身份编码和所述FPGA芯片当前下载程序的ID身份编码是否相同,若所述CPU芯片的判断结果为不同,则所述CPU芯片下载所述下载程序;若所述CPU芯片的判断结果为相同,则所述CPU芯片不重复下载所述下载程序,执行当前所述FPGA芯片的下载程序;所述重置子模块用于根据所述CPU芯片的指令重置所述可编程模块中的程序。
2.根据权利要求1所述的一种基于CPU和FPGA并行处理的开发环境系统,其特征在于,所述ID身份编码为256位。
3.根据权利要求1所述的一种基于CPU和FPGA并行处理的开发环境系统,其特征在于,所述CPU芯片还包括强制下载子模块,所述强制下载子模块用于在所述CPU芯片的判断结果为相同时重新下载所述FPGA芯片当前的下载程序。
4.根据权利要求1所述的一种基于CPU和FPGA并行处理的开发环境系统,其特征在于,所述CPU芯片和FPGA芯片通过PCIe接口实现数据传输。
5.一种基于CPU和FPGA并行处理的开发环境运行方法,应用于权利要求1-4任一项所述的基于CPU和FPGA并行处理的开发环境系统,其特征在于,包括以下步骤:
1)用户编写FPGA芯片的用户自定义程序;
2)预设程序和所述自定义程序在开发环境中共同编译,所述预设程序和自定义程序编译生成下载程序,同时ID生成子模块根据用户自定义程序,生成一一对应的ID身份编码;
3)所述ID身份编码和所述下载程序生成配置文件,所述CPU芯片读取所述配置文件;
4)所述CPU芯片读取所述配置文件中的ID身份编码和所述FPGA芯片当前下载程序的ID身份编码,判断所述配置文件中的ID身份编码和所述FPGA芯片当前所述下载程序的ID身份编码是否相同,若所述CPU芯片的判断结果为不同,则所述CPU芯片下载所述下载程序;若所述CPU芯片的判断结果为相同,则所述CPU芯片不重复下载所述下载程序,执行当前所述FPGA芯片的下载程序。
6.根据权利要求5所述的一种基于CPU和FPGA并行处理的开发环境运行方法,其特征在于,还包括以下步骤:
所述CPU芯片向所述FPGA芯片发送强制下载指令,所述FPGA芯片接收所述CPU芯片发送的强制下载指令,则所述CPU芯片的判断结果为相同时,对所述下载程序进行下载重置。
7.根据权利要求5所述的一种基于CPU和FPGA并行处理的开发环境运行方法,其特征在于,还包括以下步骤:
所述CPU芯片向所述FPGA芯片发送重置指令,所述FPGA芯片接收所述CPU芯片发送的重置指令,对所述可编程模块中的程序进行重置。
CN201911142952.6A 2019-11-20 2019-11-20 一种基于cpu和fpga并行处理的开发环境系统及运行方法 Active CN110888835B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911142952.6A CN110888835B (zh) 2019-11-20 2019-11-20 一种基于cpu和fpga并行处理的开发环境系统及运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911142952.6A CN110888835B (zh) 2019-11-20 2019-11-20 一种基于cpu和fpga并行处理的开发环境系统及运行方法

Publications (2)

Publication Number Publication Date
CN110888835A CN110888835A (zh) 2020-03-17
CN110888835B true CN110888835B (zh) 2023-10-27

Family

ID=69748079

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911142952.6A Active CN110888835B (zh) 2019-11-20 2019-11-20 一种基于cpu和fpga并行处理的开发环境系统及运行方法

Country Status (1)

Country Link
CN (1) CN110888835B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545036A (zh) * 2003-11-17 2004-11-10 中兴通讯股份有限公司 Fpga逻辑程序下载装置
CN101211266A (zh) * 2006-12-30 2008-07-02 北京天融信网络安全技术有限公司 一种实现fpga自动下载和在线升级的方法
CN101988950A (zh) * 2009-08-04 2011-03-23 中兴通讯股份有限公司 可编程逻辑器件中逻辑程序下载状态的检测方法及装置
CN102567671A (zh) * 2011-12-30 2012-07-11 大连捷成实业发展有限公司 一种fpga配置数据的加密系统及其加密方法
CN110110534A (zh) * 2019-04-18 2019-08-09 郑州信大捷安信息技术股份有限公司 一种fpga安全运行系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545036A (zh) * 2003-11-17 2004-11-10 中兴通讯股份有限公司 Fpga逻辑程序下载装置
CN101211266A (zh) * 2006-12-30 2008-07-02 北京天融信网络安全技术有限公司 一种实现fpga自动下载和在线升级的方法
CN101988950A (zh) * 2009-08-04 2011-03-23 中兴通讯股份有限公司 可编程逻辑器件中逻辑程序下载状态的检测方法及装置
CN102567671A (zh) * 2011-12-30 2012-07-11 大连捷成实业发展有限公司 一种fpga配置数据的加密系统及其加密方法
CN110110534A (zh) * 2019-04-18 2019-08-09 郑州信大捷安信息技术股份有限公司 一种fpga安全运行系统及方法

Also Published As

Publication number Publication date
CN110888835A (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
Kobayashi et al. OpenCL-ready high speed FPGA network for reconfigurable high performance computing
US9607116B2 (en) Distributed hardware device simulation
CN110634530A (zh) 芯片的测试系统和测试方法
US8850267B2 (en) Middleware for multiprocessor software testing
CN107463499A (zh) Adb远程连接方法、装置、设备及存储介质
CN105740139B (zh) 一种基于虚拟环境的嵌入式软件调试方法
CN107885517B (zh) 嵌入式系统处理器程序加载电路
CN105446933A (zh) 多核心处理器的调试系统与调试方法
CN110795108A (zh) 一种基于Ansible编排部署Weblogic应用的方法
CN205507633U (zh) 一种基于FPGA的高性能运算PCI-e加速卡
CN110888835B (zh) 一种基于cpu和fpga并行处理的开发环境系统及运行方法
CN111830390A (zh) 一种测试方法及相关产品
CN105718416A (zh) 一种升级fpga的配置文件的方法和升级设备
US9146771B2 (en) Responding to a timeout of a message in a parallel computer
US11341013B2 (en) Electronic device having a debugging device
US7296187B1 (en) Hardware debug device having script-based host interface
CN109582379B (zh) 基于微内核操作系统的可编程逻辑控制器系统、控制方法
CN109144849B (zh) 一种嵌入式软件调测方法
CN116434040A (zh) 一种面向risc-v体系架构的实时目标检测方法及系统
CN113641577A (zh) 一种终端产品应用程序的调试方法、装置
CN105516158A (zh) 一种可配置协议转换状态机电路结构及协议配置方法
CN103197959B (zh) 一种多核cpu的切换方法
JP3504572B2 (ja) 論理回路のエミュレータ
Furukawa et al. Development of Embedded EPICS on F3RP61-2L
CN111538993A (zh) 一种引入外置式硬件信任根进行可信度量的装置与方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant