基于芯片阵列的在线加载系统及其方法技术领域
本发明涉及一种在线加载系统及方法,特别是涉及一种基于芯片阵列的在线加载系统及其方法。
背景技术
JTAG(Joint Test Action Group,联合测试行动小组)接口是IEEE技术委员会的联合测试行动小组所制定的测试标准(IEEE 1149.1—1990)接口是,使得用户可以测试器件的逻辑和PCB板(印刷电路板)上的各器件的内部连接。目前它是国际上最流行的ICE技术,众多的芯片厂家都在自己的产品中加入了JTAG接口,以便用户调试。
现有JTAG调试技术的常用做法是采用JTAG仿真器通过信号线与目标系统FPGA(Field-Programmable Gate Array,即现场可编程门阵列)/CPU(中央处理器)/DSP((Digital Signal Processing,数字信号处理)连接,另一端通过PC机并口与计算机连接。通过PC机上运行的JTAG软件对相应芯片进行在线调试。除了调试功能外,JTAG接口还可用于加载配置数据。通过JTAG接口进行加载,需要芯片的支持,配置数据串行载入芯片中。通常对于单板上有两个以上具有JTAG功能(符合IEEE Std 1149.1标准)的芯片,不同厂家、不同种类的芯片常会采用独立的JTAG仿真器进行调试和加载。就目前已有的研究判断,该方案有如下缺陷:
(1)灵活性低、维护性差。如果需要调试和配置的芯片数量多,需要对每个芯片进行单独互连加载,增加了工作时间。
(2)资源浪费严重。芯片类型不同(如DSP和FPGA),其JTAG接口会存在一定的差异。如果需要加载不同类型的芯片,需要多个JTAG仿真器,增加了系统复杂性。
(3)在线加载困难。由于各芯片处于不同模型块上,加载需要手动支持,无法实现软件的自动切换在线加载。
发明内容
本发明所要解决的技术问题是提供一种基于芯片阵列的在线加载系统及其方法,其实现对不同类型、不同厂家的多芯片进行配置数据的加载,且只使用一个外接JTAG仿真器与PC机连接便可对系统内的芯片组进行加载,屏蔽了不同芯片之间JTAG接口的差异性。
本发明是通过下述技术方案来解决上述技术问题的:一种基于芯片阵列的在线加载系统,其特征在于,其包括PC机、JTAG仿真器、主控FPGA芯片阵列、第一混合模块、第二混合模块,JTAG仿真器的一端与PC机连接,JTAG仿真器的另一端与主控FPGA芯片阵列的一个IO端口,第一混合模块、第二混合模块与主控FPGA芯片阵列连接;第一混合模块、第二混合模块都具有芯片组,芯片组包括一个FPGA芯片、一个DSP芯片和一个CPU芯片,FPGA芯片具有第三JTAG接口,DSP芯片具有第四JTAG接口,CPU芯片具有第五JTAG接口,第三JTAG接口、第四JTAG接口、第五JTAG接口分别连接至主控FPGA芯片阵列的三个IO端口上,主控FPGA芯片阵列包括第一寄存器、第二寄存器、第三寄存器、第四寄存器,第一寄存器中的三个变量分别指向第二寄存器、第三寄存器、第四寄存器;第二寄存器中的两个变量分别指向与第一混合模块、第二混合模块中FPGA芯片的第三JTAG接口连接的IO端口;第三寄存器中的两个变量分别指向与第一混合模块、第二混合模块中DSP芯片的第四JTAG接口连接的IO端口;第四寄存器中的两个变量分别指向与第一混合模块、第二混合模块中CPU芯片的第五JTAG接口连接的IO端口。
优选地,所述JTAG仿真器的一端通过PC机并口与PC机连接。
优选地,所述PC机安装有一个用于进行主控程序编程的JTAG编程器,通过运行PC机上的主控程序进行芯片组的JTAG加载,PC机安装有一个存储器,存储器中存储有配置数据。
优选地,所述JTAG仿真器具有第一JTAG接口,主控FPGA芯片阵列具有第二JTAG接口,第一JTAG接口与第二JTAG接口连接。
优选地,所述第一JTAG接口具有两部分:一部分JTAG接口就是四线的主控FPGA芯片阵列的JTAG接口,用于向主控FPGA芯片阵列加载主控程序;另一部分JTAG接口是用于传输配置数据给需加载的芯片组。
优选地,所述芯片组中相同类型的芯片放在一组且连接到主控FPGA芯片阵列的IO端口。
本发明还提供一种基于芯片阵列的在线加载系统的加载方法,其特征在于,所述加载方法采用权利5所述的基于芯片阵列的在线加载系统,所述加载方法包括以下步骤:
S1、将JTAG仿真器与PC机、主控FPGA芯片阵列连接;
S2、将第一混合模块、第二混合模块中需加载的芯片组的JTAG接口连接到主控FPGA芯片阵列的IO端口上;
S3、编写主控程序使主控FPGA芯片阵列具备开关选择功能以及JTAG链路管理功能;
S4、通过JTAG仿真器对主控FPGA芯片阵列进行调试、加载主控程序,加载完成后,主控FPGA芯片阵列根据设计的主控程序具备了开关选择功能以及JTAG链路管理功能;
S5、按照预先设定的程序,主控FPGA芯片阵列顺序选择JTAG路径、对目标芯片组进行验证和加载;
S6、加载完一个芯片组后,主控FPGA芯片阵列将选择下一条JTAG路径对剩下的目标芯片组进行加载,直至完成全部芯片的加载;
S7、加载结束,给出系统报告。
优选地,所述目标芯片组在加载前,必须选通此芯片组与主控FPGA芯片阵列之间的JTAG路径;通过验证目标芯片组查看JTAG路径是否选对。
优选地,所述目标芯片组的验证是基于JTAG仿真器的调试功能。
本发明的积极进步效果在于:本发明需要定制JTAG仿真器和主控程序的支持,通过软/硬件协同作用,完成全部芯片的加载,从而有效地提高了加载的效率。而且,本发明实现对不同类型、不同厂家的多芯片进行配置数据的加载,且只使用一个外接JTAG仿真器与PC机连接便可对系统内的芯片组进行加载,屏蔽了不同芯片组之间JTAG接口的差异性。
附图说明
图1为本发明基于芯片阵列的在线加载系统的一个原理框图。
图2为本发明实例中芯片组与主控FPGA芯片阵列之间连接关系图。
图3为本发明实例中系统加载流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图1所示,本发明基于芯片阵列的在线加载系统包括PC机、JTAG仿真器、主控FPGA芯片阵列、至少两个混合模块(即第一混合模块、第二混合模块),JTAG仿真器的一端与PC机连接,具体来说JTAG仿真器的一端通过PC机并口与PC机连接,JTAG仿真器的另一端与主控FPGA芯片阵列的第一寄存器reg_0的一个IO(输入输出)端口连接,第一混合模块、第二混合模块与主控FPGA芯片阵列连接。每个混合模块具有芯片组(第一芯片组和第二芯片组),芯片组包括一个FPGA芯片、一个DSP芯片和一个CPU芯片,FPGA芯片为XC5VSX95T型芯片,DSP芯片为TI公司的TMS320C6455型芯片,CPU芯片选定freescale(飞思卡尔)公司的MPC8548型芯片,FPGA芯片具有第三JTAG接口,DSP芯片具有第四JTAG接口,CPU芯片具有第五JTAG接口,分别将两组FPGA芯片的第三JTAG接口、DSP芯片的第四JTAG接口、CPU芯片的第五JTAG接口分别连接至主控FPGA芯片阵列的第二寄存器reg_1的IO端口、第三寄存器reg_2的IO端口、第四寄存器reg_3的IO端口上。如图1和图2所示,主控FPGA芯片阵列包括四个寄存器,具体是第一寄存器reg_0、第二寄存器reg_1、第三寄存器reg_2、第四寄存器reg_3,第一寄存器reg_0中的第一变量a0、第二变量b0、第三变量c0分别指向其他三个寄存器reg_1、reg_2、reg_3;第二寄存器reg_1中的第四变量a1、第五变量b1分别指向与第一混合模块、第二混合模块中FPGA芯片的第三JTAG接口连接的IO端口;第三寄存器reg_2中的第六变量a2、第七变量b2分别指向与第一混合模块、第二混合模块中DSP芯片的第四JTAG接口连接的IO端口;第四寄存器reg_3中的第八变量a3、第九变量b3分别指向与第一混合模块、第二混合模块中CPU芯片的第五JTAG接口连接的IO端口。JTAG仿真器具有第一JTAG接口,主控FPGA芯片阵列具有第二JTAG接口,第一JTAG与第二JTAG接口连接,第一JTAG接口、第二JTAG接口、第三JTAG接口、第四JTAG接口、第五JTAG接口考虑到FPGA芯片、DSP芯片和CPU芯片的JTAG插座的差异性,屏蔽了不同芯片组之间JTAG接口的差异性。JTAG仿真器包含表1所列的所有管脚,这些管脚全部连接到主控FPGA上与第一寄存器reg_0相连的IO端口,芯片组中的各型芯片就可以通过各自的JTAG接口分别接入与第二寄存器reg_1、第三寄存器reg_2、第四寄存器reg_3相连的IO端口,无需考虑彼此JTAG接口管脚的差异,不同的芯片中JTAG管脚是可以共用,如表1中可以设计一种包含所有芯片共有JTAG管脚和差异管脚的插头,当需要加载时将JTAG仿真器插入共用插头,就可以在同一个JTAG插头上实现不同器件的加载,从而实现屏蔽不同器件的差异性。第一JTAG接口具有两部分:一部分JTAG接口就是四线的主控FPGA芯片阵列的JTAG接口,用于向主控FPGA芯片阵列加载主控程序;另一部分JTAG接口是用于传输配置数据给需加载的芯片组,因为DSP芯片、CPU芯片和FPGA芯片的JTAG配置模式有一定的差异,使用的管脚也有所不同,因此这部分接口必须包括所有的管脚,具体如表1所示。
表1
PC机采用Intel Corei3等处理器和Windows XP等操作系统,并且PC机安装有一个用于进行主控程序等程序编程的JTAG编程器,通过运行PC机上的主控程序进行芯片组的JTAG加载,PC机也安装有一个存储器,存储器中存储有配置数据。
当系统上电后,本发明实例中系统加载的过程如图3所示:
第一步,系统通过JTAG仿真器上的第一JTAG接口对主控FPGA芯片阵列进行调试,确保其逻辑正确以及IO端口连通。若通过调试,则进行配置数据加载;若不能通过,则退出加载并且上报错误消息给JTAG编程器。当主控FPGA芯片阵列加载完成,根据加载的设计程序会设定有五个寄存器(包括第一寄存器reg_0、第二寄存器reg_1、第三寄存器reg_2、第四寄存器reg_3和一个FPGA内部的寄存器),第一寄存器reg_0中的第一变量a0、第二变量b0、第三变量c0分别指向其他三个寄存器reg_1、reg_2、reg_3;第二寄存器reg_1中的第四变量a1、第五变量b1分别指向与第一混合模块、第二混合模块中FPGA芯片的第三JTAG接口连接的IO端口;第三寄存器reg_2中的第六变量a2、第七变量b2分别指向与第一混合模块、第二混合模块中DSP芯片的第四JTAG接口连接的IO端口;第四寄存器reg_3中的第八变量a3、第九变量b3分别指向与第一混合模块、第二混合模块中CPU芯片的第五JTAG接口连接的IO端口。通过组合变量就可以完成JTAG路径的选择。预先制定一个顺序表:a0→a1,a0→b1,b0→a2,b0→b2,c0→a3,c0→b3。
第二步,主控FPGA芯片阵列开始按照顺序表选择JTAG链路对目标芯片组加载程序。JTAG链路选定后,需先对目标芯片组进行验证以防加载了错误的芯片。验证过程是基于主控JTAG芯片的调试功能。若验证失败,可以最多3次重复选择此条JTAG路径。第3次验证失败后,放弃此条JTAG路径,转而进行下一条路径的选择并将路径失败信息通过TDI(Test DataInput,数据输入接口)上报给JTAG编程器。当验证成功后,系统对目标芯片组进行加载。加载过程中,系统会对加载数据进行校验。若校验正确,主控FPGA芯片阵列进行下一条JTAG路径的选择;若校验失败,最多进行3次重复加载。第3次加载失败后,退出此目标芯片组的加载,转而选择下一条JTAG路径并且上报此加载错误信息给JTAG编程器。设定主控FPGA芯片阵列中的一个设定主控FPGA芯片阵列中的一个FPGA内部的寄存器,用来存放变量d/e/f的值,编写主控程序时设定,与上述四个寄存器reg_0、reg_1、reg_2、reg_3不同,FPGA内部的寄存器包含三个变量d、e、f。其中变量d、e初始值设为3,当目标芯片组重复验证一次或重复加载一次,d减1或e减1;f初始值设为6,当加载完一个芯片后,其值减1。
第三步,当f值变为0时,系统退出整个加载过程,并根据加载过程中的上报信息给出系统报告。
将芯片组中相同类型的芯片放在一组且连接到主控FPGA芯片阵列的IO端口,这样利于接口的管理。
本发明提供了一种基于芯片阵列的在线加载系统的加载方法(进行概括的),用于向板上的不同种类的芯片组进行加载,所涉及的芯片种类包括FPGA芯片、DSP芯片和CPU芯片,所述方法包括以下几个步骤:
S1、将JTAG仿真器与PC机、主控FPGA芯片阵列连接,JTAG仿真器、主控FPGA芯片阵列的JTAG接口考虑到FPGA芯片、DSP芯片和CPU芯片的JTAG插座的差异性;
S2、将第一混合模块、第二混合模块中需加载的芯片组的JTAG接口连接到主控FPGA芯片阵列的IO端口上,按组分类;
S3、编写主控程序使主控FPGA芯片阵列具备开关选择功能以及JTAG链路管理功能;
S4、系统启动后,系统通过JTAG仿真器对主控FPGA芯片阵列进行调试、加载主控程序,加载完成后,主控FPGA芯片阵列根据设计的主控程序具备了开关选择功能以及JTAG链路管理功能;主控FPGA芯片阵列的JTAG路径管理功能是基于软件实现的,通过主控程序中设定的寄存器变量选定每次加载的JTAG路径。目标芯片组在加载前,必须选通此芯片组与主控FPGA芯片阵列之间的JTAG路径。通过验证目标芯片组查看JTAG路径是否选对。
S5、按照预先设定的程序,主控FPGA芯片阵列顺序选择JTAG路径、对目标芯片组进行验证和加载;目标芯片组的验证是基于JTAG仿真器的调试功能。目标芯片组验证不成功,应重新选择此目标芯片组的JTAG路径,重新选择次数限定为3。若超过3次,此目标芯片组的JTAG路径出错,退出此目标芯片组的加载,进行其他JTAG路径选择,并将JTAG路径出错消息上报PC机。芯片组加载不成功,应重新加载芯片组,重复加载次数限定为3。若超过3次,此芯片组的加载失败,应退出其加载过程,进行其他芯片组的JTAG路径选择,并将加载失败消息上报PC机。重复次数限定基于主控FPGA芯片阵列寄存器变量的设定。
S6、加载完一个芯片组后,主控FPGA芯片阵列将选择下一条JTAG路径对剩下的目标芯片组进行加载,直至完成全部芯片的加载;JTAG路径的选择是基于顺序表的,只有顺序表中指向的当前路径被成功选定或重复选定3次以后,顺序表才指向下一条路径。当顺序表中的路径被遍历完后,系统退出整个加载过程。JTAG路径被选择以后,若目标芯片验证正确,表明此路径选定成功。用于JTAG路径选择的顺序表由主控程序代码实现、PC机控制。
S7、加载结束,给出系统报告。加载结束,系统统计加载失败的芯片组信息,进行后处理。
以上所述,仅为本发明的一个具体实例,所涉及到芯片不仅局限于这3款,任何具备JTAG接口的芯片都可应用于本发明中,所以本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所述的技术范围内,所做的变化或替换,都应涵盖在本发明的保护范围内。因此,本发明的保护范围应以权力要求书的保护范围为准。