一种加载现场可编程门阵列的系统和方法

文档序号:7505874阅读:97来源:国知局
专利名称:一种加载现场可编程门阵列的系统和方法
技术领域
本发明涉及一种加载现场可编程门阵列的系统和利用该系统加载现场可编程门阵列的方法。
背景技术
随着技术的发展,可编程逻辑器件FPGA(现场可编程门阵列)以其灵活可变的设计实现,能够在最短时间内最快的实现设计需求的特性,对于提供客户化服务,抢占市场制高点有着决定性的作用,正在成为系统设计中不可缺少的部分。
目前市场上存在着从数万门到千万门级的各种FPGA器件,能够使使用者在最短的时间内实现各种复杂的DSP(数字信号处理)演算、网络通讯协议、软件IP(互联网协议)核心算法以及各类复杂接口功能,运用FPGA器件实现网络系统的设计已成为目前设计的主流。
可编程的FPGA器件在每次上电时都会要求重新加载网表文件到FPGA器件中。FPGA器件的提供商一般会提供加载FPGA器件的操作指导,不同提供商的器件加载不尽相同,例如A公司的FPGA器件可通过直接电缆下载、JTAG(边界扫描模式)链加载、被动并行加载(同步/异步)、被动串行加载(同步/异步)等方式加载;B公司的FPGA器件可通过JTAG链加载、主动加载、被动加载等方式加载。A、B两家公司的器件都提供了专用电缆加载的方式,可以方便地使用专用电缆或者利用JTAG链加载调试。
由于在商业化运用中,安全快捷的加载是必不可缺的,因此不同提供商所提供的相关的加载模式(主/被,串/并加载方式)虽然在细节定义上不同,但是总体思想是一致的。如图1所示,在硬件互连时,FPGA器件的控制管脚连接在控制器件(通常为CPU)的通用I/O上,软件根据FPGA器件加载所需的时序,在控制器件(通常为CPU)的对应通用I/O上进行模拟,根据对应I/O的响应将数据发送到数据总线上,实现加载。如图2所示,公共底层模块针对CPU和FPGA器件互连的管脚定义,加载控制软件针对FPGA器件和所选的加载模式(并行或串行),在CPU(即控制器件)的相应端口模拟时序。也就是说,需要各自的单板模块针对单板上的不同的FPGA器件使用的控制器件(通常为CPU)的I/O模拟出相应的加载时序。需要编写专用的加载软件,以模拟加载时序,并对其进行控制。加载实现作为特殊功能在各自单板软件中实现,再提供接口给系统模块。
现有技术存在如下问题在硬件方面,需要控制器件对FPGA器件的控制端口分配通用I/O,对于多FPGA器件的单板而言,存在着控制器件的通用I/O紧张的情况。在集成型产品中,单CPU作为控制器件控制整个系统的运行,由于在相同板位(槽位)会出现混插不同单板的情况,在系统总线中将增加兼容不同单板所使用的不同的FPGA器件的加载控制线。图3是说明在多FPGA器件的系统中,传统模式会增加系统总线的复杂程度的示意图。如图3所示,因为每个FPGA器件的加载是需要单独控制的,在系统中有很多FPGA器件的时候,实现这个控制的I/O的资源就会很复杂,并且影响系统总线,不仅增加了控制器件的I/O资源的消耗,还会使系统总线的设计变得复杂。在高度集成的产品中,系统采用单CPU控制的方式,只有主控单板上存在CPU,由于业务设计的需求庞大,板间的总线接口预留非常有限,使用传统方式实现对整个系统上所有可能单板的FPGA器件的逻辑加载有困难。
在软件方面,加载时序在单板模块中完成。对于同样器件的不同应用环境,由于硬件连线的不同,需要重新编制底层软件的端口定义,重新调试加载时序,由于加载时序在单板模块中完成,会出现系统中对同一器件的加载时序不同的现象,软件模块划分模糊,可移植性不高。

