用于现场可编程门阵列芯片文件加载的系统及方法与流程

文档序号:11216001阅读:730来源:国知局
用于现场可编程门阵列芯片文件加载的系统及方法与流程

本发明涉及通信技术领域,特别涉及一种现场可编程门阵列(英文全称:field-programmablegatearray,英文简称:fpga)芯片文件加载的系统及方法。



背景技术:

目前数字信号处理一般在中频进行,大部分操作由fpga芯片实现。为实时动态重新配置fpga芯片来加载不同的软件设计,快速的实现功能的切换,目前的主要实现方法分为静态系统重构和动态系统重构。静态系统重构是指目标系统的逻辑功能静态重载,即只能在运行前配置的系统。fpga芯片功能在外部逻辑的控制下,通过存贮于存贮器中不同的目标系统数据的重新下载,而实现芯片逻辑功能的改变。在重新配置数据的过程中,旧的逻辑功能失去,新的逻辑功能尚未建立,存在系统重构时隙,系统功能无法动态连续。动态系统重构是指芯片能在运行过程中实现内部逻辑块和连接线的改变,能够解决上述无法动态连续的问题,但该方案实现过程比较复杂,文件加载速率较低。



技术实现要素:

本发明实施例提供了一种用于fpga芯片文件加载的系统及方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本发明实施例的第一方面,提供了一种用于fpga芯片文件加载的系统,其特征在于,包括:上位机模块、软件通信体系框架(英文全称:servicecomponentarchitecture,英文简称:sca)中间层模块,一个第一fpga芯片和至少一个第二fpga芯片;所述上位机模块,用于发送控制指令至所述sca中间层模块;所述控制指令包含功能算法文件的名称;所述sca中间层模块,用于接收控制指令并根据所述控制指令查找所述功能算法文件并加载至所述第一fpga芯片;所述第一fpga芯片,用于引导加载所述功能算法文件至所述第二fpga芯片;所述第二fpga芯片,用于加载所述功能算法实现对应的所述功能。

可选地,所述上位机模块和所述sca中间层模块通过基于公共对象请求代理体系结构(英文全称:commonobjectrequestbrokerarchitecture,英文简称:corba)规范的接口通过局域网(英文全称:localareanetwork,英文简称:lan)总线进行通信;所述一个或多个第二fpga芯片和所述第一fpga芯片之间通过输入/输出(英文全称:input/output,英文简称:i/o)接口互联。

可选地,所述上位机模块包括一个功能选择模块,用于进行功能选择和参数配置生成控制指令;所述控制指令包括功能算法文件名称和配置参数;所述配置参数包括所述第二fpga芯片的标识id;所述第一fpga芯片按所述第二fpga芯片id加载所述功能算法文件至相应的第二fpga芯片。

可选地,所述sca中间层模块包括:至少一个波形应用组件、至少一个设备组件和外设部件互连标准(英文全称:peripheralcomponentinterconnect,英文简称:pci)驱动;所述波形应用组件与所述功能选择模块提供的功能选项一一对应,所述设备组件与底层硬件中的第二fpga芯片一一对应;所述波形应用组件用于根据所述第二fpga芯片id寻找所述设备组件并将所述控制指令发送给所述设备组件;所述设备组件,用于调用所述pci驱动读取所述功能算法文件;所述pci驱动,用于发送所述功能算法文件至所述第一fpga芯片。

可选地,所述设备组件连接至所述紧凑型外设部件互连标准(英文全称:compactperipheralcomponentinterconnect,英文简称:cpci)总线接口,并通过所述cpci总线接口与所述cpci总线连接。

可选地,所述第二fpga芯片各外接一个闪存(英文全称:flasheeprom,英文简称:flash)和一个双倍速率同步动态随机存储器(英文全称:dualdataratesynchronousdynamicrandomaccessmemory,英文简称:ddr);所述flash内固化了所述第二fpga芯片驱动文件,用于在所述第二fpga芯片上电后加载,在所述第一fpga芯片给出控制信号后完成所述第二fpga芯片的初始化;所述ddr,用于存储所述功能算法文件。

根据本发明实施例的第二方面,提供一种用于fpga芯片文件加载的方法,包括:上位机模块发送控制指令;sca中间层模块接收所述控制指令;所述sca中间层模块解析所述控制指令,得出所述控制指令中包含的功能算法文件的名称;所述sca中间层模块根据所述功能算法文件的名称查找所述功能算法文件并将所述功能算法文件发送至第一fpga芯片;所述第一fpga芯片引导加载所述功能算法文件至所述第二fpga芯片。

