首页> 中国专利> 用于FPGA的装置、程序动态加载方法及数据传输方法

用于FPGA的装置、程序动态加载方法及数据传输方法

摘要

本申请涉及嵌入式系统应用技术领域,公开一种用于FPGA的装置,包括:上位机;Zynq芯片,被配置为与所述上位机之间建立基于PCIe总线协议的第一程序加载通道;FPGA芯片,被配置为与所述Zynq芯片之间建立基于PCIe总线协议的第二程序加载通道;所述上位机通过所述第一程序加载通道将待加载程序文件发送至所述Zynq芯片,所述Zynq芯片通过所述第二程序加载通道将所述待加载程序文件发送至所述FPGA芯片,以使所述FPGA芯片对所述待加载程序文件进行加载。本申请能够提升FPGA芯片对程序文件加载速率和数据传输连续性,并提高平台的一体化和集成化程度。本申请还公开一种用于FPGA程序动态加载以及数据传输的方法。

著录项

  • 公开/公告号CN113867836A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN202111123915.8

  • 发明设计人 窦峥;陈博泽;林云;齐琳;

    申请日2021-09-24

  • 分类号G06F9/445(20180101);G06F13/40(20060101);G06F13/42(20060101);

  • 代理机构11331 北京康盛知识产权代理有限公司;

  • 代理人高会会

  • 地址 150000 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学

  • 入库时间 2023-06-19 13:29:16

说明书

技术领域

本申请涉及嵌入式系统应用技术领域,例如涉及一种用于FPGA的装置、程序动态加载方法及数据传输方法。

背景技术

现场可编辑门阵列(Field Programmable Gate Array,FPGA)是基于静态随机存取存储器(Static Random-Access Memory,SRAM)的现场可编程逻辑器件,是软件无线电平台中的一种核心器件。随着对现代化通信系统灵活性与开放性需求的提升,软件无线电平台对于FPGA芯片进行载程序文件加载有了新的需求。

在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:

现有的软件无线电平台对FPGA芯片进行程序文件的加载时,需要重新上电或者重新加载整个系统,在影响其他器件的工作的同时,加载过程也繁琐复杂。同时,采用联合测试工作组(Joint Test Action Group,JTAG)的工作模式时,其并不是软件无线电平台常见的链路方式,需要外接线路从而导致一体化和集成化的程度较差,并且也没有实现真正意义上的动态加载。

发明内容

为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

本公开实施例提供了一种用于FPGA的装置、用于FPGA程序动态加载的方法、用于FPGA数据传输的方法以及软件无线电平台,以提升FPGA芯片对程序文件加载速率和数据传输连续性,并提高平台的一体化和集成化程度。

在一些实施例中,所述装置包括:

上位机;

Zynq芯片,被配置为与所述上位机之间建立基于PCIe总线协议的第一程序加载通道;

FPGA芯片,被配置为与所述Zynq芯片之间建立基于PCIe总线协议的第二程序加载通道;

所述上位机通过所述第一程序加载通道将待加载程序文件发送至所述Zynq芯片,所述Zynq芯片通过所述第二程序加载通道将所述待加载程序文件发送至所述FPGA芯片,以使所述FPGA芯片对所述待加载程序文件进行加载。

在一些实施例中,所述用于FPGA程序动态加载的方法包括:

上位机通过第一程序加载通道向Zynq芯片发送配置程序文件,以使所述Zynq芯片与FPGA芯片之间建立基于PCIe总线协议的第二程序加载通道,并且所述Zynq芯片在配置完成后向所述上位机发送表示配置完毕的数字信号;

上位机通过第一程序加载通道向Zynq芯片发送程序加载指令,并通过第一程序加载通道将待加载程序文件发送至所述Zynq芯片;

所述Zynq芯片根据所述程序加载指令接收所述待加载程序文件,并通过第二程序加载通道将所述待加载程序文件发送至FPGA芯片;

所述FPGA芯片通过第二程序加载通道接收并对所述待加载程序文件进行加载,并将加载完毕后生成的加载完毕信息通过DONE引脚发送至所述Zynq芯片,所述Zynq芯片将所述加载完毕信息通过PCIe总线协议的基地址寄存器发送至所述上位机。

