一种FPGA多重远程配置系统及方法与流程

文档序号:20838589发布日期:2020-05-22 17:11阅读:748来源:国知局
一种FPGA多重远程配置系统及方法与流程

本发明属于通信领域,具体涉及fpga远程配置领域,特别涉及一种fpga多重远程配置系统及方法。



背景技术:

现代硬件程序设计规模越来越大,功能越来越复杂,当多个应用程序同时在一个硬件平台上实现时,各个程序的资源使用和数据通路可能会冲突,这增加了控制电路设计的复杂程度,给开发人员增加了工作量和开发难度。

近些年来fpga技术得到了飞速发展,其作为可编程资源广泛应用在大型复杂系统设计中。尽管fpga在资源集成度方面取得了可观的成果,但是在多模式的大型系统设计中,单片fpga资源远远不能够满足设计需求,有时可能需要多个芯片。然而fpga价格相对较高,这大大提高了设计成本,而且不易于产品维护和升级,由此出现了fpga加载技术,但是传统的加载配置采用spi接口以及flash等,配置速度比较慢,不能满足多种工作模式的需求。



技术实现要素:

本发明的目的在于提供一种具有成本低、配置速度快以及可靠性高等特点的fpga多重远程配置系统及方法。

实现本发明目的的技术解决方案为:一种fpga多重远程配置系统,包括远程配置模块、fpga主控模块、存储器模块、电源模块、时钟模块以及接口模块;

所述远程配置模块,用于接收上位机发来的bit流文件,并将其发送给fpga主控模块;

所述fpga主控模块,用于接收bit流文件并将其写入存储器模块,并在接收到fpga重配置指令后指定接收来自存储器模块的某一bit流文件实现重配置;

所述存储器模块,用于存储来自fpga主控模块的多个bit流文件并将其写入不同地址,在重配置时fpga主控模块从指定地址读出相应的bit流文件以配置fpga主控模块;

所述电源模块,用于为整个系统供电;

所述时钟模块,用于为fpga主控模块以及存储器模块提供相应的工作时钟;

所述接口模块,用于在线配置fpga主控模块,实现对存储器模块读写的控制。

基于上述fpga多重远程配置系统的配置方法,包括以下步骤:

步骤1,接口模块在线配置fpga主控模块,实现对存储器模块读写的控制;

步骤2,远程配置模块接收上位机发来的bit流文件,并将其发送给fpga主控模块;

步骤3,fpga主控模块接收bit流文件并将其写入存储器模块,存储器模块将bit流文件写入不同地址;

步骤4,fpga主控模块在接收到fpga重配置指令时,根据指定的bit流文件从存储器模块中的对应地址读取bit流文件以配置fpga主控模块。

本发明与现有技术相比,其显著优点为:1)通过多重配置,可以将多个程序根据需要分时加载到fpga中,可以解决可编程资源不足的问题,从而大大降低开发费用,也提高了编程资源的利用率,同时降低了系统设计的复杂性,增加了系统设计的灵活性,便于系统维护和升级;2)通过多重加载技术,用户可以根据需求选择加载不同的bit流文件,从而实现多模式功能;3)相比于常用的以spiflash作为bit流文件的存储器,qspiflash有着更大的存储空间和更快的读写速度,一片qspiflash中可以存放多个virtex-7系列fpga的bit流文件,且读写速度成倍增加,大大节约了fpga系统配置的时间;4)调用icape2核实现多重配置可以使fpga在不掉电的情况下实现重配置,且当重加载的bit流文件出现问题时,fpga会选择加载原有的bit流文件,这能保证系统永远处于工作状态,不会因为更新程序的问题导致死机。

下面结合附图对本发明作进一步详细描述。

附图说明

图1为本发明fpga多重远程配置系统的结构框图。

图2为本发明一个实施例中qspiflash实现多重配置硬件电路示意图。

图3为本发明一个实施例中qspiflash实现多重配置流程图。

图4为本发明一个实施例中qspiflash状态机指令流程图。

图5为本发明一个实施例中icap核状态机指令流程图。

具体实施方式

结合图1,本发明提出了一种fpga多重远程配置系统,包括远程配置模块、fpga主控模块、存储器模块、电源模块、时钟模块以及接口模块;

远程配置模块,用于接收上位机发来的bit流文件,并将其发送给fpga主控模块;

fpga主控模块,用于接收bit流文件并将其写入存储器模块,并在接收到fpga重配置指令后指定接收来自存储器模块的某一bit流文件实现重配置;