可选地,所述控制指令由功能选择模块发送;所述控制指令包括功能算法文件名称和配置参数;所述配置参数包括所述第二fpga芯片的id;所述第一fpga芯片按所述第二fpga芯片id加载所述功能算法文件至相应的第二fpga芯片。

可选地,所述sca中间层模块包括:至少一个波形应用组件、至少一个设备组件和外设部件互连标准pci驱动;所述波形应用组件与所述功能选择模块提供的功能选项一一对应,所述设备组件与底层硬件中的第二fpga芯片一一对应;所述sca中间层模块根据所述功能算法文件的名称查找所述功能算法文件并将所述功能算法文件发送至第一fpga芯片包括:所述波形应用组件根据所述第二fpga芯片id寻找所述设备组件并将所述控制指令发送给所述设备组件;所述设备组件调用所述pci驱动读取所述功能算法文件;所述pci驱动发送所述功能算法文件至所述第一fpga芯片。

可选地,在上位机模块发送控制指令之前还包括:所述第一fpga芯片上电;

所述功能选择模块,所述sca中间层模块和所述第二fpga芯片上电。所述第二fpga芯片加载固化在所述第二fpga芯片外接的flash内的fpga芯片驱动文件;所述第二fpga芯片根据所述第一fpga芯片发送的控制信号完成初始化。

本发明实施例提供的技术方案可以包括以下有益效果:

本实施例提供的系统基于sca进行软件结构设计,文件加载过程中不需要进行内部逻辑块和连接线的改变,实现fpga芯片文件动态加载。整个过程不需要断电重启,过程简单,提高文件的加载效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种用于fpga芯片文件加载的系统的结构示意图;

图2是根据一示例性实施例示出的一种用于fpga芯片文件加载的系统的结构示意图;

图3是根据一示例性实施例示出的一种用于fpga芯片文件加载的方法的框图;

图4是根据一示例性实施例示出的一种用于fpga芯片文件加载的方法的框图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

sca是基于corba制定的软件无线电软件协议和相应技术标准,通过corba规范实现了软件总线,为各软件模块之间进行数据传输与联系提供的虚拟公共通道和接口。sca定义了一个实现独立、开放的软件框架,支持软件开发的基本需求,包括了开发软件的接口规范、应用编程接口、行为规范和准则。本发明的实施例基于sca的系统架构在不同的层面对硬件和软件进行详细地定义,为系统的设计和开发提供了详细的规范,建立了独立于设备的结构框架,使系统具有组件的可移植性和复用性,并确保根据sca开发的产品之间的兼容性。sca能保证基于该规范的各种系统间实现互连、互通和互操作,同时,它还为不同的sca波形应用组件提供了可移植的平台,并通过充分采用corba规范封装复杂的接口,降低了开发的复杂性,减少了开发成本。凭借sca技术能够实现文件的动态切换,不需要将设备断电或是重启再加载文件。

如图1所示,本发明实施例提供的用于fpga芯片文件加载的系统包括:上位机模块1100、sca中间层模块1200,一个第一fpga芯片1300和至少一个第二fpga芯片。

上位机模块1100,用于发送控制指令至sca中间层模块1200,其中,控制指令包含功能算法文件的名称。上位机模块1100设置有功能选项,将算法文件分解成对应所有功能选项的多个功能算法文件。

sca中间层模块1200用于接收控制指令并根据控制指令中的功能算法文件的名称查找对应的功能算法文件并加载该功能算法文件至第一fpga芯片1300。

第一fpga芯片1300,用于引导加载功能算法文件至第二fpga芯片。

第二fpga芯片用于加载功能算法文件并实现功能。

一般情况下,按系统中fpga芯片数量进行平均,每块fpga芯片能使运算速度提高7-30倍左右。本系统一个第一fpga芯片1300作为加载文件的控制器,一个或多个第二fpga芯片作为整个系统的目标器件,加载功能算法文件并实现功能。第一fpga芯片1300引导第二fpga芯片加载sca中间层模块1200发送的功能算法文件,第二fpga芯片算法文件加载功能算法文件并实现功能。整个过程不需要断电重启,以软件重构的形式,完成fpga芯片的文件动态加载。

本实施例提供的系统基于sca进行软件结构设计,文件加载过程中不需要进行内部逻辑块和连接线的改变,实现fpga芯片文件动态加载。整个过程不需要断电重启,过程简单,提高文件的加载效率。