在一些实施例中,所述用于FPGA数据传输的方法包括:

上位机通过第一数据传输通道向Zynq芯片发送待处理数据;

所述Zynq芯片通过第二数据传输通道向FPGA芯片发送所述待处理数据,以使所述FPGA芯片对所述待处理数据进行处理;

所述FPGA芯片将处理过程中需要观察或者显示的处理过程数据和/或处理结果数据,通过所述第二数据传输通道发送至所述Zynq芯片;

所述Zynq芯片接收并将所述处理过程数据和/或处理结果数据通过第一数据传输通道发送至所述上位机,以使所述上位机对所述处理过程数据和/或处理结果数据进行展示。

在一些实施例中,所述软件无线电平台,包括如上所述的用于FPGA的装置。

本公开实施例提供的用于FPGA的装置、用于FPGA程序动态加载的方法、用于FPGA数据传输的方法以及软件无线电平台,可以实现以下技术效果:

本申请通过在上位机、Zynq芯片和FPGA芯片之间分别建立基于PCIe总线协议的第一程序加载通道和第二程序加载通道,以所述Zynq芯片作为数据交换的中转处以控制FPGA芯片的待加载程序文件烧写与信息反馈,从而基于PCIe总线协议实现了FPGA程序文件的高效快速加载,并且加载过程中不需要重新加载系统或者重新上电,同时也不会影响其他器件的工作,实现了真正意义上的对FPGA程序文件的动态加载,还可以实现上位机和已加载完成的FPGA芯片之间的双向数据传输,保证了硬件结构功能的完整性和多样性。

此外,本申请的软件无线电平台通过PCIe总线方式对上位机、Zynq芯片和FPGA芯片进行布设,保证了平台的一体化和集成化,使得人机交互过程更加简便明了,从而提升了软件无线电平台的工作效率。

以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。

附图说明

一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:

图1是本公开实施例提供的一个用于FPGA的装置的架构图;

图2是本公开实施例提供的Zynq芯片与上位机的信号连接图;

图3是本公开实施例提供的一个用于FPGA程序动态加载的方法的示意图;

图4是本公开实施例提供的Zynq芯片从上位机读取待加载程序文件的方法的示意图;

图5是本公开实施例提供的FPGA芯片通过第二程序加载通道接收并对所述待加载程序文件进行加载的方法的示意图;

图6是本公开实施例提供的Zynq芯片与FPGA芯片的引脚连接图;

图7是本公开实施例提供的Zynq芯片传递加载完毕信息的方法的示意图;

图8是本公开实施例提供的一个用于FPGA数据传输的方法的示意图。

具体实施方式

为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。

本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。

除非另有说明,术语“多个”表示两个或两个以上。

本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。

术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。

术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。

本公开实施例中,上位机是指可以直接发出操控命令的计算机,其屏幕上能够显示各种信号变化;Zynq芯片是赛灵思公司推出的采用ARM(A dvanced RISC Machine)处理器结合FPGA的异构多处理器体系结构,以ARM处理器为核心,同时具备FPGA的可编程性,具备专用集成电路(A pplication Specific Integrated Circuit,ASIC)芯片的高性能和低功耗;PCI e(Peripheral Component Interconnect-express)总线协议是一种高速串行计算机扩展总线标准,PCIe总线协议是一种端对端的互连协议,提供了高速传输带宽的解决方案。目前PCIe已经发展到第四代PCIe4.0,每一代的发展,最明显的特征就是速率翻倍;Aurora协议是赛灵思公司提供的一个开放免费的链路层协议,可以用来进行点到点的串行数据传输,具有实现高性能数据传输系统的高效率、简单易用的特点;在FPGA芯片上包含可编程逻辑(Programmable Logic,PL)端、处理器系统(Processing System,PS)端以及块随机存取存储器(Block Random Access Memory,BRAM),作为Zynq芯片的PL端的随机存取存储器,可以配置为双口RAM,用于实现Zynq芯片中PS端到PL端的数据交互和共享,类似为Linux系统中的内存共享,也就是将数据写入共同可访问的数据空间,PS端和PL端各自访问来达到信息交流的目的,BRAM的A端口被指定为写端口,BRAM的B端口被指定为读端口。

