实现多个fpga映像文件串行下载的系统及其相关计算机的制作方法

文档序号:6649746阅读:151来源:国知局
专利名称:实现多个fpga映像文件串行下载的系统及其相关计算机的制作方法
技术领域
本发明涉及一种多个FPGA映像文件串行下载的方法及其实现装置。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)是一种逻辑电路设计技术,其特点是具有用户可编程的特性。利用FPGA,电子系统设计工程师可以在实验室中设计出专用IC(集成电路),实现系统的集成,从而大大缩短了产品开发时间,降低开发成本。此外FPGA还具有静态可重复编程或在线动态重构特性,使硬件的功能可像软件一样通过编程来修改,不仅是设计修改和产品升级变得十分方便,而且极大地提供了电子系统的灵活性和通用能力。
由于FPGA现场可编程的灵活性,在目前通信系统中被广泛应用,有的电路板上甚至设置数十个FPGA。一般在电路板上电后,系统启动程序负责从非易失媒质,例如CF卡(非易失存储卡)上读取FPGA映像文件,下载到FPGA中,然后,FPGA才能正常工作。
通常FPGA映像文件的下载都是利用GPIO(通用输入/输出)引脚。并行下载虽然速度快,是解决下载时间长的有效方法,但是并行下载实现复杂,而且在有些情况下,受到电路板布线布局的影响,例如难以将数十根引线连接到下载控制芯片中,或者FPGA芯片本身不支持并行下载,所以串行下载成为首选。
串行下载FPGA映像文件,只需多个FPGA映像文件挨个轮流串行下载即可,实现简单,在当前的设计中应用比较广泛。
但是串行下载的缺陷是速度较慢,主要瓶颈是在串行总线上,假设电路板上有n个FPGA,下载一个FPGA映像文件需要按照下载流程对串行总线操作一遍,耗时t秒,下载n个FPGA映像就需要按照下载流程对串行总线操作n遍,耗时nt秒。这样,严重影响了系统的启动速度。

发明内容
本发明旨在提供一种多个FPGA映像文件串行下载的方法及其实现装置,以简捷的方式,避免多个FPGA映像文件串行下载耗时的缺陷,从而节省系统启动时间,满足电信设备等高可靠性要求。
本发明所提供的一种实现多个FPGA映像文件串行下载的系统,包括一个CPU和若干个FPGA,其特征在于每个FPGA通过n根信号线与所述CPU相连,所述n根信号线为用于串行下载一FPGA映像文件所需要占用各类型的信号线;所述CPU按信号类型分配n个寄存器,且所有FPGA的同类型信号依次排列在相应寄存器的各数位上;又,所述CPU包含一发送/接收处理单元,用于发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据,然后写到相应信号类型的寄存器的各数据位中;同时,用于读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,分离后即可获得下载后的各FPGA真实数据。
在上述的系统中,它还包括一连接所述CPU和若干个FPGA之间的用于扩展CPU GPIO引脚的CPLD。
在上述的系统中,n根信号线包括时钟信号线、数据信号线、配置信号线和状态信号线;所述寄存器对应的包括时钟寄存器、状态寄存器、配置寄存器和数据寄存器。
在上述的系统中,时钟信号线为所有FPGA共享。
本发明还提供了一种计算机,包括n个寄存器,其特征在于它还包括一与所述n个寄存器相连的发送/接收处理单元,其中所述n个寄存器是按其串行下载一FPGA映像文件所需要占用各类型信号线的信号类型进行分配的;发送/接收处理单元,用于发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据后,写到相应信号类型的寄存器的各数据位中;读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,分离后即可获得下载后的各FPGA真实数据。
在上述的计算机中,寄存器包括时钟寄存器、状态寄存器、配置寄存器和数据寄存器。
在上述的计算机中,发送/接收处理单元写入时钟寄存器中的数据为所有FPGA共享。
本发明再提供了一种实现多个FPGA映像文件串行下载的计算机处理方法,包括分配步骤将CPU按串行下载一FPGA映像文件所需要占用各类型信号线的信号类型分配n个寄存器,且所有FPGA的同类型信号依次排列在相应寄存器的各数位上;发送步骤发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据,然后写到相应信号类型的寄存器的各数据位中;以及,读取步骤用于读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,进行分离,即可获得下载后的各FPGA真实数据。
在上述的计算机处理方法中,寄存器包括时钟寄存器、状态寄存器、配置寄存器和数据寄存器。
在上述的计算机处理方法中,写入时钟寄存器中的数据为所有FPGA共享。
由于采用了上述的技术解决方案,通过合理的硬件设计,优化分配串行下载引脚,实现多个FPGA映像的同时串行下载,其时间与下载一个FPGA映像几乎相等。本发明解决了电路板上存在多个FPGA时,其映像文件串行下载的耗时问题,节省了系统(特别是电信设备等高可靠性设备)的启动时间。