在另一些实施例中,如图2所示,用于fpga芯片文件加载的系统包括:上位机模块1100、sca中间层模块1200,一个第一fpga芯片1300和至少一个第二fpga芯片。

上位机模块1100包括一个功能选择模块,用于进行功能选择和参数配置生成控制指令。生成的控制指令包括功能算法文件名称和配置参数,其中,配置参数包括第二fpga芯片的id,指示加载选择的功能对应的功能算法文件至对应的第二fpga芯片。该id为第二fpga芯片的设备号,进一步地,该id包括第二fpga芯片的厂商号。功能算法文件为二进制(英文全称:binary,英文简称:bin)文件,通过仿真器生成。第一fpga芯片1300在引导加载功能算法文件时,按控制指令中的第二fpga芯片id加载功能算法文件至相应的第二fpga芯片。

sca中间层模块1200以.xml文件和.out文件形式存在,由spectracx软件生成。sca中间层模块1200包括波形应用组件1201、设备组件1202和pci驱动。sca中间层模块1200同样针对上位机模块1100设置的功能选项将算法文件分解,生成对应的波形应用组件1201。sca中间层模块1200每个波形应用组件1201与主功能模块中每个功能选项和对应的功能算法文件是一一映射的。sca中间层模块1200具有针对底层第二fpga芯片抽象出来的设备组件1202,第二fpga芯片根据所能实现的功能分解成若干个可选的模块并建立一个功能管理接口,然后在设备组件1202中通过corba接口与这若干个模块映射。波形应用组件1201,用于根据控制指令寻找设备组件1202并将控制指令发送给设备组件1202,设备组件1202,调用pci驱动读取功能算法文件将功能算法文件发送至第一fpga芯片1300,波形应用组sca中间层模块1200与上位机模块1100基于corba规范定义的接口通过lan进行通信。

第一fpga芯片1300按照控制指令中的第二fpga芯片id引导加载功能算法文件至相应的第二fpga芯片。

第二fpga芯片各外接一个flash和一个ddr,在flash内固化了第二fpga芯片驱动文件,第二fpga芯片上电后加载驱动文件,在接收到第一fpga芯片1300通过通用i/o接口给出控制信号后完成初始化。ddr内存储有功能算法文件,pci驱动从该ddr内读取功能算法文件。

上位机模块1100和sca中间层模块1200基于corba规范的接口通过局域网lan总线进行通信。波形应用组件1201和设备组件1202通过基于corba规范的接口通信,设备组件1202还连接至cpci总线接口,并通过cpci总线接口与cpci总线连接。sca中间层模块1200和第一fpga芯片1300采用紧凑型外设部件互连标准cpci总线连接。第二fpga芯片和第一fpga芯片1300之间通过i/o接口互联。

在本实施例中第一fpga芯片1300采用sprtan-6,第二fpga芯片采用virtex-6。

系统上电过程为:第一fpga芯片1300首先上电完成加载,然后上位机模块1100和sca中间层模块1200以及第二fpga芯片上电。

第二fpga芯片的配置以及文件加载都是通过第一fpga芯片1300控制完成,所以第一fpga芯片1300最先上电、加载,在第一fpga芯片1300加载完毕后,其他模块才能进行上电。

系统上电后,第二fpga芯片加载固化在flash内的第二fpga芯片驱动文件,在接收到第一fpga芯片1300发送的控制信号后完成第二fpga芯片的初始化。然后执行fpga芯片文件加载过程。

文件动态加载过程为:通过上位机模块1100选择需要加载的功能和需要配置的参数,生成控制指令,通过基于corba规范的接口传递给sca中间层模块1200。当sca中间层模块1200中的波形应用组件1201接收到上位机1100发出的控制指令,会根据其中的第二fpga芯片的id寻找对应的设备组件1202,并将控制指令发送给设备组件1202。当设备组件1202接收到波形应用组件1211传递的控制指令,会调用pci驱动从第二fpga外接的ddr中读取功能算法文件并将功能算法文件通过cpci总线传送给第一fpga芯片1300,由第一fpga芯片1300引导加载至指定的第二fpga芯片,直接替代原来的文件完成fpga芯片文件加载。当需要切换功能时,在功能选择模块1100进行功能切换,并依次执行前述步骤完成对fpga芯片文件动态加载,整个过程不需要重启加载。

本实施例提供的系统基于sca进行软件结构设计,文件加载过程中不需要进行内部逻辑块和连接线的改变,实现fpga芯片文件动态加载。整个过程不需要断电重启,过程简单,提高文件的加载效率。