结合图1所示,本公开实施例提供一种用于FPGA的装置,包括:

上位机101;

Zynq芯片102,被配置为与所述上位机之间建立基于PCIe总线协议的第一程序加载通道;

FPGA芯片103,被配置为与所述Zynq芯片之间建立基于PCIe总线协议的第二程序加载通道;

所述上位机101通过所述第一程序加载通道将待加载程序文件发送至所述Zynq芯片102,所述Zynq芯片102通过所述第二程序加载通道将所述待加载程序文件发送至所述FPGA芯片103,以使所述FPGA芯片103对所述待加载程序文件进行加载。

在本申请的实施例中,所述上位机101通过基于PCIe总线协议建立的第一程序加载通道,向所述Zynq芯片102烧写配置程序,以使所述FPGA芯片103与所述Zynq芯片102之间建立基于PCIe总线协议的第二程序加载通道。进一步地,所述上位机将待加载程序文件通过第一程序加载通道传输到Zynq芯片102中,所述Zynq芯片102通过第二程序加载将所述待加载程序文件发送至所述FPGA芯片103,从而将所述Zynq芯片102作为数据交换的中转处以控制FPGA芯片103的待加载程序文件烧写与信息反馈。

可选地,所述嵌入式板卡可以为基于英特尔X86构建的计算机平台。

可选地,所述FPGA芯片可以是XC7VX690T系列的可编程逻辑器件芯片,例如XC7VX690T-2FFG1926。

可选地,所述Zynq芯片可以是XC7Z045系列的可编程逻辑器件芯片,例如XC7Z045-2FFG676E。

可选地,所述第一程序加载通道和第二程序加载通道,为基于PCIe总线协议的单向传输的程序烧写通道。

本申请通过在上位机、Zynq芯片和FPGA芯片之间分别建立基于PCIe总线协议的第一程序加载通道和第二程序加载通道,以所述Zynq芯片作为数据交换的中转处以控制FPGA芯片的待加载程序文件的烧写与信息反馈,从而基于PCIe总线协议实现了FPGA程序文件的高效快速加载,并且加载过程中不需要重新加载系统或者重新上电,同时也不会影响其他器件的工作,实现了真正意义上的对FPGA程序文件的动态加载,还可以实现上位机和已加载完成的FPGA芯片之间的双向数据传输,保证了硬件结构功能的完整性和多样性。

可选地,所述Zynq芯片,还被配置为:

与所述上位机之间建立基于PCIe总线协议的第一数据传输通道,以使所述上位机与所述Zynq芯片之间通过所述第一数据传输通道进行数据传输。

可选地,所述FPGA芯片,还被配置为:

与所述Zynq芯片之间建立基于Aurora协议的第二数据传输通道,以使所述FPGA芯片与所述Zynq芯片之间通过所述第二数据传输通道进行数据传输。

在本申请的实施例中,所述第一数据传输通道和第二数据传输通道为双向传输的数据传输通道,与此同时,所述Zynq芯片可以根据所述上位机选择的不同种类的配置程序文件,从而调整所述第二数据传输通道的数据传输模式,其中,所述数据传输模式包括全双工模式、单工模式的单向发送模式或单工模式的单向接收模式,并且也可以对数据速率、用户接口模式以及是否加入用户流控制信号等参数进行选择和控制。

这样,能更好地通过Zynq芯片对FPGA芯片进行配置和程序加载的选择,在保证了快速传输的前提下,实现了用户对FPGA芯片的个性化调整。

可选地,结合图2所示,所述Zynq芯片包括:

可编程逻辑模块201,被配置为通过所述第一程序加载通道和第一数据传输通道与所述上位机通信连接,并通过第二程序加载通道和所述第二数据传输通道与所述FPGA芯片通信连接;

处理器系统模块202,被配置为对所述FPGA芯片和外接设备进行配置;

数据缓冲模块203,被配置为分别与所述可编程逻辑模块和所述处理器系统模块通信连接。

