支持多个现场可编程门阵列下载数据的方法及装置的制作方法

文档序号:6423049阅读:170来源:国知局
专利名称:支持多个现场可编程门阵列下载数据的方法及装置的制作方法
技术领域
本 发明涉及现场可编程门阵列FPGA技术领域,尤其涉及一种支持多个现场可编程门阵列下载数据的方法、装置及FPGA。
背景技术
随着现场可编程门阵列(FPGA)的大量应用,一个单板有多个FPGA变得越来越常见。其中,多个从FPGA通常采用串接的形式下载数据,以ALTERA stratix4系列的FPGA 为例,如图1所示,外部设备通过主设备的DCLK引脚向FPGAl提供工作时钟,通过DATAO向主设备FPGAl提供下载数据,主设备FPGAl下载完数据后,通过引脚nCEO向FPGA2的nCE 引脚输出低电平信号。FPGA2继续通过DCLK从外部设备获取工作时钟,通过引脚DATAO从外部设备获取下载数据,下载完数据后,通过引脚nCEO向后续FPGA的nCE引脚输出低电平信号,后续FPGA继续开始数据的下载。若有N个FPGA,N个FPGA下载完数据所需的时间是 FPGA 1下载完数据所需时间的N倍,非常耗时。为了缩短多个从设备FPGA下载数据所需的时间,现有的解决方案立足于提高从设备FGPA的下载速率,即提高多个从设备FPGA在串接形式下支持数据下载的最高时钟频率。但是基于实际的电路工作条件,电路的时钟频率不可能无限提高,且过高的时钟频率也会导致电路易受周遭电磁波的干扰。即便提高了电路的时钟频率,现有的多个从设备FPGA在串接形式下存在信号分叉点,致使带来信号完整性无法保证的问题。已有数据表明,在与源端匹配的50M时钟频率下,信号遇到分叉点,如果出现长走线就可能带来无法弥补的信号完整性问题。而图1中主设备和多个从设备FPGA共用时钟线和数据线,即时钟信号和数据信号从外部设备输出后均遇到了分叉点,且一个分叉点还可引出多个分支,在这种情况下信号的完整性很难保证。

发明内容
本发明提供了一种支持多个FPGA下载数据的方法、装置及FPGA,以解决在缩短多个从FPGA下载数据所需的时间的同时如何保证信号完整性的技术问题。为解决上述技术问题,本发明提供了一种支持多个FPGA下载数据的方法,包括 主FPGA以并行方式向η个从FPGA传输时钟信号和数据,η为大于1的整数。优选地,在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据的过程中, 所述主FPGA分别通过与各从FPGA间的专用时钟信号传输通道和专用数据传输通道向
所述η个从FPGA传输所述时钟信号和所述数据。优选地,所述方法还包括
所述主FPGA分别通过与各从FPGA间的专用状态指示信号传输通道从各从FPGA获得所述η个从FPGA的状态指示信号。优选地,在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据之前,所述方法还包括所述主FPGA从外部设备获得控制命令和供所述η个从FPGA下载的数据; 所述主FPGA根据所述控制命令产生时钟信号。优选地,在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据之前,所述方法还包括
所述主FPGA从外部设备获得时钟信号和供所述η个从FPGA下载的数据。本发明还提供了一种支持多个现场可编程门阵列(FPGA)下载数据的装置,该装置包括主FPGA和η个从FPGA,所述主FPGA分别通过专用的传输通道与所述η个从FPGA 相连,所述主FPGA包括传输模块,所述传输模块用于分别通过所述传输通道向所述η个从 FPGA传输数据和时钟信号,其中,所述传输通道包括数据传输通道和时钟信号传输通道; 所述从FPGA,用于通过与所述主FPGA相连的专用的传输通道从所述主FPGA接收数据和时钟信号。优选地,所述主FPGA还包括
数据缓存模块,用于缓存从外部设备获得的供所述从FPGA下载的数据; 控制命令存储器,用于保存从外部设备获得的控制命令;
时钟产生模块,用于根据所述控制命令存储器发送的控制命令产生时钟信号并发送给所述传输模块;
加载数据模块,用于根据所述控制命令存储器发送的所述控制命令将所述数据缓存模块缓存的数据发送给所述传输模块。优选地,所述主FPGA还包括
一路转多路模块,用于将从外部设备获得的时钟信号转换为η路时钟信号,并发送给所述传输模块;以及将从外部设备获得的数据转换为η路数据,并发送给所述传输模块。优选地,所述传输模块,还用于分别通过与各从FPGA间的专用的状态指示信号传输通道从各从FPGA获得所述η个从FPGA的状态指示信号。本发明还提供了一种现场可编程门阵列(FPGA),包括
η个用于为所述从FPGA提供时钟信号的第一端口,η为大于1的整数; η个用于为所述从FPGA加载数据的第二端口 ;以及
传输模块,用于使用所述η个第一端口通过与各从FPGA间的专用时钟信号传输通道向所述η个从FPGA传输所述时钟信号;以及使用所述η个第二端口通过与各从FPGA间的专用数据传输通道向所述η个从FPGA传输所述数据。优选地,该FPGA还包括
η个用于接收指示从FPGA下载状态的状态指示信号的第三端口 ; 所述传输模块,还用于使用所述 η个第三端口通过与各从FPGA间的专用状态指示信号传输通道接收所述η个从FPGA发送的所述状态指示信号。上述支持多个FPGA下载数据的方法、装置,由于主从设备之间、多个从设备之间在数据线和时钟线不存在分叉点,可有效避免信号分叉点带来的信号不完整的问题;同时, 相对于现有技术多个从FPGA之间采用串联的下载形式,本发明中的多个从FPGA之间采用并联的下载形式,在主FPGA下载数据结束后,允许多个从FPGA同时开始数据的下载,大大缩短了下载时间。