与前述系统实施例相对应,参见图3,本发明实施例提供的用于fpga芯片文件加载的方法包括如下步骤。

步骤s301,上位机模块发送控制指令。

上位机模块1100提供软件功能选项,根据需求在上位机模块1100选择需要执行的软件功能,上位机模块1100发送控制指令,控制指令中包含功能算法文件的名称。

步骤s302,sca中间层模块接收所述控制指令。

步骤s303,所述sca中间层模块根据所述功能算法文件的名称查找所述功能算法文件并将所述功能算法文件发送至第一fpga芯片。

步骤s304,所述第一fpga芯片引导加载所述功能算法文件至所述第二fpga芯片。

本实施例提供的方法可以实现对fpga芯片文件的动态加载,整个过程不需要重启加载,过程简单,提高文件的加载效率。

波形应用组件1201与上位机模块1100提供的功能选项一一对应,每个功能选项对应的功能算法文件不同。根据功能算法文件的名称选择与选择的功能选项对应的波形应用组件1201。

控制指令中包含功能算法文件的名称,设备组件1202根据功能算法文件的名称选择对应的功能算法文件,并发送至第一fpga芯片1300。

步骤s208,所述第一fpga芯片根据所述控制指令引导加载所述功能算法文件至第二fpga芯片。

第一fpga芯片1300发送功能算法文件至能够完成选择的功能的第二fpga芯片。

在一些实施例中,参见图4,用于fpga芯片文件加载的方法包括如下步骤。

步骤s401,所述第一fpga芯片上电。

步骤s402,所述功能选择模块,所述sca中间层模块和所述第二fpga芯片上电。

第一fpga芯片1300实现第二fpga芯片的初始化和文件部署,在系统进行工作前首先对第一fpga芯片1300上电,当fpga芯片1300上电后再对其他模块即上位机模块,sca中间层模块和第二fpga芯片进行上电。

步骤s403,所述第二fpga芯片加载固化在所述第二fpga芯片外接的flash内的fpga芯片驱动文件。

第二fpga芯片外接的flash内固化了第二fpga芯片的驱动文件,在第二fpga芯片上电后会自动加载第二fpga芯片驱动文件。

步骤s404,所述第二fpga芯片根据所述第一fpga芯片发送的控制信号完成初始化。

第二fpga芯片在加载文件前首先要进行初始化,第一fpga芯片1300发送控制信号控制第二fpga芯片进行初始化。

步骤s405,上位机模块发送控制指令。

上位机模块1100包括功能选择模块,可以进行功能选择和参数配置并生成控制指令。配置参数中包含第二fpga芯片id,所述第二fpga芯片id指示加载选择的功能对应的功能算法文件至对应的第二fpga芯片。

步骤s406,sca中间层模块接收所述控制指令。

sca中间层模块1200接收的控制指令包括功能算法文件名称和配置参数。其中,功能算法文件名称为与选择的功能对应的功能算法文件名称,该功能算法文件为加载到第二fpga芯片的文件名称。

步骤s407,所述波形应用组件根据所述第二fpga芯片id寻找所述设备组件并将所述控制指令发送给所述设备组件。

sca中间层模块1200针对上位机模块1100设置的功能选项将算法文件分解,生成对应的波形应用组件1201。sca中间层模块1200每个波形应用组件1201与主功能模块中每个功能选项和对应的功能算法文件是一一映射的。sca中间层模块1200具有针对底层第二fpga芯片抽象出来的设备组件1202,因此,可通过第二fpga芯片id寻找对应的设备组件1202。

步骤s408,所述设备组件调用所述pci驱动读取所述功能算法文件。

sca中间层模块1200包括pci驱动,设备组件1202调用pci驱动读取控制指令中功能算法文件名称对应的功能算法文件。

步骤s409,所述pci驱动发送所述功能算法文件至所述第一fpga芯片。

步骤s410,所述第一fpga芯片引导加载所述功能算法文件至所述第二fpga芯片。

控制指令包括第二fpga芯片id,第一fpga芯片1300根据控制指令包含的第二fpga芯片id将功能算法文件加载至对应的第二fpga芯片。

当执行上述步骤完成一次功能算法文件的加载后。系统等待功能选择模块1100发送控制指令,当在功能选择模块1100做出功能切换时,则执行步骤s405及之后的步骤,完成fpga芯片文件的动态加载。

本实施例提供的方法可以实现对fpga芯片文件的动态加载,整个过程不需要重启加载,过程简单,提高文件的加载效率。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1