一种基于DSP的快速动态配置FPGA的装置及方法与流程

文档序号:16531944发布日期:2019-01-05 10:49阅读:189来源:国知局
一种基于DSP的快速动态配置FPGA的装置及方法与流程

本发明属于通信技术领域,具体涉及一种基于dsp的快速动态配置fpga的装置及方法。



背景技术:

现场可编程逻辑门阵列(fpga)以其高灵活性、丰富的逻辑和i/o资源在电子、通信领域应用越来越广泛。目前主流的fpga基本都基于sram工艺,掉电后fpga会失去所有逻辑关系,所以一般都配备一个eeprom芯片用于存放fpga的配置数据,每次上电后对fpga重新进行加载。这种加载方式不仅增加了系统成本,而且使系统灵活度大打折扣,配置过程中容易因环境因素导致配置失败。

随着通信系统的复杂化和功能多样化,很多系统需要在不同时刻实现不同的功能。例如,需要在不开机箱的情况下实现fpga程序快速的加载,这在现场进行程序的升级和生产调试中显得尤为重要。



技术实现要素:

针对上述问题,本发明提供一种基于dsp/cpu快速动态配置fpga的装置方法,可在不开机箱的情况下对平台上多块fpga进行动态配置,具有较好的灵活性和可靠性。

本发明首先提供了一种基于dsp的快速动态配置fpga的装置,包括通过vpx总线连接的多个板卡,其中,任一板卡上包括dsp处理器、cpld芯片以及fpga芯片,其中,dsp处理器通过以太网接口连接上位机,cpld芯片的一端通过emif接口连接所述dsp处理器,cpld芯片的另一端通过spi接口连接fpga芯片;

对fpga芯片的配置文件首先通过所述上位机经dsp处理器传送给cpld芯片,再由所述cpld芯片将并行传输的fpga配置文件转换为从串配置的spi时序,并通过spi接口发送给所述fpga芯片。

优选的是,所述cpld芯片进一步包括:

emif配置数据接收模块,用于接收所述dsp处理器发送来的fpga配置文件,该fpga配置文件通过并行模式传输;

fpga配置模块,用于接收所述emif配置数据接收模块发来的fpga配置文件,并转换为对fpga进行从串配置的spi时序。

优选的是,所述fpga配置模块还包括:检测及反馈单元,用于检测所述fpga配置是否完成,并告知所述emif配置数据接收模块,由所述fpga配置模块从新接收所述emif配置数据接收模块发来的并行数据并处理。

本发明另一方面提供了一种基于dsp的快速动态配置fpga的方法,主要包括:

步骤一、系统上电及硬件初始化;

步骤二、上位机向dsp处理器传输fpga配置文件;

步骤三、dsp处理器通过emif接口将所述fpga配置文件传送给cpld芯片;

步骤四、由cpld芯片将接收到的fpga配置文件转换为从串配置的spi时序;

步骤五、由cpld芯片将fpga配置文件写入待配置的fpga芯片中。

优选的是,所述步骤二执行之前,上位机先行向dsp处理器传输所述fpga配置文件的长度及片选信号,并在步骤二执行之后根据所述长度信息对所述fpga配置文件进行验证,并根据所述片选信号,确定之后待配置fpga芯片的选取。

优选的是,所述步骤四进一步包括:

步骤41、接收由dsp处理器以并行模式发送过来的fpga配置文件;

步骤42、按照对fpga进行从串配置的spi时序将该并行模式传输的数据转换为串行模式传输的数据。

优选的是,所述步骤五还包括:

步骤51、判断是否完成将fpga配置文件写入待配置的fpga芯片;

步骤52、若未完成写入操作,则返回步骤四。

本发明的优点主要体现在:

1)节约系统成本、降低功耗、减小系统体积对于对成本和体积敏感的系统非常适用;

2)适用于某些对安全性要求较高的领域,fpga的程序文件必须进行加密保存,上电解密后动态加载;

3)由于可以在系统不开机箱的情况下实现快速的程序加载,应用灵活,在现场进行程序的升级和生产调试中显得尤为重要。

4)不开箱的情况下对多板卡fpga进行动态在线配置,具有较好的灵活性,在需要动态改变fpga配置的软件无线电平台等应用场合具有较好的应用前景。

附图说明

图1为按照本发明基于dsp/cpu快速动态配置fpga的装置的一优选实施例的装置连接示意图。

图2为按照本发明图1所示实施例的cpld芯片结构示意图。

图3为按照本发明基于dsp/cpu快速动态配置fpga的方法的一优选实施例的流程图。

图4为按照本发明图1所示实施例的cpld芯片与fpga芯片连接示意图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。

为解决在不开机箱的情况下实现fpga程序快速的加载,本发明提供一种基于dsp/cpu快速动态配置fpga的装置及方法,下面结合附图对本发明的具体实施方式做详细说明。

首先参考图1,本发明提供了一种基于dsp/cpu快速动态配置fpga的装置,该装置包括通过vpx总线连接的多个板卡,其中,任一板卡上包括dsp处理器、cpld芯片以及fpga芯片,其中,dsp处理器通过以太网接口连接上位机,cpld芯片的一端通过emif接口连接所述dsp处理器,cpld芯片的另一端通过spi接口连接fpga芯片。

vpx主控板作为平台的管理控制中心,采用dsp/cpu作为核心处理器,负责对各功能板的fpga进行动态配置。主控板采用flash存储各板卡临时的配置数据,并可通过串口和以太网口与平台外部的pc机相连。如需升级配置数据,可从外部pc机通过以太网进行下载。主控板与各功能板(板卡)通过vpx总线形成星型互连,数据传输协议采用较易实现的spi总线协议。由于cpld具有接口实现容易、断电不丢失配置数据等特点,因此各功能板采用cpld实现spi接口电路以及对fpga进行动态配置的控制逻辑。