发明内容
本发明的目的是提供一种加载现场可编程门阵列的系统和方法,充分利用系统总线,使控制器件(通常为CPU)在加载FPGA器件时可以屏蔽FPGA器件的个体差异,在硬件方面做到减少单板控制器件(通常为CPU)的I/O资源的损耗,并不影响集成总线的设计。在软件方面,将FPGA器件的加载作为器件控制实现,可以做到相同器件使用相同的模拟加载时序模块,减少软件的开发量,使加载时序模块可以移植,减少开发量。
为实现上述目的,本发明提供了一种加载FPGA器件的系统,包括控制器件和FPGA器件,并进一步包括一加载控制器件,所述控制器件的数据总线与所述加载控制器件及所述FPGA器件相连,所述控制器件的地址总线和控制总线与所述加载控制器件相连,所述控制器件可以通过总线操作控制所述加载控制器件,所述控制器件根据所述控制器件的控制信息控制所述FPGA器件,实现所述FPGA器件的加载。
优选地,所述加载控制器件包括加载状态寄存器、加载控制寄存器;所述加载状态寄存器用于寄存所述现场可编程门阵列器件的加载状态信息,所述控制器件通过读取所述加载状态寄存器,可以获取所述现场可编程门阵列器件的加载状态;所述加载控制寄存器根据所述控制器件的控制信息控制所述现场可编程门阵列器件的加载。
加载控制器件可以进一步包括加载数据寄存器,所述加载数据寄存器用于存放所述控制器件送出的网表数据。
为实现上述目的,本发明提供了一种加载FPGA器件的方法,包括(1)对所述加载控制器件进行信息定义;(2)模拟加载时序(3)通过控制器件总线驱动加载控制器件,实现加载。
优选地,所述模拟加载时序在系统公共底层模块中实现。
优选地,所述模拟加载时序在单板模块中实现。
优选地,所述控制器件为中央处理单元(CPU)。
本发明可简化硬件设计,提高加载软件的可移植性,并能利用少量控制器件加载多个FPGA器件。