图1是本发明实现多个FPGA映像文件串行下载的系统的示意图;图2是本发明中寄存器分配及连线示意图。
具体实施例方式
本发明源于的基本思想是串行下载慢的瓶颈是在串行总线上,而不是在CPU频率上,所以应该尽可能减少对串行总线的操作,并通过合理的寄存器分配及连线,完全可以同时下载n个FPGA映像,而只对串行总线操作一遍。
本发明系统中如果FPGA的数目较少,FPGA可以直接连接在CPU的GPIO引脚上;如果FPGA的数目较多,参加图1,CPU通过CPLD(复杂可编程逻辑器件)扩展GPIO引脚,FPGA可以连接在CPLD上。
如图1~2所示,本发明,即实现多个FPGA映像文件串行下载的系统,包括一个CPU和若干个FPGA。
每个FPGA通过n根信号线与CPLD相连,n根信号线为用于串行下载一FPGA映像文件所需要占用各类型的信号线。通常一个FPGA映像文件的串行下载需要占用4,5根线,下载流程都大同小异。
CPLD按信号类型分配n个寄存器,且所有FPGA的同类型信号依次排列在相应寄存器的各数位上。
以Altera公司的Cyclone系列FPGA为例来阐明本发明,系统中含有扩展CPLD。
串行下载一FPGA映像文件需要4根信号线,分别是i)CLK时钟信号;ii) Data数据信号;iii) Config配置信号;iv) Status状态信号。
每个FPGA通过这4根信号线与CPLD相连,CPU就是通过这4根信号线将FPGA映像文件下载到FPGA中。在CPLD中,每根信号线对应寄存器中的一位。
原则一寄存器按信号类型分配,不按FPGA分配。具体说,将所有FPGA的CLK信号安排在同一个寄存器中(其它3个信号相同处理),而不是将同一个FPGA的4个信号线安排在同一个寄存器中。这便于CPU读写一个寄存器,就能实现对所有FPGA的操作。
如图2所示,按照信号类型分配了4个寄存器i)CLK Reg.时钟寄存器;ii) Status Reg.状态寄存器;iii) Config Reg.配置寄存器;iv) Data Reg.数据寄存器。
每个寄存器的每一位管理一根信号线。时钟信号线共享,所有FPGA映像是同步下载的。
原则二尽量少地操作串行总线,尽可能地利用CPU资源。
CPU包含一发送/接收处理单元,发送数据时,CPU首先将各个FPGA映像文件的相关数据位组织成一个数据,然后写到数据寄存器中。例如,发送第m个数据,假设有5个FPGA(n=5),FPGA 1映像文件的第m个数据是1,FPGA 2映像文件的第m个数据是0,FPGA 3映像文件的第m个数据是1,FPGA 4映像文件的第m个数据是1,FPGA 5映像文件的第m个数据是0,那么CPU就将二进制数10110写到数据寄存器中,各个FPGA对应的数据线上会同时出现各自对应的数据位。因为CPU的频率远远高于串行总线的频率,所以相比之下,CPU组织数据的时间几乎可以忽略不计。
发送时钟信号时,由于时钟信号共享,各个FPGA是同步的,即发送“1”,那么CPU将时钟寄存器置“1”,同时发送出去,发送“0”同理。
读取状态信号时,CPU将状态寄存器的所有位一起读回来,然后加以分析。
因为所有FPGA是同时下载的,所以状态寄存器的每一位反映的都是真实数据,而不象逐个下载FPGA映像时,只有下载的那个FPGA所对应的位反映的是真实数据。
Config寄存器的操作方法与状态寄存器相同。
综上所述,本发明通过合理硬件设计,优化分配串行下载引脚,实现多个FPGA映像文件的同时串行下载,其时间与下载一个FPGA映像几乎相等。
以上实施例仅供说明本发明之用,而非对本发明保护范围的限制。有关本技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以作出各种变换或变型,而所有等同的技术方案也应归属于本发明保护的范畴之内,由各权利要求所限定。
权利要求
1.一种实现多个FPGA映像文件串行下载的系统,包括一个CPU和若干个FPGA,其特征在于每个FPGA通过n根信号线与所述CPU相连,所述n根信号线为用于串行下载一FPGA映像文件所需要占用各类型的信号线;所述CPU按信号类型分配n个寄存器,且所有FPGA的同类型信号依次排列在相应寄存器的各数位上;又,所述CPU包含一发送/接收处理单元,用于发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据,然后写到相应信号类型的寄存器的各数据位中;同时,用于读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,分离后即可获得下载后的各FPGA真实数据。
2.根据权利要求1所述的系统,其特征在于它还包括一连接所述CPU和若干个FPGA之间的用于扩展CPU GPIO引脚的CPLD。
3.根据权利要求1或2所述的系统,其特征在于所述n根信号线包括时钟信号线、数据信号线、配置信号线和状态信号线;所述寄存器对应的包括时钟寄存器、状态寄存器、配置寄存器和数据寄存器。
4.根据权利要求3所述的系统,其特征在于所述时钟信号线为所有FPGA共享。
5.一种计算机,包括n个寄存器,其特征在于它还包括一与所述n个寄存器相连的发送/接收处理单元,其中所述n个寄存器是按其串行下载一FPGA映像文件所需要占用各类型信号线的信号类型进行分配的;发送/接收处理单元,用于发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据后,写到相应信号类型的寄存器的各数据位中;读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,分离后即可获得下载后的各FPGA真实数据。
6.根据权利要求5所述的计算机,其特征在于所述寄存器包括时钟寄存器、状态寄存器、配置寄存器和数据寄存器。
7.根据权利要求6所述的计算机,其特征在于所述发送/接收处理单元写入时钟寄存器中的数据为所有FPGA共享。
8.一种实现多个FPGA映像文件串行下载的计算机处理方法,包括分配步骤将CPU按串行下载一FPGA映像文件所需要占用各类型信号线的信号类型分配n个寄存器,且所有FPGA的同类型信号依次排列在相应寄存器的各数位上;发送步骤发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据,然后写到相应信号类型的寄存器的各数据位中;以及,读取步骤用于读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,进行分离,即可获得下载后的各FPGA真实数据。
9.根据权利要求8所述的计算机处理方法,其特征在于所述寄存器包括时钟寄存器、状态寄存器、配置寄存器和数据寄存器。
10.根据权利要求9所述的计算机,其特征在于所述写入时钟寄存器中的数据为所有FPGA共享。
全文摘要
一种实现多个FPGA映像文件串行下载的系统及其相关计算机,其系统包括一CPU和若干个FPGA,每个FPGA通过n根信号线与所述CPU相连,CPU按信号类型分配n个寄存器,且FPGA的同类型信号依次排列在相应寄存器的各数位上;CPU还包含一发送/接收处理单元,用于发送FPGA映像文件时,将各个FPGA映像文件的相同数位上的相关类型信号数据组成一个数据,然后写到相应信号类型的寄存器的各数据位中;同时,用于读取信号数据时,将相关信号类型寄存器中所有数据位一起读出,分离后即可获得下载后的各FPGA真实数据。本发明通过合理的硬件设计,优化分配串行下载引脚,实现多个FPGA映像的同时串行下载,其时间与下载一个FPGA映像几乎相等,从而节省了系统的启动时间。
文档编号G06F13/00GK1987835SQ200510111850
公开日2007年6月27日 申请日期2005年12月22日 优先权日2005年12月22日
发明者王江, 万亚飞, 詹振七, 谢伟 申请人:上海贝尔阿尔卡特股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1