在本申请的实施例中,所述可编程逻辑模块201即为所述Zynq芯片的PL端,所述处理器系统模块202即为所述Zynq芯片的PS端,所述数据缓冲模块203即为所述Zynq芯片的PL端的BRAM,其中,所述处理器系统模块202负责对FPGA芯片、数字信号处理芯片以及外接设备(例如时钟分配器和时钟芯片等)进行配置、初始化以及复位,所述可编程逻辑模块201负责Zynq芯片与上位机之间的第一数据传输通道的接口以及第一程序加载通道的接口,同时也负责Zynq芯片与FPGA芯片之间的第二数据传输通道的接口以及第二程序加载通道的接口。并且FPGA芯片的DONE引脚与Zynq芯片的DONE引脚互相接通,以作为加载信号的反馈传输路径。

在实际应用中,所述上位机配置有嵌入式板卡以及支持PCIe总线协议的机箱,所述Zynq芯片和FPGA芯片通过印制电路板(Printed Circuit Board,PCB)装入机箱中,机箱有电源线连接。这样,能更好地实现软件无线平台的集成化和一体化,减少装置的占用空间,便于在各种场合下进行部署。

结合图3所示,本公开实施例提供一种用于FPGA程序动态加载的方法,包括:

步骤301:上位机通过第一程序加载通道向Zynq芯片发送配置程序文件,以使所述Zynq芯片与FPGA芯片之间建立基于PCIe总线协议的第二程序加载通道,并且所述Zynq芯片在配置完成后向所述上位机发送表示配置完毕的数字信号。

步骤302:上位机通过第一程序加载通道向Zynq芯片发送程序加载指令,并通过第一程序加载通道将待加载程序文件发送至所述Zynq芯片。

步骤303:所述Zynq芯片根据所述程序加载指令接收所述待加载程序文件,并通过第二程序加载通道将所述待加载程序文件发送至FPGA芯片。

步骤304:所述FPGA芯片通过第二程序加载通道接收并对所述待加载程序文件进行加载,并将加载完毕后生成的加载完毕信息通过DONE引脚发送至所述Zynq芯片,所述Zynq芯片将所述加载完毕信息通过PCIe总线协议的基地址寄存器发送至所述上位机。

在本申请的实施例中,所述上位机通过第一程序加载通道向Zynq芯片发送配置程序文件,用于建立Zynq芯片与FPGA芯片的第二数据传输通道以及第二程序加载通道,所述FPGA芯片将加载完毕后生成的1位比特数字信号通过DONE引脚发送至所述Zynq芯片,所述Zynq芯片将所述1位比特数字信号通过PCIe总线协议的基地址寄存器发送至所述上位机。

所述上位机基于PCIe总线协议的第一程序加载通道将待加载程序文件以.bin文件的形式传输到所述Zynq芯片中,同时,所述上位机通过基于PCIe总线协议的第一数据传输通道,向Zynq芯片发送程序加载指令,在所述Zynq芯片接收到程序加载指令后,将所述待加载程序文件以.bin文件的形式,通过基于PCIe总线协议的第二程序加载通道传输至待加载的FPGA芯片,以使所述FPGA芯片对所述待加载程序文件进行加载,在加载完成后,所述FPGA芯片可以通过基于Aurora协议的第二数据传输通道,向所述Zynq芯片传输目标程序运行过程中用户所需观察或者显示的数据,或者接收所述Zynq芯片从上位机下传的数据,与之相对应对的,上位机也可以通过基于PCIe总线协议的第一数据传输通道将需要传输给FPGA芯片的数据先传输给Zynq芯片,并通过所述第一数据传输通道接收在Zynq芯片所存储的从FPGA芯片发送过来的数据。

采用本公开实施例提供的用于FPGA程序动态加载的方法,通过PCIe总线协议进行程序文件的传输和配置,并通过Zynq芯片作为程序加载的中转处,以控制所述上位机向所述FPGA芯片的程序动态加载,从而克服了现有FPGA芯片需要重新加载系统或者重新上电的程序加载方式,加载过程中不再会影响平台中同时工作的其他器件,实现了真正意义上的对FPGA的程序动态加载,并且人机交互更加简便明了,极大提升了平台的工作效率。