图1是现有 技术利用多从设备FPGA下载文件的系统组成示意图; 图2是本发明主FPGA实施例一的结构示意图3是本发明主FPGA实施例二的结构示意图; 图4是本发明支持多个FPGA下载数据的装置实施例的组成示意图; 图5为本发明为从FPGA提供的时钟信号由主FPGA内部产生的情况下的支持多个FPGA 下载数据的方法流程图6为本发明为从FPGA提供的时钟信号由主FPGA从外部设备获取的情况下的支持多个FPGA下载数据的方法流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本发明提供了一种FPGA,该FPGA可以支持多个设备现场可编程门阵列(FPGA)下载数据,该FPGA包括m个用于为所述从FPGA提供时钟信号的第一端口,η为大于1的整数;η个用于为所述从FPGA加载数据的第二端口 ;以及传输模块,用于使用所述η个第一端口通过与各从FPGA间的专用时钟信号传输通道向所述η个从FPGA传输所述时钟信号;以及使用所述η个第二端口通过与各从FPGA间的专用数据传输通道向所述η个从FPGA传输所述数据。 另外,该FPGA还可以包括该η个用于接收指示从FPGA下载状态的状态指示信号的第三端口 ;所述传输模块,还用于使用所述η个第三端口通过与各从FPGA间的专用状态指示信号传输通道接收所述η个从FPGA发送的所述状态指示信号。进一步地,所述主FPGA还可以包括数据缓存模块,用于缓存从外部设备获得的供所述从FPGA下载的数据;控制命令存储器,用于保存从外部设备获得的控制命令;时钟产生模块,用于根据所述控制命令存储器发送的控制命令产生时钟信号并发送给所述传输模块;加载数据模块,用于根据所述控制命令存储器发送的所述控制命令将所述数据缓存模块缓存的数据发送给所述传输模块。其中,数据缓存模块可以为数据寄存器或先进先出队列。或者,所述主FPGA还可以包括一路转多路模块,用于将从外部设备获得的时钟信号转换为η路时钟信号,并发送给所述传输模块;以及将从外部设备获得的数据转换为η路数据,并发送给所述传输模块。进一步地,所述主FPGA还可以包括下载使能端,用于给η个从FPGA发送下载使能信号,然后触发时钟产生模块和加载数据模块开始工作;或者触发一路转多路模块开始工作。如图2所示,是本发明主FPGA实施例一的结构示意图,该主FPGA包括下载使能端、存储器、时钟产生模块和加载数据模块,以及η个用于向从FPGA发送时钟信号的第一端口,η个用于为上述从FPGA加载数据的第二端口,η个用于接收指示从FPGA下载状态的状态指示信号的第三端口,η为大于1的整数。其中,上述存储器又包括控制命令存储器、数据存储器和状态存储器;上述数据存储器,用于暂存上述获得模块获得的数据; 该数据存储器可以是寄存器或者是先入先出FIFO队列; 上述控制命令存储器,用于存储从外部设备获取的控制命令; 上述状态存储器,用于存储来自上述第三端口的从FPGA的状态指示信号; 外部设备和主设备可通过读取上述状态寄存器保存的状态指示信号获知从FPGA的下载状态,例如从FPGA的下载进度等;
上述外部设备可以是中央处理器CPU ; 上述下载使能端,用于主FPGA向从设备发送下载使能信号,触发从FPGA开始数据下载任务;
上述时钟产生模块,用于在上述下载使能端发送下载使能信号后,根据控制命令存储器发送的控制命令产生η个时钟信号,并将上述η个时钟信号同时输出到上述η个第一端 Π ;
上述加载数据模块,用于在上述下载使能端发送下载使能信号后,根据控制命令存储器发送的控制命令,将数据存储器暂存的从FPGA的数据同时加载到上述η个第二端口 ; 上述第一端口、第二端口和第三端口均可以为I/O 口。如图3所示,是本发明主FPGA实施例二的结构示意图,该主FPGA同样包括下载使能端、状态寄存器、第一端口、第二端口和第三端口,此外还包括一路转多路模块;
上述一路转多路模块,在下载使能端发送下载使能信号后,将上述获得模块获得的时钟信号转为η路时钟信号,并同时输出到上述η个第一端口,以及将上述获得模块获得的上述数据转换为η路数据,并同时输出到上述η个第二端口。本发明还提供了一种支持多个现场可编程门阵列(FPGA)下载数据的装置,该装置包括主FPGA和η个从FPGA,所述主FPGA分别通过专用的传输通道与所述η个从FPGA 相连,所述主FPGA包括传输模块,所述传输模块用于分别通过所述传输通道向所述η个从 FPGA传输数据和时钟信号,其中,所述传输通道包括数据传输通道和时钟信号传输通道; 所述从FPGA,用于通过与所述主FPGA相连的专用的传输通道从所述主FPGA接收数据和时钟信号。其中,上述主FPGA的结构与图2或图3所示的主FPGA的结构相同,此处不再赘述。另外,需要说明的是,本发明中提到的专用数据传输通道、专用时钟信号传输通道、专用状态指示信号传输通道等专用传输通道均是指主FPGA和从FPGA之间的独立的、不存在分叉点的传输通道,该传输通道可以有效地保证信号的完整性。另外,专用数据传输通道可以是数据线,专用时钟信号传输通道可以是时钟线,专用状态指示信号传输通道可以是状态指示线。如图4所示,是本发明支持多个FPGA下载数据的装置实施例的组成示意图,上述装置包括作为主FPGA的FPGAlJtSW FPGA的FPGA2 FPGA5 ;
在本实施例中FPGAl以图2所示的主FPGA为例进行说明。上述FPGA2 FPGA5与FPGAl的下载使能端直接相连;每个从FPGA均通过数据线、时钟线和状态指示线与主FPGAl相连;
上述FPGAl,用于从外部设备获得控制信号和供从FPGA2 FPGA5共同下载的数据,当 FPGAl的下载使能端向从FPGA2 FPGA5的下载使能端发送下载使能信号后,根据上述控制信号产生4个时钟信号,并将这4个时钟信号通过主FPGAl和从FPGA2 FPGA5之间的 4条时钟线发送给从FPGA2 FPGA5,同时将获得的数据同时输出至主FPGAl和从FPGA2 FPGA5之间的4条数据线上,从而完成了从FPGA2 FPGA5的数据下载;
上述从FPGA2 FPGA5通过与主FPGAl连接的状态指示线,向主FPGAl发送自身的状态指示信号;外部设备和主设备均可通过读取上述状态寄存器保存的状态指示信号获知从 FPGA的下载状态。本实施例中的主FPGAl也可是图3所示的主FPGA。本发明还提供了一种支持多个现场可编程门阵列(FPGA)下载数据的方法,该方法包括
主FPGA以并行方式向η个从FPGA传输时钟信号和数据,η为大于1的整数。其中,在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据的过程中,所述主FPGA分别通过与各从FPGA间的专用时钟信号传输通道和专用数据传输通道向所述η 个从FPGA传输所述时钟信号和所述数据。另外,所述主FPGA还可以分别通过与各从FPGA间的专用状态指示信号传输通道从各从FPGA获得所述η个从FPGA的状态指示信号。进一步地,在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据之前,所述方法还可以包括所述主FPGA从外部设备获得控制命令和供所述η个从FPGA下载的数据;所述主FPGA根据所述控制命令产生时钟信号;或者,所述主FPGA从外部设备获得时钟信号和供所述η个从FPGA下载的数据。优选地,上述专用数据传输通道可以是数据线,专用时钟信号传输通道可以是时钟线,专用状态指示信号传输通道可以是状态指示线。支持多个从FPGA下载文件的方法的一个应用示例如图5所示,该应用示例中,为从FPGA提供的时钟信号由主FPGA内部产生,包括如下步骤
5501、主FPGA从外部设备接收控制命令和供η个从FPGA共同下载的数据,η为正整数;
5502、主FPGA向上述η个从FPGA发送下载使能信号;
5503、主FPGA根据上述控制命令产生时钟信号,将该时钟信号通过η条时钟线同时输送至η个从FPGA,并将上述数据同时加载到η条数据线上。从FPGA还可通过状态指示线向主设备发送状态指示信号,指示自身的下载状态。上述支持多个从FPGA下载文件的方法的另一个应用示例如图6所示,在该应用示例中,为从FPGA提供的时钟信号是由主FPGA从外部设备获取的,包括如下步骤
5601、主FPGA从外部设备获得时钟信号和供η个从FPGA共同下载的数据,η为正整数;
5602、主FPGA向上述η个从FPGA发送下载使能信号;
5603、主FPGA将获得的上述时钟信号转换为η路时钟信号,并同时通过η条时钟线输送至η个从FPGA,以及将获得的数据转换为η路数据同时加载到η条数据线上。从FPGA还可通过状态指示线向主设备发送状态指示信号,指示自身的下载状态。上述支持多个FPGA下载数据的方法及装置,由于主从设备之间、多个从设备之间在数据线和时钟线不存在分叉点,可有效避免信号分叉点带来的信号不完整的问题;同时, 相对于现有技术多个FPGA之间采用串联的下载形式,本发明中的多个从FPGA之间采用并联的下载形式,在主FPGA下载数据结束后,允许多个从FPGA同时开始数据的下载,大大缩短了下载时间。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种支持多个现场可编程门阵列(FPGA)下载数据的方法,该方法包括 主FPGA以并行方式向η个从FPGA传输时钟信号和数据,η为大于1的整数。
2.根据权利要求1所述的方法,其特征在于在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据的过程中, 所述主FPGA分别通过与各从FPGA间的专用时钟信号传输通道和专用数据传输通道向所述η个从FPGA传输所述时钟信号和所述数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括所述主FPGA分别通过与各从FPGA间的专用状态指示信号传输通道从各从FPGA获得所述η个从FPGA的状态指示信号。
4.根据权利要求1-3任一权利要求所述的方法,其特征在于在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据之前,所述方法还包括 所述主FPGA从外部设备获得控制命令和供所述η个从FPGA下载的数据; 所述主FPGA根据所述控制命令产生时钟信号。
5.根据权利要求1-3任一权利要求所述的方法,其特征在于在所述主FPGA以并行方式向η个从FPGA传输时钟信号和数据之前,所述方法还包括 所述主FPGA从外部设备获得时钟信号和供所述η个从FPGA下载的数据。
6.一种支持多个现场可编程门阵列(FPGA)下载数据的装置,该装置包括主FPGA和η 个从FPGA,所述主FPGA分别通过专用的传输通道与所述η个从FPGA相连,所述主FPGA包括传输模块,所述传输模块用于分别通过所述传输通道向所述η个从FPGA传输数据和时钟信号,其中,所述传输通道包括数据传输通道和时钟信号传输通道;所述从FPGA,用于通过与所述主FPGA相连的专用的传输通道从所述主FPGA接收数据和时钟信号。
7.根据权利要求6所述的装置,其特征在于 所述主FPGA还包括数据缓存模块,用于缓存从外部设备获得的供所述从FPGA下载的数据; 控制命令存储器,用于保存从外部设备获得的控制命令;时钟产生模块,用于根据所述控制命令存储器发送的控制命令产生时钟信号并发送给所述传输模块;加载数据模块,用于根据所述控制命令存储器发送的所述控制命令将所述数据缓存模块缓存的数据发送给所述传输模块。
8.根据权利要求6所述的装置,其特征在于 所述主FPGA还包括一路转多路模块,用于将从外部设备获得的时钟信号转换为η路时钟信号,并发送给所述传输模块;以及将从外部设备获得的数据转换为η路数据,并发送给所述传输模块。
9.根据权利要求6、7或8所述的装置,其特征在于所述传输模块,还用于分别通过与各从FPGA间的专用的状态指示信号传输通道从各从FPGA获得所述η个从FPGA的状态指示信号。
10.一种现场可编程门阵列(FPGA),包括η个用于为所述从FPGA提供时钟信号的第一端口,η为大于1的整数; η个用于为所述从FPGA加载数据的第二端口 ;以及传输模块,用于使用所述η个第一端口通过与各从FPGA间的专用时钟信号传输通道向所述η个从FPGA传输所述时钟信号;以及使用所述η个第二端口通过与各从FPGA间的专用数据传输通道向所述η个从FPGA传输所述数据。
11.根据权利要求10所述的FPGA,其特征在于,还包括 η个用于接收指示从FPGA下载状态的状态指示信号的第三端口 ; 所述传输模块,还用于使用所述η个第三端口通过与各从FPGA间的专用状态指示信号传输通道接收所述η个从FPGA发送的所述状态指示信号。
全文摘要
本发明提供了一种支持多个现场可编程门阵列(FPGA)下载数据的方法、装置及FPGA,其中,该方法包括主FPGA以并行方式向n个从FPGA传输时钟信号和数据,n为大于1的整数。采用本发明的技术方案,可实现在缩短多个从FPGA下载数据所需的时间的同时保证信号的完整性。
文档编号G06F9/445GK102200955SQ20111010469
公开日2011年9月28日 申请日期2011年4月26日 优先权日2011年4月26日
发明者张桢 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1