存储器模块,用于存储来自fpga主控模块的多个bit流文件并将其写入不同地址,在重配置时fpga主控模块从指定地址读出相应的bit流文件以配置fpga主控模块;

电源模块,用于为整个系统供电;

时钟模块,用于为fpga主控模块以及存储器模块提供相应的工作时钟;

接口模块,用于在线配置fpga主控模块,实现对存储器模块读写的控制。

进一步地,在其中一个实施例中,结合图3,远程配置模块与上位机之间通过千兆以太网进行通信。

进一步地,在其中一个实施例中,结合图3,远程配置模块采用dsp。

进一步地,在其中一个实施例中,结合图3,远程配置模块具体通过dsp的emif接口将bit流文件发送给fpga主控模块。

进一步地,在其中一个实施例中,存储器模块采用flash存储器。

进一步地,在其中一个实施例中,结合图3,flash存储器采用qspi接口。

进一步地,在其中一个实施例中,flash存储器采用qspiflash芯片。

进一步地,在其中一个实施例中,接口模块采用jtag接口。

作为一种具体示例,本发明的技术方案如下:

硬件设计:

多重配置的硬件主要包括fpga板卡和储存配置bit流文件的flash芯片。fpga芯片选择xilinx公司的virtex-7系列中的xc7vx485t-2ffg1761,这款芯片有专用的内部加载逻辑来实现多重配置。由于这款fpga芯片的bit文件大小为100mb左右,所以flash芯片选择micron公司的qspiflash芯片n25q256a,它的存储空间为256mb,足够存放2个bit流文件。具体的fpga和qspiflash的硬件连接如图2所示。

软件设计:

软件设计分为两部分,第一部分是编写qspiflash的读、写、擦除状态机程序,将fpga收到的bit流文件存储到qspiflash中。第二部分是编写fpga重载配置模块。

与spiflash不同的是,qspiflash四线模式共有四根信号线,它们全部可以用做输入输出来传输数据,所以传输同样大小的数据模块时,qspi四线模式的速度大约是spi模式的四倍(见下表1),但qspi四线模式使用也更复杂。除了spi的读、写、擦除等指令,qspi在进入四线模式前需要写一条进入4字节地址模式的指令,在结束所有指令后,需要写一条退出4字节地址模式的指令。这样的话,读、写指令所访问的地址必须是4字节。qspiflash的状态机指令流程如图4所示。

表1qspiflash和spiflash读、写、擦除等指令所需时间的比较

fpga多重配置需要调用icape2核,当满足触发条件后,采用状态机编码的方式对icape2核进行赋值配置如图5所示。

virtex-7系列fpga调用icape2核原语如下:

在调用了icape2核之后,verilog编码实现状态机。通过状态机发送iprog指令给icape2核,icape2核在接收到指令后可以根据指定的地址自动加载需要配置的bit流文件。状态机的第一个时钟周期将icape2核的rdwrb信号和csib信号置高,第二个周期将rdwrb信号置低,ce信号置高,第三个周期将rdwrb信号和csib信号都置低。接着在下面8个时钟周期按顺序发出指令队列中的控制命令。

其中,第五个控制命令warmbootstartaddressregister(wbstar)指定了满足触发条件的bit流文件在qspiflash中的起始地址,注意,wbstar被赋值的地址必须和即将配置的bit流文件在qspi中的物理地址相同。

控制命令全部发出后,fpga专用配置逻辑开始执行内部复位操作(jtag管脚和重载控制部分不进行复位),擦除系统上原有的程序,从qspiflash中wbstar指向的起始地址开始读取bit流文件,完成fpga的重配置。

基于上述fpga多重远程配置系统的配置方法,包括以下步骤:

步骤1,接口模块在线配置fpga主控模块,实现对存储器模块读写的控制;

步骤2,远程配置模块接收上位机发来的bit流文件,并将其发送给fpga主控模块;

步骤3,fpga主控模块接收bit流文件并将其写入存储器模块,存储器模块将bit流文件写入不同地址;

步骤4,fpga主控模块在接收到fpga重配置指令时,根据指定的bit流文件从存储器模块中的对应地址读取bit流文件以配置fpga主控模块。

综上,本发明解决了传统spi接口flash配置速度慢的问题,并通过多重配置方式实现了不同工作模式的需求,且大大减少了系统配置的时间,具有很强的实用性、通用性和可移植性。

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