需要说明的是,通常情况下,对任一板卡来说,其上设置有一个dsp处理器、一个cpld芯片以及多个fpga芯片,但是对该fpga芯片的配置却是通过其他辅助装置来写入的,具有连接繁琐等缺陷,为此,本发明通过对上述各模块连接关系重新设定,以到达不通过其他辅助装置即可完成配置文件(例如bin文件)的写入的目的。经过上述连接,对fpga芯片的配置文件首先通过所述上位机经dsp处理器传送给cpld芯片,再由所述cpld芯片将并行传输的fpga配置文件转换为从串配置的spi时序,并通过spi接口发送给所述fpga芯片。

如图2所示,所述cpld芯片进一步包括emif配置数据接收模块及fpga配置模块,其中,emif配置数据接收模块,用于接收所述dsp处理器发送来的fpga配置文件,该fpga配置文件通过并行模式传输;fpga配置模块,用于接收所述emif配置数据接收模块发来的fpga配置文件,并转换为对fpga进行从串配置的spi时序,fpga配置模块在实现对fpga进行从串配置的spi时序后,将配置文件写入待配置的fpga中。

另一方面,上述fpga配置模块还包括:检测及反馈单元,用于检测所述fpga配置是否完成,并告知所述emif配置数据接收模块,由所述fpga配置模块从新接收所述emif配置数据接收模块发来的并行数据并处理,该检测及反馈单元通过高低电平实现,首先检测过程是根据fpga芯片的两个电平done和init_b的高低来反映的,其次,反馈过程是fpga配置模块采用cfg_finish及error两个针脚的电平高低来表示fpga芯片的电平done和init_b的高低,由此,fpga配置过程是否完成就传送到了emif配置数据接收模块,由于emif配置数据接收模块具有存储数据稳定等特点,可以重新向fpga芯片发送数据。

参考图3,本发明还提供了一种基于dsp的快速动态配置fpga的方法,主要包括:

步骤一、系统上电及硬件初始化;

步骤二、上位机向dsp处理器传输fpga配置文件;

步骤三、dsp处理器通过emif接口将所述fpga配置文件传送给cpld芯片;

步骤四、由cpld芯片将接收到的fpga配置文件转换为从串配置的spi时序;

步骤五、由cpld芯片将fpga配置文件写入待配置的fpga芯片中。

本实施例中,参考图3,所述步骤二执行之前,上位机先行向dsp处理器传输所述fpga配置文件的长度及片选信号,并在步骤二执行之后根据所述长度信息对所述fpga配置文件进行验证,并根据所述片选信号,确定之后待配置fpga芯片的选取。在验证通过后,dsp处理器开始通过emif接口向cpld传送配置文件与使能信号,同时cpld接收配置数据并对fpga进行配置。

本实施例中,所述步骤四进一步包括:

步骤41、接收由dsp处理器以并行模式发送过来的fpga配置文件;

步骤42、按照对fpga进行从串配置的spi时序将该并行模式传输的数据转换为串行模式传输的数据。

本实施例中,所述步骤五还包括:

步骤51、判断是否完成将fpga配置文件写入待配置的fpga芯片;

步骤52、若未完成写入操作,则返回步骤四。

具体的,首先cpld通过emif接口接收到dsp/cpu发送的一帧配置数据,配置模块再将并行的配置数据转换为串行的配置数据,并通过spi接口按照fpga的配置时序发送给fpga。发送完毕后,fpga配置模块开始接收下一帧数据,直至配置数据全部接收完成。配置数据接收完后,结合图2及图4,fpga配置模块将检测done和init_b。若检测到done为高,在cclk保持8个周期后配置过程结束。同时,cfg_finish将被拉高,通知dsp/cpu配置成功。若检测到init_b为低,则error将被拉高,通知dsp/cpu配置失败。参考图4,左上侧的cpld芯片及右侧的fpga芯片及其之间的连接关系涵盖在本发明的技术方案中,而左下侧的jtag接口与fpga芯片的连接为现有技术,由于通过jtag接口向fpga芯片烧录配置文件时,需要打开机箱将该fpga芯片通过jtag接口连接仿真机,并且在烧录不同的配置文件时,需要重复上电、断电等,过程繁琐,而本发明基于现有的板卡上集成的部件,通过cpld向fpga写入配置文件可以不受文件数量的限制,在外场调试中,不必因为多次烧录配置文件而重复断电。

从图4中可以看出,cpld芯片主要通过五个针脚连接fpga,分别包括时钟信号clock、写入数据的serial_out信号、控制开关的program_b信号、完成信号done以及烧录失败信号init_b。其余复位等信号输入常规设计,fpga与jtag接口连接的针脚属于现有技术,且不属于本发明内容,不再赘述。

可以理解的是,完成信号done以及烧录失败信号init_b是由fpga反向传输给cpld的,结合图2,由fpga配置模块指向emif配置数据接收模块的error及cfg_finish分别用于响应上述init_b及done信号。

本发明的优点主要体现在:

1)节约系统成本、降低功耗、减小系统体积对于对成本和体积敏感的系统非常适用;

2)适用于某些对安全性要求较高的领域,fpga的程序文件必须进行加密保存,上电解密后动态加载;

3)由于可以在系统不开机箱的情况下实现快速的程序加载,应用灵活,在现场进行程序的升级和生产调试中显得尤为重要。

4)不开箱的情况下对多板卡fpga进行动态在线配置,具有较好的灵活性,在需要动态改变fpga配置的软件无线电平台等应用场合具有较好的应用前景。

最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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