处理器芯片仿真器的制造方法
【专利摘要】本发明公开了一种处理器芯片仿真器,包括:一仿真芯片,一存储器;所述仿真芯片包括一处理器核和一初始化程序存储器;所述仿真芯片的处理器核和存储器通过第一数据/地址总线连接;所述仿真芯片内处理器核与初始化程序存储器通过第二数据/地址总线连接;所述处理器核,在测试模式下读取并执行初始化程序存储器中的初始化程序;正确执行完初始化程序后切换进入用户模式,在用户模式下读取并执行存储器中的用户程序。本发明能提高仿真器系统的工作稳定性,有效缩减上电过程所需时间。
【专利说明】 处理器芯片仿真器
【技术领域】
[0001]本发明涉及一种处理器芯片仿真器。
【背景技术】
[0002]处理器芯片内有用户开发的用户程序,在用户程序的编写和调试中,所使用的工具一般是处理器芯片仿真器。仿真器内使用包含产品处理器芯片各项功能的仿真芯片,用于模拟产品处理器芯片的工作行为,在功能和性能上均十分接近产品处理器芯片,仿真芯片与仿真器主机配合实现用户程序的仿真运行和各项调试功能。由于仿真器仅在系统产品开发、调试用户程序的阶段使用,对芯片厂商而言其市场需求量要远远小于产品芯片的需求量,如果像产品处理器芯片一样专门流片仿真芯片,昂贵的流片费用分摊到每颗仿真芯片上,会造成仿真器的价格极为高昂,不利于芯片的市场推广,因此,近年来处理器芯片厂商在设计制作仿真芯片时,通常都是采用FPGA (Field Programmable Gate Array,现场可编程门阵列)加上针对目标处理器芯片设计的FPGA网表来作为仿真芯片使用的。
[0003]仿真器上电后,需要仿真芯片先进入稳定工作状态,对于有测试模式等初始化模式的处理器芯片仿真器,仿真芯片还需要先执行完测试模式下的初始化代码,才能进入用户模式,开始与仿真器其他部件进行通信;仿真芯片开始读取和执行用户程序,以实现各种仿真、调试功能。如果仿真器上电后,仿真芯片尚未进入稳态或者还未在测试模式下执行完初始化代码,仿真器其他部件就与其开始通信,会导致通信出错,仿真芯片开始读取用户程序也会出现执行错误的状态。
[0004]为防止出现上述出错情况,现有仿真器中测试模式下需要执行的初始化代码(如果有)也和用户程序一起放在仿真器的存储器内。在仿真器上电后,除仿真芯片外的仿真器部件会设计成等待一段固定的时间(设置等待延时),以确信仿真芯片进入稳态完成了,才与仿真芯片开始通信、允许仿真芯片读取和执行初始化代码(此时仿真芯片处于测试模式);执行完后仿真芯片进入用户模式才开始执行用户程序(初始化程序和用户程序都在仿真器存储器内)。但是由于仿真器产品的个体、所用器件(批次、型号)特性存在差异,仿真芯片进入稳态的时间存在一个范围;上述等待的固定时间必须估计并设置成大于这个范围的最大值。这个值很难十分准确的估计,如果估计的太大,仿真器上电过程所需时间加大就会影响用户使用感受和工作效率,如果估计不足就会造成仿真器系统的不稳定。特别是仿真器使用陈旧后仿真芯片老化等原因,很可能出现仿真芯片达到稳态时间拉长,超出预设的等待时间的情况。以FPGA器件实现仿真芯片的仿真器中,由于FPGA还有一个从存放网表的非易失性存储器加载仿真芯片网表的过程,如果这个过程受到干扰(电磁干扰等),FPGA会自动重新加载网表。这样仿真芯片进入稳态的时间就会发生变化,超出预设的仿真器其他部件等待仿真芯片进入稳态时间,导致系统出错。
[0005]此外,对有带有测试模式需要先在测试模式下执行完初始化代码才能进入用户模式执行用户代码的处理器芯片而言(例如,智能卡处理器芯片),实际产品芯片中测试模式下的初始化代码是由芯片厂商固化在产品芯片中的,芯片上电后自动在测试模式下执行完初始化程序切换进入用户模式。测试模式执行代码对用户是不可见的,也是用户不能修改和不关心的。同时有些处理器芯片中的安全模块在测试模式下可以操作到,用户模式下不允许用户操作,所以芯片厂商也不希望用户看到或能在用户模式下执行程序。而现有仿真器上测试模式需要执行的初始化代码和用户模式下需要执行的用户程序代码都存放在仿真器存储器内,仿真芯片进入稳态后首先处于测试模式执行仿真器存储器内的初始化程序,执行完后才切换到用户模式执行仿真器存储器内的用户程序。由于测试模式对用户变成可见的了,大部分用户不关注这一过程,即测试模式执行和切换到用户模式过程;也会有少数不良用户可能修改仿真器存储器内测试模式下执行的初始化程序,操作厂商只在测试模式下开放的安全模块等特殊功能模块,盗取芯片设计信息。由于初始化程序存放在仿真器存储器内,存在被用户误修改的可能性,导致仿真芯片无法正确执行完测试模式下的初始化程序进入用户模式。同时,对于厂商而言,也只希望用户看到厂商对用户开放的用户模式,不希望用户能够看到或操作到测试模式。
【发明内容】
[0006]本发明要解决的技术问题提供一种处理器芯片仿真器,提高仿真器系统的工作稳定性,有效缩减上电过程所需时间。
[0007]为解决上述技术问题,本发明的处理器芯片仿真器,包括:一仿真芯片,一存储器;其中,所述仿真芯片包括一处理器核和一初始化程序存储器;
[0008]所述仿真芯片的处理器核和存储器通过第一数据/地址总线连接;所述仿真芯片内处理器核与初始化程序存储器通过第二数据/地址总线连接;
[0009]所述处理器核,在测试模式下读取并执行初始化程序存储器中的初始化程序;正确执行完初始化程序后切换进入用户模式,在用户模式下读取并执行存储器中的用户程序。
[0010]采用本发明的处理器芯片仿真器,能够在仿真器上电后,使仿真芯片自动进入稳定状态,在测试模式下执行初始化程序,完成后切换进入用户模式。仿真芯片进入用户模式后,仿真器其他部件才能与仿真芯片配合使系统进入用户模式下的工作状态,开始实现各种仿真、调试功能。有助于提高仿真器系统的工作稳定性,上电过程所需时间也缩减到最小程度,有助于提高用户感受。
[0011]本发明的处理器芯片仿真器,在测试模式下的初始化程序和执行过程对用户也完全不可见,用户也无法在测试模式下进行任何操作,测试模式的初始化程序也不可被修改;提高了仿真器与产品芯片的功能表现一致性;保护了厂商芯片设计信息。
【专利附图】
【附图说明】
[0012]下面结合附图和【具体实施方式】对本发明作进一步详细的说明:
[0013]附图是所述处理器芯片仿真器的结构示意图。
【具体实施方式】
[0014]参见附图所示,在本实施例中,所述处理器芯片仿真器I包括仿真芯片2,存储器3,仿真模块4。[0015]仿真芯片2包括处理器核6和初始化程序存储器5。仿真芯片2和仿真模块4之间连接有一根标志信号线9。仿真芯片2的处理器核6和存储器3之间通过第一标准数据/地址总线7连接。仿真芯片2内处理器核6与初始化程序存储器5通过第二标准数据/地址总线8连接。存储器3内存放用户程序,用户可以观察和修改。仿真芯片2内的初始化程序存储器5内存放初始化程序,用户不可见,也不能修改。
[0016]所述仿真芯片2中的处理器核6模拟产品处理器芯片功能,在测试模式下通过与初始化程序存储器5连接的第二标准数据/地址总线8读取并执行初始化程序;正确执行完初始化程序后切换进入用户模式。在用户模式下通过与存储器3连接的标准数据/地址总线7读取并执行用户程序。
[0017]所述仿真模块4控制仿真器I上仿真芯片2以外的部件是否与仿真芯片2通信,实现仿真调试功能。
[0018]仿真芯片2在测试模式下执行初始化程序时,仿真芯片2通过与仿真模块4连接的标志信号线输出表示处于“初始化中”的信号,例如“O”电平信号。仿真芯片2切换到用户模式后,仿真芯片2通过与仿真模块4连接的标志信号线9输出表示处于“用户应用中”的信号,例如“I”电平信号。所述仿真模块4通过标志信号线9收到“初始化中”信号后,控制仿真器I上仿真芯片2以外的部件不与仿真芯片2通信。所述仿真模块4通过在标志信号线9收到“用户应用中”信号后,控制仿真器I上仿真芯片2以外的部件可以与仿真芯片2通信,实现用户程序的执行和调试。
[0019]如果仿真芯片2是以芯片形式实现的,初始化程序存储器5和初始化程序都固化在了仿真芯片2内,并直接在仿真芯片2内被处理器核6读取和执行,不存在引出仿真芯片2的接口。因此,测试模式下的初始化程序代码和执行的过程对用户都完全不可见,用户也无法在测试模式下进行任何操作,测试模式的初始化程序也不可被修改。仿真芯片2上电稳定后开始在测试模式下读取和执行初始化程序,这与产品芯片是一致的。由于不涉及仿真芯片2引出的信号线及与其他器件通信交互,仿真芯片2在上电后是一个独立系统,可以在稳定后自动在测试模式下读取和执行初始化程序,执行完后切换到用户模式,并通过标志信号9告知仿真器I的仿真模块4可以读取和执行用户程序了。此时仿真芯片2已稳定且进入了用户模式,这样,用户看到的是与实际产品芯片一致的状况,即仿真芯片2上电后自动在测试模式下执行完初始化程序,切换到用户模式,开始读取和执行用户程序。上述过程避免了现有仿真器上可能存在的不稳态,提高了仿真器系统的工作稳定性,上电过程也不存在等待冗余时间,所需上电进入用户模式时间缩减到最小。
[0020]如果仿真芯片是以FPGA形式实现的,初始化程序和处理器核都一起整合在仿真芯片网表中,固化在仿真器的网表存储器中。初始化程序和处理器核整合在一起,用户是无法单独提取出初始化程序并加以修改的。上电后包含初始化程序和处理器核的网表加载到FGPA上,同样初始化程序直接在仿真芯片内被处理器核读取和执行,也不存在引出仿真芯片的接口,FPGA仿真芯片仍是一个独立系统,可以在稳定后自动在测试模式下由处理器核读取和执行初始化程序。
[0021]以上通过【具体实施方式】和实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
【权利要求】
1.一种处理器芯片仿真器,包括:一仿真芯片,一存储器;其特征在于,所述仿真芯片包括一处理器核和一初始化程序存储器; 所述仿真芯片的处理器核和存储器通过第一数据/地址总线连接;所述仿真芯片内处理器核与初始化程序存储器通过第二数据/地址总线连接; 所述处理器核,在测试模式下读取并执行初始化程序存储器中的初始化程序;正确执行完初始化程序后切换进入用户模式,在用户模式下读取并执行存储器中的用户程序。
2.如权利要求1所述的仿真器,其特征在于:所述存储器内存放的用户程序,用户可以观察和修改;所述仿真芯片的初始化程序存储器内存放的初始化程序,用户不可见,且不能修改。
3.如权利要求1所述的仿真器,其特征在于:还包括一仿真模块,该仿真模块与仿真芯片之间连接有一根标志信号线;所述仿真芯片在测试模式下执行初始化程序时,通过所述标志信号线输出表示处于“初始化中”的信号;所述仿真芯片切换到用户模式后,通过所述标志信号线输出表示处于“用户应用中”的信号; 所述仿真模块收到“初始化中”信号后,控制所述仿真器上除所述仿真芯片以外的部件均不能与仿真芯片通信;所述仿真模块收到“用户应用中”信号后,控制所述仿真器上除所述仿真芯片以外的部件均能与仿真芯片通信,实现用户程序的执行和调试。
【文档编号】G06F11/26GK103678074SQ201210362750
【公开日】2014年3月26日 申请日期:2012年9月25日 优先权日:2012年9月25日
【发明者】许国泰 申请人:上海华虹集成电路有限责任公司