可选地,所述上位机通过第一程序加载通道向Zynq芯片发送程序加载指令,并通过第一程序加载通道将待加载程序文件发送至所述Zynq芯片,包括:

步骤3011:上位机通过第一程序加载通道向Zynq芯片发送程序加载指令。

步骤3012:Zynq芯片基于PCIe总线协议,通过第一程序加载通道读取二进制格式的待加载程序文件。

步骤3013:所述Zynq芯片通过两个数据缓冲模块以乒乓操作的方式,对所述待加载程序文件进行缓存和抽取。

在本申请的实施例中,结合图2所示,上位机通过基于PCIe总线协议的第一程序加载通道与Zynq芯片的PL端相连接,所述Zynq芯片生成两个块存储器发生器(Block MemoryGenerator,BMG)与两个AXI(Advanced eXtensible Interface)总线协议的BRAM控制器,每个BRAM控制器通过S_AXI引脚与所述Zynq芯片的PS端相连接,每个BRAM控制器通过BRAM_PORTA端口与所述Zynq芯片的BRAM的A端口相连接,所述BRAM的B端口设置为与所述Zynq芯片的PL端中的配置程序连接。

在生成随机存取存储器(Random Access Memory,RAM)环境之后,所述Zynq芯片通过基于PCIe总线协议的第一程序加载通道,从上位机读取待加载程序文件,并通过乒乓方式从两个随机存取存储器中存取。其中,整体的握手操作表述如下:在RAM首地址,上位机通过第一程序加载通道写入0x00000000,表示写入了RAM数据完毕;所述Zynq芯片的PL端写入0xffffffff,表示读取RAM数据完毕。

结合图4所示,上述流程具体包括以下步骤:

步骤401:Zynq芯片的PL端在RAM1首地址写入全f,表示准备好接收配置数据。

步骤402:上位机通过第一程序加载通道读取该RAM1首地址数据为全f后,将配置数据的8188字节数据写入RAM1,写完后将RAM1首地址数据写为全0。

步骤403:当Zynq芯片的PL端检测到RAM1首地址数据为0时,读取RAM1数据,并将RAM2的首地址数据写为全f。

步骤404:当上位机通过第一程序加载通道检测到RAM2的首地址数据为全f后,读取配置数据8188字节写入RAM2,写完后将RAM2首地址数据置为0。

步骤405:Zynq芯片的PL端读取RAM2中的数据,并将RAM1首地址数据置为全f。

步骤406:重复上述步骤,直到Zynq芯片的PL端将RAM的全部数据读写完毕。

其中,PCIe总线协议写入内存数据的过程为:大约每隔30个时钟周期一次性写入32bit,所设置的PCIe总线协议写入数据时钟为100MHz,Zynq芯片的PL端读取数据时钟为50MHz。

这样,能更好地在实现数据高速传输的前提下,可靠且稳定地保证Zynq芯片将待加载程序文件全部读取完毕。

可选地,结合图5所示,所述FPGA芯片通过第二程序加载通道接收并对所述待加载程序文件进行加载,包括:

步骤501:将所述FPGA芯片上电或配置复位,以使所述FPGA芯片启动配置程序。

步骤502:对所述FPGA芯片进行初始化。

步骤503:在初始化完成后,使所述FPGA芯片获取待加载程序文件并为所述FPGA芯片配置时钟信号。

步骤504:在所述待加载程序文件烧写完之后,判断所述FPGA芯片的INIT_B引脚是否为高电平;若是,则执行步骤505;若否,则表示所述待加载程序文件的配置数据加载错误并可以选择重新配置FPGA芯片

步骤505:启动条件补偿并检测所述FPGA芯片的DONE引脚是否为高电平。若是,则确定所述待加载程序文件加载完毕并可以选择重新配置FPGA芯片;若否,则表示所述待加载程序文件加载超时并可以选择重新配置FPGA芯片。

在本申请的实施例中,结合图6所示,所述FPGA芯片启动配置程序,