图1是FPGA器件在线加载的硬件示意图;图2是传统模式加载软件模块实现示意图;图3是多FPGA器件的系统中,传统模式的系统总线控制示意图;图4是本发明的一个实施例的加载FPGA器件的系统的硬件连接示意图;图5是本发明的一个实施例的加载控制器件的结构示意图;图6是依据本发明的加载FPGA器件的方法的软件模块实现示意图。
具体实施例方式
下面结合附图详细地说明本发明的具体实施方案。
如图4所示,本发明提供了一种加载FPGA器件的系统,将FPGA器件的加载控制线与加载状态线与一加载控制器件连接,所述加载控制器件与CPU的数据总线、地址总线和控制总线相连接,按照分配的加载控制器件的地址空间实现对FPGA器件的加载。CPU的数据总线同时与FPGA器件相连,该数据总线与CPU对加载控制器件进行写操作的数据总线是一致的。优选地,CPU的地址总线和控制总线与FPGA器件相连接。但地址总线和控制总线也可以不与FPGA器件相连接,这不会影响本发明的实现。
所述加载控制器件由数字门电路/PLD(可编程逻辑电路)电路组成,挂接在CPU控制总线上,分配有地址空间,可以进行CPU总线操作,可以将FPGA器件的相关加载信号分配到对应地址空间。具体地,按照相关加载信号的用途,将FPGA器件表明状态的输出信号线排列到加载控制器件的加载状态寄存器响应BIT位;将控制FPGA器件加载的输入信号线排列到加载控制器件的加载控制寄存器响应BIT位。实现CPU对加载信号状态的读取和模拟。
加载控制器件的实现思路就是直接将FPGA器件的加载线按照读写分类引入加载控制器件的寄存器。FPGA器件中有这么一部分特殊专用管脚1)用于表征加载状态的,通过这些状态线的高低电平,延翻转等方式表示加载的状态,加载等待,加载失败,加载成功等等;2)用来控制加载的,配合加载状态线的变化给出适合的高低电平或者延翻转等控制FPGA器件接收数据,停止接收等,实现加载控制。在加载控制器件中提供与这些管脚相连的寄存器,从而通过对这些寄存器的读写实现对这些管脚的操作。
如图5所示,在本实施例中,加载控制器件中带有三种寄存器,加载状态寄存器,加载控制寄存器,加载数据寄存器。分别介绍如下加载状态寄存器将FPGA器件的加载状态线引入加载控制器件,具体地,引入到数字门电路/PLD电路的加载状态寄存器中。这样,所述加载状态寄存器可以寄存FPGA器件的加载状态,通过读取该加载状态寄存器,CPU可以得知FPGA器件的加载状态。
加载控制寄存器CPU根据所读取的加载状态寄存器的值判断加载状态,按照FPGA器件的加载时序要求将控制信号按BIT写入该加载控制寄存器,该加载控制寄存器控制所连接的FPGA器件的加载控制线,将来自CPU的控制信号传递给FPGA器件,控制FPGA器件的加载。
加载数据寄存器控制器件在模拟出加载时序的时候,需要相配合地送出加载的网表数据。如图4所示,加载控制器件的数据总线和FPGA器件的数据总线是挂接在一起的,因此,对加载控制器件的加载数据寄存器写入加载数据的同时数据也被写入了FPGA器件,实现网表的加载。
在加载控制器件中也可以没有加载数据寄存器,但加载控制器件的数据总线和FPGA的数据总线仍是挂接在一起的,软件操作的时候必须在连接着FPGA器件和加载控制器件的数据总线上传送加载网表数据,而且数据必须和控制寄存器上传送的控制信号达到正确的加载状态配合,实现加载。
利用上述的连接,FPGA器件的加载功能由一个器件实现,当需要加载FPGA器件的时候就对该器件进行总线操作,避免使用其他的I/O控制,有效减轻了硬件设计负担,在使用多FPGA设计和单CPU设计的时候优点尤为突出,并且有利于软件的模块划分。
本发明提供了一种利用上述系统加载现场可编程门阵列器件的方法,包括(1)对所述加载控制器件进行信息定义;(2)模拟加载时序(3)所述控制器件以总线控制的方式控制所述加载控制器件,实现加载。
如图6所示,在公共底层模块的信息定义模块中,为加载控制器件分配地址,并定义片选数据宽度信息,由于加载控制功能由CPU总线实现,不再受特有的I/O控制,软件不必关心器件的硬件连线,也不用关心使用的FPGA器件是那个厂家的器件,软件屏蔽了FPGA的特性,只需按照不同FPGA器件的加载时序编写这个器件的驱动程序,在底层的公共模块中实现。因此,在公共底层模块中,带有加载时序模拟程序。针对特定的FPGA器件和所选的加载模式(并行/串行)按照CPU总线方式,模拟加载程序。在系统中相同类型的FPGA器件加载可以直接调用这个程序,具有良好的可移植性。在单板模块中,按照驱动器件的方式直接驱动加载控制器件,实现FPGA器件的加载,这时对FPGA器件加载的操作,就和操作通用寄存器一样,可以通过片选读写信号实现。另外,在公共底层模块中实现的加载时序模拟程序也可在单板模块中实现。在实现了FPGA器件的加载之后,处于系统模块中的上层软件就可以调用该FPGA器件进行工作了。
本发明具有以下的有益效果1.加载控制由控制器件(通常为CPU)总线完成,不需要额外的控制使能。
2.系统运用中,当FPGA器件数目远远大于控制器件(通常为CPU)数目时,按照系统总线结构适当分组,可以实现少量控制器件(通常为CPU)加载多个FPGA功能的实现,不受控制器件(通常为CPU)的I/O资源和系统总线宽度设计的影响。
3.在线加载FPGA器件的方式以总线的方式实现,稳定性和安全性得到很大的提高,并且可以针对加载数据的地址空间进行保护,实现逻辑的网表文件的保护。
4.实现了软件的模块化处理,针对FPGA器件只需编写一次加载驱动,并且作为芯片驱动的处理方式,形成模块化代码,其他使用相同器件的单板软件可以直接调用,并在使用相同器件的设计中这部分代码可以直接移植,有效提高了软件效率。
以上为说明的目的对本发明的优选实施例进行了详细的描述,但本领域的普通技术人员应该意识到,在本发明的范围和精神的情况下,各种改进、添加和替换都是可能的,并且都在本发明的权利要求所限定的保护范围内。
权利要求
1.一种加载现场可编程门阵列器件的系统,包括控制器件和现场可编程门阵列器件,其特征在于,所述系统进一步包括加载控制器件,所述控制器件的数据总线同时和所述加载控制器件及所述现场可编程门阵列器件相连,所述控制器件的地址总线和控制总线和所述加载控制器件相连,所述加载控制器件同所述现场可编程门阵列的加载控制线和加载状态线相连,所述控制器件可以通过总线操作控制所述加载控制器件,所述加载控制器件根据所述控制器件的控制信息控制所述现场可编程门阵列器件,以实现所述现场可编程门阵列器件的加载。
2.根据权利要求1所述的加载现场可编程门阵列器件的系统,其特征在于,所述控制器件的控制总线和地址总线同时和所述现场可编程门阵列器件相连。
3.根据权利要求1所述的加载现场可编程门阵列器件的系统,其特征在于,所述加载控制器件包括加载状态寄存器,用于寄存所述现场可编程门阵列器件的加载状态信息,所述控制器件通过读取所述加载状态寄存器,可以获取所述现场可编程门阵列器件的加载状态;加载控制寄存器,用于根据所述控制器件的控制信息控制所述现场可编程门阵列器件的加载。
4.根据权利要求3所述的加载现场可编程门阵列器件的系统,其特征在于,所述加载控制器件进一步包括加载数据寄存器,用于存放所述控制器件送出的网表数据。
5.根据权利要求1、2、3或4所述的加载现场可编程门阵列器件的系统,其特征在于,所述控制器件是中央处理单元。
6.一种利用权利要求1所述的系统加载现场可编程门阵列器件的方法,包括(1)对所述加载控制器件进行信息定义;(2)模拟加载时序;(3)所述控制器件以总线控制的方式控制所述加载控制器件,实现加载。
7.根据权利要求6所述的加载现场可编程门阵列器件的方法,其特征在于,所述模拟加载时序在系统公共底层模块中实现。
8.根据权利要求6所述的加载现场可编程门阵列器件的方法,其特征在于,所述模拟加载时序在单板模块中实现。
9.根据权利要求6、7或8所述的加载现场可编程门阵列器件的方法,其特征在于,所述控制器件为中央处理单元。
全文摘要
本发明涉及一种加载FPGA器件的系统和方法,系统包括控制器件、FPGA器件及一加载控制器件,控制器件的数据总线、地址总线和控制总线同时和加载控制器件及FPGA器件相连,加载控制器件同FPGA器件的加载控制线和加载状态线相连,控制器件可以通过总线操作控制所述加载控制器件,加载控制器件用来在所述控制器件和所述FPGA器件之间传输加载信号,以实现FPGA器件的加载。方法包括(1)对所述加载控制器件进行信息定义;(2)模拟加载时序(3)驱动加载控制器件,实现加载;加载时序的模拟可以在系统公共底层模块中实现。本发明可简化硬件设计,提高加载软件的可移植性,能利用少量控制器件加载多个FPGA器件。
文档编号H03K19/177GK1632767SQ20031012177
公开日2005年6月29日 申请日期2003年12月23日 优先权日2003年12月23日
发明者高思龙, 邓永军, 谢涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1