将所述FPGA芯片的PROGRAM_B引脚和INIT_B引脚配置为低电平,以使FPGA芯片初始化,当所述FPGA芯片的INIT_B引脚变化为高电平时,通过FPGA芯片的din引脚获取待加载程序文件,并配置时钟信号至所述FPGA芯片的CCLK引脚,在待加载程序文件烧写完之后进一步判断所述FPGA芯片的INIT_B引脚是否为高电平;若是,则表示所述待加载程序文件的配置数据未完整写入或接收数据时未检测到同步头,此时可以启动特殊条件补偿,并检测所述FPGA芯片的DONE引脚为高电平还是低电平,若DONE引脚为高电平则确定所述待加载程序文件加载完毕并可以选择重新配置FPGA芯片,若DONE引脚为低电平则表示所述待加载程序文件加载超时并可以选择重新配置FPGA芯片;若否,则表示所述待加载程序文件的配置数据加载错误并可以选择重新配置FPGA芯片。

这样,能更好地判断出所述FPGA芯片是否将所述待加载程序文件加载完成,并使得用户能够在加载失败或加载超时的情况下,及时采取相应弥补措施。

可选地,结合图7所示,将加载完毕后生成的加载完毕信息通过DONE引脚发送至所述Zynq芯片,所述Zynq芯片将所述加载完毕信息通过PCIe总线协议的基地址寄存器发送至所述上位机,包括:

步骤701:所述FPGA芯片向所述Zynq芯片发送表示加载完毕的数字信号。

步骤702:所述Zynq芯片基于PCIe总线协议的基地址寄存器将所述数字信号发送至所述上位机。

步骤703:所述上位机读取所述数字信号并显示所述FPGA芯片是否加载完毕。

在本申请的实施例中,所述FPGA芯片将所述待加载程序文件加载完毕后,通过FPGA芯片的DONE引脚向所述Zynq芯片发送1位比特数字信号表示加载结束,所述Zynq芯片通过PCIe总线协议的基地址寄存器将所述1位比特数字信号上报给上位机显示,所述上位机的X86地址为1100000000001,读取值为F则表示所述待加载程序文件烧写成功,为0则表示所述待加载程序文件烧写失败。

这样,通过1位比特数字信号从所述FPGA芯片经由Zynq芯片依次流转至上位机,使得上位机能够确认弥补程序文件是否加载成功,从而能更好地实现用户以平台的交互。

结合图8所示,本公开实施例提供一种用于FPGA数据传输的方法,包括:

步骤801:上位机通过第一数据传输通道向Zynq芯片发送待处理数据。

步骤802:所述Zynq芯片通过第二数据传输通道向FPGA芯片发送所述待处理数据,以使所述FPGA芯片对所述待处理数据进行处理。

步骤803:所述FPGA芯片将处理过程中需要观察或者显示的处理过程数据和/或处理结果数据,通过所述第二数据传输通道发送至所述Zynq芯片。

步骤804:所述Zynq芯片接收并将所述处理过程数据和/或处理结果数据通过第一数据传输通道发送至所述上位机,以使所述上位机对所述处理过程数据和/或处理结果数据进行展示。

在本申请的实施例中,完成待加载程序文件加载的FPGA芯片能够执行所述待加载程序文件对应的目标算法,以对来自于所述上位机的待处理数据进行处理,具体而言,上位机可以通过第一数据传输通道向Zynq芯片发送待处理数据,或者通过第一数据传输通道从Zynq芯片接收从FPGA芯片发送过来的处理过程数据和/或处理结果数据,以使用户通过上位机对所述处理过程数据和/或处理结果数据进行观察,同时,所述Zynq芯片可以通过第二数据传输通道向FPGA芯片传输所述待处理数据,或者通过第二数据传输通道从所述FPGA芯片处接受所述处理过程数据和/或处理结果数据。

采用本公开实施例提供的用于FPGA数据传输的方法,在完成上位机对FPGA程序动态加载的同时,保证了数据传输链路的连续性,可以实现上位机和已加载完成的FPGA芯片之间的双向数据传输,从而保证了硬件结构功能的完整性和多样性。

本公开实施例提供一种软件无线电平台,包括如本申请所述的用于FPGA的装置。

本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于FPGA程序动态加载的方法。

本公开实施例提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于FPGA程序动态加载的方法。

上述的存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。

本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个用于FPGA程序动态加载”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。

本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号