CN103164177B - 打印数据的方法、监视器、打印器及仿真平台 - Google Patents
打印数据的方法、监视器、打印器及仿真平台 Download PDFInfo
- Publication number
- CN103164177B CN103164177B CN201310075938.5A CN201310075938A CN103164177B CN 103164177 B CN103164177 B CN 103164177B CN 201310075938 A CN201310075938 A CN 201310075938A CN 103164177 B CN103164177 B CN 103164177B
- Authority
- CN
- China
- Prior art keywords
- print data
- current print
- length
- printer
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种打印数据的方法、监视器、打印器及仿真平台,属于计算机技术领域。所述方法包括:在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据。所述监视器包括:第一接收模块和第一发送模块。所述打印器包括:第一接收模块和第一发送模块。所述仿真平台包括:监视器和打印器。本发明解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种打印数据的方法、监视器、打印器及仿真平台。
背景技术
随着芯片技术的高速发展,SOC(SystemOnChip,片上系统)的规模越来越大,使得SOC正确性的验证效率急剧下降。通过仿真平台进行仿真的仿真速度成为提高大规模SOC验证效率的最大瓶颈。其中,仿真平台相当于一个大容量的FPGA(FieldProgrammableGateArray,现场可编程门阵列),可以烧入待验证的硬件代码,通过外部设备灌入激励数据,从而达到根据激励数据测试硬件代码的目的。该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL(ElectronicSystemLevel,电子系统级)平台等;或者,该仿真平台还可以由软硬件结合实现。
请参考图1,其示出了仿真平台为仿真加速器时,在仿真加速器中进行SOC软硬件联合仿真的一种结构示意图。图1中,外部设备与仿真加速器连接,通过外部设备中的测试平台(TestBench)将激励数据灌入仿真加速器,仿真加速器将待测试SOC的RTL(RealTimeLanguage,实时语言)代码综合成电路网表加载到自身,以提供芯片原型测试场景,并根据灌入的激励数据完成对SOC的验证。
但是,由于仿真平台的使用成本昂贵,因此,如果能够将验证过程中打印器的打印数据输出到显示器,使测试人员根据打印数据迅速定位出问题,则可以提高对SOC的验证效率,也可以减少仿真平台的使用时间,进而降低对仿真平台的使用成本,而现有技术中打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本。
发明内容
为了解决打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,本发明实施例提供了一种打印数据的方法、监视器、打印器及仿真平台。所述技术方案如下:
第一方面,本发明提供了一种打印数据的方法,所述方法包括:
在第一专用地址接收打印器通过总线发送的当前打印数据;
将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据。
在第一方面的第一种可能的实现方式中,所述在第一专用地址接收打印器通过总线发送的当前打印数据之前,还包括:
在第二专用地址接收所述打印器通过所述总线发送的当前打印长度;
相应的,所述将所述当前打印数据通过专用接口发送给显示器之前,还包括:
检测接收到的所述当前打印数据的总长度是否等于所述当前打印长度;
若检测结果为接收到的所述当前打印数据的总长度等于所述当前打印长度,则确定执行所述将所述当前打印数据通过专用接口发送给显示器的步骤。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述在第二专用地址接收所述打印器通过所述总线发送的当前打印长度之后,还包括:
在所述第二专用地址接收所述打印器通过所述总线发送的下一打印长度;
检测接收到的所述当前打印数据的总长度是否小于所述当前打印长度;
若检测结果为接收到的所述当前打印数据的总长度小于所述当前打印长度,则在所述第一专用地址接收所述打印器通过所述总线发送的下一打印数据;
检测接收到的所述下一打印数据的总长度是否等于所述下一打印长度;
若检测结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器,以便所述显示器打印所述下一打印数据;
继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则所述在第二专用地址接收所述打印器通过总线发送的当前打印长度,包括:
在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述在第一专用地址接收打印器通过总线发送的当前打印数据,包括:
获取与所述当前打印数据对应的CPU编号;
在至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;
将所述当前打印数据存储在查找到的所述当前打印长度对应的缓存中。
结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则所述在所述第二专用地址接收所述打印器通过总线发送的下一打印长度,包括:
在所述第二专用地址接收至少一个所述下一打印长度,一个所述下一打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述在第一专用地址接收所述打印器通过总线发送的下一打印数据,包括:
获取与所述下一打印数据对应的CPU编号;
在至少一个所述下一打印长度中,查找所述与所述下一打印数据对应的CPU编号对应的下一打印长度;
将所述下一打印数据存储在查找到的所述下一打印长度对应的缓存中。
第二方面,本发明提供了一种打印数据的方法,所述方法包括:
接收当前打印数据;
通过总线向监视器的第一专用地址发送所述当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据。
在第二方面的第一种可能的实现方式中,所述通过总线向监视器的第一专用地址发送所述当前打印数据之前,还包括:
根据所述当前打印数据计算当前打印长度;
通过所述总线向所述监视器的第二专用地址发送所述当前打印长度。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述通过所述总线向所述监视器的第二专用地址发送所述当前打印长度之后,还包括:
接收打印下一打印数据的请求;
检测所述当前打印数据是否发送完成;
若检测结果为所述当前打印数据未发送完成,则记录所述当前打印数据的发送长度;
接收下一打印数据;
根据所述下一打印数据计算下一打印长度;
通过所述总线向所述第二专用地址发送所述下一打印长度;
通过所述总线向所述第一专用地址发送所述下一打印数据;
检测所述下一打印数据是否发送完成;
若检测结果为所述下一打印数据发送完成,则读取所述发送长度;
从所述发送长度处继续执行所述通过总线向监视器的第一专用地址发送所述当前打印数据的步骤。
第三方面,本发明提供了一种监视器,所述监视器包括:
第一接收模块,用于在第一专用地址接收打印器通过总线发送的当前打印数据;
第一发送模块,用于将所述第一接收模块接收的当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据。
在第三方面的第一种可能的实现方式中,所述监视器,还包括:
第二接收模块,用于所述第一接收模块在第一专用地址接收打印器通过总线发送的当前打印数据之前,在第二专用地址接收所述打印器通过所述总线发送的当前打印长度;
相应的,所述监视器,还包括:
第一检测模块,用于所述第一发送模块将所述当前打印数据通过专用接口发送给显示器之前,检测接收到的所述当前打印数据的总长度是否等于所述当前打印长度;
确定模块,用于若所述第一检测模块检测的结果为接收到的所述当前打印数据的总长度等于所述当前打印长度,则确定执行所述将所述当前打印数据通过专用接口发送给显示器的步骤。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述监视器,还包括:
第三接收模块,用于所述第二接收模块在第二专用地址接收所述打印器通过所述总线发送的当前打印长度之后,在所述第二专用地址接收所述打印器通过所述总线发送的下一打印长度;
第二检测模块,用于检测所述第三接收模块接收到的所述当前打印数据的总长度是否小于所述当前打印长度;
第四接收模块,用于若所述第二检测模块检测的结果为接收到的所述当前打印数据的总长度小于所述当前打印长度,则在所述第一专用地址接收所述打印器通过所述总线发送的下一打印数据;
第三检测模块,用于检测所述第四接收模块接收到的所述下一打印数据的总长度是否等于所述下一打印长度;
第二发送模块,用于若所述第三检测模块检测的结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器,以便所述显示器打印所述下一打印数据;
执行模块,用于继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤。
结合第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则第二接收模块,具体用于在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述第一接收模块,包括:
第一获取单元,用于获取与所述当前打印数据对应的CPU编号;
第一查找单元,用于在所述第一获取单元获取的至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;
第一存储单元,用于将所述当前打印数据存储在所述第一查找单元查找到的所述当前打印长度对应的缓存中。
结合第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则第三接收模块,具体用于在所述第二专用地址接收至少一个所述下一打印长度,一个所述下一打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述第四接收模块,包括:
第二获取单元,用于获取与所述下一打印数据对应的CPU编号;
第二查找单元,用于在所述第二获取单元获取的至少一个所述下一打印长度中,查找所述与所述下一打印数据对应的CPU编号对应的下一打印长度;
第二存储单元,用于将所述下一打印数据存储在所述第二查找单元查找到的所述下一打印长度对应的缓存中。
第四方面,本发明提供了一种打印器,所述打印器包括:
第一接收模块,用于接收当前打印数据;
第一发送模块,用于通过总线向监视器的第一专用地址发送所述第一接收模块接收的当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据。
在第四方面的第一种可能的实现方式中,所述打印器,还包括:
第一计算模块,用于所述第一发送模块通过总线向监视器的第一专用地址发送所述当前打印数据之前,根据所述当前打印数据计算当前打印长度;
第二发送模块,用于通过所述总线向所述监视器的第二专用地址发送所述第一计算模块计算出的当前打印长度。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述打印器,还包括:
第二接收模块,用于所述第二发送模块通过所述总线向所述监视器的第二专用地址发送所述当前打印长度之后,接收打印下一打印数据的请求;
第一检测模块,用于所述第二接收模块接收打印下一打印数据的请求后,检测所述当前打印数据是否发送完成;
记录模块,用于若所述第一检测模块检测的结果为所述当前打印数据未发送完成,则记录所述当前打印数据的发送长度;
第三接收模块,用于所述记录模块记录所述当前打印数据的发送长度之后,接收下一打印数据;
第二计算模块,用于根据所述第三接收模块接收的下一打印数据计算下一打印长度;
第三发送模块,用于通过所述总线向所述第二专用地址发送所述第二计算模块计算出的下一打印长度;
第四发送模块,用于通过所述总线向所述第一专用地址发送所述第三接收模块接收的下一打印数据;
第二检测模块,用于所述第四发送模块通过总线向所述监视器的第一专用地址发送接收的下一打印数据之后,检测所述下一打印数据是否发送完成;
读取模块,用于若所述第二检测模块检测的结果为所述下一打印数据发送完成,则读取所述发送长度;
执行模块,用于所述读取模块读取所述当前打印数据的发送长度之后,从所述记录模块记录的所述发送长度处继续执行所述通过总线向监视器的第一专用地址发送所述当前打印数据的步骤。
第五方面,本发明提供了一种仿真平台,所述仿真平台包括如上所述的监视器和如上所述的打印器。
本发明实施例提供的技术方案带来的有益效果是:
通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是在仿真加速器中进行SOC软硬件联合仿真的一种结构示意图;
图2是本发明实施例一提供的打印数据的方法的方法流程图;
图3是本发明实施例二提供的打印数据的方法的方法流程图;
图4是本发明实施例三提供的打印数据的方法的方法流程图;
图5是本发明实施例四提供的监视器的结构示意图;
图6是本发明实施例五提供的监视器的结构示意图;
图7是本发明实施例六提供的打印器的结构示意图;
图8是本发明实施例七提供的打印器的结构示意图;
图9是本发明实施例八提供的监视器的结构示意图;
图10是本发明实施例九提供的打印器的结构示意图;
图11是本发明实施例八提供的仿真平台的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
请参考图2,其示出了本发明实施例一提供的打印数据的方法的方法流程图,该打印数据的方法可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该打印数据的方法,包括:
步骤202:打印器接收当前打印数据;
其中,打印数据是仿真平台验证SOC的过程中需要打印到显示器上的数据,可以通过打印器接收打印数据,并对打印数据进行处理。
步骤204:打印器通过总线向监视器的第一专用地址发送当前打印数据,以便监视器通过专用接口向显示器发送该当前打印数据后,显示器打印该当前打印数据。
其中,第一专用地址用来接收打印数据。
步骤206:监视器在第一专用地址接收打印器通过总线发送的当前打印数据;
具体地,监视器每隔预定时间检测第一专用地址是否接收到数据,若检测到第一专用地址接收到数据,则确定该数据为当前打印数据。
步骤208:监视器将当前打印数据通过专用接口发送给显示器,以便显示器打印当前打印数据。
其中,显示器可以内置于仿真平台,或者,该显示器也可以是独立于仿真平台的外部设备,比如,服务器等,本实施例不作限定。
综上所述,本发明实施例提供的打印数据的方法,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。
实施例二
请参考图3,其示出了本发明实施例二提供的打印数据的方法的方法流程图,该打印数据的方法可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。与实施例一的区别在于,本实施例支持多打印器打印,该打印数据的方法,包括:
步骤302:打印器接收当前打印数据;根据当前打印数据计算当前打印长度;
其中,当前打印数据是仿真平台验证SOC的过程中需要打印到显示器上的数据,可以通过打印器接收打印数据,并对打印数据进行处理,且该打印器需要与打印函数printf()兼容。具体地,打印器接收测试人员预先设置或验证SOC过程中产生的打印信息,对该打印信息进行处理,并将处理后的数据存入缓存中。
优选地,打印器可以通过打印函数实现。比如,预先定义的打印函数为sim_print(),则当调用sim_print(“i=%d”,i)时,该打印函数首先将参数“i”和参数“=”存入缓存;在该打印函数获取到参数“%d”后,查找参数“i”,并将参数“%d”作为参数“i”的值存入缓存。
进一步地,在打印器计算当前打印数据之前,还可以对当前打印数据进行编码,使得编码后的当前打印数据可以在总线上传输。根据当前打印数据计算当前打印长度可以具体为,打印函数在将打印数据存入缓存后,还可以自动计算缓存的深度,即计算编码后的当前打印数据的当前打印长度,此为现有技术,本实施例不作赘述。
步骤304:打印器通过总线向监视器的第二专用地址发送当前打印长度;
其中,总线是传送信息的公用通道,比如,SOC系统中AMBA(AdvancedMicrocontrollerBusArchitecture,先进微控制器总线架构)总线包括的AHB(AdvancedHighperformanceBus,先进高性能总线)和AXI(AdvancedextensibleInterface,先进可扩展接口)等。由于SOC内部基本都是AMBA总线,因此,通过总线发送数据可以平滑移植到其他具有总线结构的系统中,提高了该打印数据的方法的通用性。第二专用地址是监视器中的专用地址,用来接收打印长度。
进一步地,当打印数据较长时,打印器可以将打印数据分批发送给监视器,而监视器仅在接收完全部的打印数据后才对该打印数据进行显示,因此,还需要计算打印数据的打印长度,以便监视器根据该打印长度检测打印数据是否接收完成,并在检测结果为打印数据接收完成后将该打印数据发送给显示器。
步骤306:打印器与CPU(CentralProcessingUnit,中央处理单元)一一对应且打印器至少为一个,监视器在第二专用地址接收至少一个当前打印长度,一个当前打印长度对应于一个CPU编号且该CPU编号由总线进行标识;
由于SOC系统可以包括多个CPU且每一个CPU对应于一个打印器,则若有多个CPU同时打印,即多个打印器同时打印,可能会出现乱码。比如,打印器0的打印长度为10,打印器1的打印长度为15,若打印器0和打印器1同时打印,则可能将打印器1的部分打印数据作为打印器0的打印数据进行打印,导致打印出错。因此,为了避免多打印器同时打印造成的打印出错的问题,可以通过CPU编号对打印器发送的数据进行编号,以根据CPU编号区分打印长度。
进一步地,打印器通过总线向监视器的第二专用地址发送当前打印长度时,总线上的信号可以指示当前发送打印长度的打印器的CPU编号,则监视器可以根据该CPU编号区分打印长度,并将接收到的打印长度存入CPU编号对应的缓存中。其中,不同总线上发送CPU编号的信号不同,比如,AHB总线的hmaster信号;AXI总线的wid信号和awid信号等,该wid信号用来标识打印数据的CPU编号,该awid信号用来标识打印长度的CPU编号。当然,也可以通过其它总线上的信号来标识CPU编号,本实施例不作限定。
具体地,监视器每隔预定时间检测第二专用地址是否接收到数据,若检测到第二专用地址接收到数据,则确定该数据为当前打印长度。
其中,若至少一个打印器通过总线发送至少一个当前打印长度,则监视器接收该至少一个当前打印长度,并根据每一个当前打印长度的CPU编号对该当前打印长度进行缓存。
步骤308:打印器通过总线向监视器的第一专用地址发送当前打印数据;
由于SOC系统可以包含多个CPU且每一个CPU对应于一个打印器,则若有多个CPU同时打印,即多个打印器同时打印,可能会出现乱码。比如,打印器0的打印数据为“dead”,打印器1的打印数据为“beef”,若打印器0和打印器1同时打印,最终屏幕上打印的打印数据可能是“debeadef”,导致打印出错。因此,为了避免多打印器同时打印造成的打印出错的问题,可以通过CPU编号对打印器发送的数据进行编号,以根据CPU编号区分打印数据。
进一步地,打印器通过总线向监视器的第一专用地址发送当前打印数据时,总线上的信号可以指示当前发送打印数据的打印器的CPU编号,则监视器可以根据该CPU编号区分打印数据,并将接收的打印数据存入CPU编号对应的缓存中。其中,不同总线上发送CPU编号的信号不同,比如,AHB总线的hmaster信号;AXI总线的wid信号和awid信号等,该wid信号用来标识打印数据的CPU编号,该awid信号用来标识打印长度的CPU编号。当然,也可以通过其它总线上的信号来标识CPU编号,本实施例不作限定。
进一步地,通过总线向监视器发送当前打印数据时,打印数据可以达到总线的最大带宽,提高了总线利用效率,且不会影响对SOC的其他功能的验证。
步骤310:监视器在第一专用地址获取与当前打印数据对应的CPU编号;在至少一个当前打印长度中,查找与当前打印数据对应的CPU编号对应的当前打印长度;将当前打印数据存储在查找到的当前打印长度对应的缓存中;
具体地,监视器每隔预定时间检测第一专用地址是否接收到数据,若检测到第一专用地址接收到数据,则确定该数据为当前打印数据,并对该当前打印数据进行缓存。
本实施例中,若存在多个打印器同时打印,可以根据CPU编号将同一个打印器发送的打印长度和打印数据存入对应的缓存中,以避免打印错误。具体地,可以在接收到当前打印数据后获取该当前打印数据的CPU编号,在接收到的至少一个打印器发送的至少一个当前打印长度中查找与该CPU编号对应的当前打印长度,并将当前打印数据对应存储到查找到的该当前打印长度对应的缓存中。
步骤312:监视器检测接收到的当前打印数据的总长度是否等于当前打印长度,若检测结果为接收到的当前打印数据的总长度等于当前打印长度,则确定执行步骤314;
本实施例中,监视器可以通过设置数据计数器计算接收到的当前打印数据的总长度。具体地,监视器接收到分批发送的部分当前打印数据后,获取该部分当前打印数据的长度,并根据该长度对数据计数器的数值进行累加,检测该数据计数器的数值是否等于当前打印长度,若检测结果为该数据计数器的数值等于当前打印长度,则执行步骤314;若检测结果为该计数器的数值小于当前打印长度,则继续接收当前打印数据,直至检测结果为该数据计数器的数值等于当前打印长度后,结束接收当前打印数据的流程。
步骤314:监视器将当前打印数据通过专用接口发送给显示器,以便显示器打印当前打印数据。
其中,显示器可以内置于仿真平台,或者,该显示器也可以是独立于仿真平台的外部设备,比如,服务器等,本实施例不作限定。专用接口是仿真平台与显示器的接口,是现有的接口。本实施例不作赘述。
优选地,监视器可以将编码后的当前打印数据解码为当前打印数据,并通过该专用接口将当前打印数据发送给显示器,该显示器对该当前打印数据进行打印,便于测试人员读取该当前打印数据,并根据该当前打印数据快速定位出验证SOC过程中出现的问题,以提高对SOC的验证效率。
综上所述,本发明实施例提供的打印数据的方法,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;获取与所述当前打印数据对应的CPU编号;在至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;将所述当前打印数据存储在查找到的所述当前打印长度对应的缓存中;可以对发送当前打印长度和当前打印数据的打印器进行区分,解决了多打印器同时打印造成的打印出错的问题,达到了提高数据打印的准确性的效果。
实施例三
请参考图4,其示出了本发明实施例二提供的打印数据的方法的方法流程图,该打印数据的方法可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。与实施例二的区别在于,本实施例支持中断打印,该打印数据的方法,包括:
步骤402:打印器接收当前打印数据;根据当前打印数据计算当前打印长度;
其中,当前打印数据是仿真平台验证SOC的过程中需要打印到显示器上的数据,可以通过打印器接收打印数据,并对打印数据进行处理,且该打印器需要与打印函数printf()兼容。具体地,打印器接收测试人员预先设置或验证SOC过程中产生的打印信息,对该打印信息进行处理,并将处理后的数据存入缓存中。
进一步地,在打印器计算当前打印数据之前,还可以对当前打印数据进行编码,使得编码后的当前打印数据可以在总线上传输。根据当前打印数据计算当前打印长度可以具体为,打印函数在将打印数据存入缓存后,还可以自动计算缓存的深度,即计算编码后的当前打印数据的当前打印长度,此为现有技术,本实施例不作赘述。
步骤404:打印器通过总线向监视器的第二专用地址发送当前打印长度;
其中,当打印数据较长时,打印器可以将打印数据分批发送给监视器,而监视器仅在接收完全部的打印数据后才对该打印数据进行显示,因此,还需要计算打印数据的打印长度,以便监视器根据该打印长度检测打印数据是否接收完成,并在检测结果为打印数据接收完成后将该打印数据发送给显示器。
步骤406:打印器与CPU一一对应且打印器至少为一个,监视器在第二专用地址接收至少一个当前打印长度,一个当前打印长度对应于一个CPU编号且CPU编号由总线进行标识;
其中,打印器通过总线向监视器的第二专用地址发送当前打印长度时,总线上的信号可以指示当前发送打印长度的打印器的CPU编号,则监视器可以根据该CPU编号区分打印长度,并将接收到的打印长度存入CPU编号对应的缓存中。其中,不同总线上发送CPU编号的信号不同,比如,AHB总线的hmaster信号;AXI总线的wid信号和awid信号等,该wid信号用来标识打印数据的CPU编号,该awid信号用来标识打印长度的CPU编号。当然,也可以通过其它总线上的信号来标识CPU编号,本实施例不作限定。
具体地,监视器每隔预定时间检测第二专用地址是否接收到数据,若检测到第二专用地址接收到数据,则确定该数据为当前打印长度。
其中,若至少一个打印器通过总线发送至少一个当前打印长度,则监视器接收该至少一个当前打印长度,并根据每一个当前打印长度的CPU编号对该当前打印长度进行缓存。
步骤408:打印器通过总线向监视器的第一专用地址发送当前打印数据;
本实施例中,通过总线向监视器发送当前打印数据时,打印数据可以达到总线的最大带宽,提高了总线利用效率,且不会影响对SOC的其他功能的验证。
优选地,打印器通过总线向监视器的第一专用地址发送当前打印数据时,总线上的信号可以指示当前发送打印数据的打印器的CPU编号,则监视器可以根据该CPU编号区分打印数据,并将接收的打印数据存入CPU编号对应的缓存中。其中,不同总线上发送CPU编号的信号不同,比如,AHB总线的hmaster信号;AXI总线的wid信号和awid信号等,该wid信号用来标识打印数据的CPU编号,该awid信号用来标识打印长度的CPU编号。当然,也可以通过其它总线上的信号来标识CPU编号,本实施例不作限定。
步骤410:监视器在第一专用地址获取与当前打印数据对应的CPU编号;在至少一个当前打印长度中,查找与当前打印数据对应的CPU编号对应的当前打印长度;将当前打印数据存储在查找到的当前打印长度对应的缓存中;
具体地,监视器每隔预定时间检测第一专用地址是否接收到数据,若检测到第一专用地址接收到数据,则确定该数据为当前打印数据,并对该当前打印数据进行缓存。
本实施例中,若存在多个打印器同时打印,可以根据CPU编号将同一个打印器发送的打印长度和打印数据存入对应的缓存中,以避免打印错误。具体地,可以在接收当前打印数据后获取该当前打印数据的CPU编号,在接收到的至少一个打印器发送的至少一个当前打印长度中查找与该CPU编号对应的当前打印长度,并将当前打印数据对应存入查找到的该当前打印长度对应的缓存中。
步骤412:打印器接收打印下一打印数据的请求;检测当前打印数据是否发送完成;若检测结果为当前打印数据未发送完成,则记录当前打印数据的发送长度;接收下一打印数据;根据下一打印数据计算下一打印长度;通过总线向监视器的第二专用地址发送下一打印长度;通过总线向监视器的第一专用地址发送下一打印数据;
本实施例中,由于CPU具有中断功能,增加了打印器的打印难度。比如,当前打印数据为“helloworld”,若打印器将“hello”发送给监视器后CPU接收到中断信号,则CPU进入中断处理程序,假设中断处理程序为打印器打印“chinagreat”,那么,最终打印结果可能是“hellochinagreatworld”,造成打印出错的问题。因此,为了避免造成打印出错的问题,可以在发生中断后,根据打印长度记录打印数据的发送长度,并在处理完中断后,从该发送长度处继续发送打印数据。其中,下一打印长度可以是编码后的下一打印数据的长度,发送长度可以是编码后的当前打印数据的发送长度。
假设根据上述步骤进行数据打印时,计算得到的当前打印长度为10,若打印器通过总线向监视器的第一专用地址发送完第5个当前打印数据后接收到打印下一打印数据的请求,则记录当前打印数据的发送长度为5,并接收下一打印数据,计算得到的下一打印长度为10,通过总线向监视器的第二专用地址发送下一打印长度,并通过总线向监视器的第一专用地址发送下一打印数据。
进一步地,若CPU支持中断嵌套,则可以将中断优先级高的打印数据作为下一打印数据,将中断优先级低的打印数据作为当前打印数据,并根据上述步骤发送该打印数据,此处不赘述。
步骤414:监视器在第二专用地址接收打印器通过总线发送的下一打印长度;检测接收到的当前打印数据的总长度是否小于当前打印长度;若检测结果为接收到的当前打印数据的总长度小于当前打印长度,则在第一专用地址接收打印器通过总线发送的下一打印数据;检测接收到的下一打印数据的总长度是否等于下一打印长度;若检测结果为接收到的下一打印数据的总长度等于下一打印长度,则将下一打印数据通过专用接口发送给显示器,以便显示器打印下一打印数据;
具体地,仍以步骤412中的举例进行说明,则监视器在第一专用地址接收到5个当前打印数据后,将该5个当前打印数据存入缓存中,此时,监视器的第二专用地址接收到下一打印长度10,监视器将接收到下一打印长度10之后在第一专用地址接收的下一打印数据存入另一个缓存中,在接收到的下一打印数据的总长度等于10后,监视器将该下一打印数据发送给显示器。优选地,还可以在打印器计算下一打印长度之前,对下一打印数据进行编码,使得编码后的下一打印数据可以在总线上传输,并计算编码后的下一打印数据的长度。相应的,监视器在接收完下一打印数据后,对该下一打印数据进行解码,并将解码后的下一打印数据发送给显示器进行显示。
相应的,打印器与CPU一一对应且打印器至少为一个,则在第二专用地址接收打印器通过总线发送的下一打印长度,可以包括:
在第二专用地址接收至少一个下一打印长度,一个下一打印长度对应于一个CPU编号且CPU编号由总线进行标识;
在第一专用地址接收打印器通过总线发送的下一打印数据,可以包括:
获取与下一打印数据对应的CPU编号;
在至少一个下一打印长度中,查找与下一打印数据对应的CPU编号对应的下一打印长度;
将下一打印数据存储在查找到的下一打印长度对应的缓存中。
其中,若至少一个打印器通过总线发送至少一个下一打印长度,则监视器根据接收到的与每一个下一打印长度对应的CPU编号对该下一打印长度进行缓存。然后,在接收下一打印数据后获取该下一打印数据对应的CPU编号,在接收到的至少一个打印器发送的至少一个下一打印长度中查找与该CPU编号对应的下一打印长度,并将下一打印数据对应存入查找到的该下一打印长度对应的缓存中。
步骤416:打印器检测下一打印数据是否发送完成;若检测结果为下一打印数据发送完成,则读取当前打印数据的发送长度;从发送长度处继续执行通过总线向监视器的第一专用地址发送当前打印数据的步骤;
仍以步骤412中的举例进行说明,在下一打印数据发送完成后,打印器读取发送长度5,并从当前打印数据中的第6个打印数据处继续发送该当前打印数据,直至发送完该当前打印数据后结束流程。
步骤418:监视器继续执行在第一专用地址接收打印器通过总线发送的当前打印数据的步骤;
仍以步骤414中的举例进行说明,则打印器在第一专用地址继续接收当前打印数据,从当前的接收长度5对数据计数器的数值进行累计,在接收的当前打印数据的总长度等于10后,监视器将当前打印数据发送给显示器。
步骤420:监视器检测接收到的当前打印数据的总长度是否等于当前打印长度,若检测结果为接收到的当前打印数据的总长度等于当前打印长度,则确定执行步骤422;
具体地,监视器检测接收到的当前打印数据的总长度是否等于当前打印长度的流程详见步骤312的描述,此处不赘述。
步骤422:监视器将当前打印数据通过专用接口发送给显示器,以便显示器打印当前打印数据。
其中,显示器可以内置于仿真平台,或者,该显示器也可以是独立于仿真平台的外部设备,比如,服务器等,本实施例不作限定。监视器将编码后的当前打印数据解码为当前打印数据,并通过该专用接口将当前打印数据发送给显示器,该显示器对该当前打印数据进行打印,便于测试人员读取该当前打印数据,并根据该当前打印数据快速定位出验证SOC过程中出现的问题,以提高对SOC的验证效率。
综上所述,本发明实施例提供的打印数据的方法,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第一专用地址接收所述打印器通过总线发送的下一打印数据;检测接收到的所述下一打印数据的总长度是否等于所述下一打印长度;若检测结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器;继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤;解决了打印器中断嵌套造成的打印出错的问题,达到了进一步提高数据打印的准确性的效果。
实施例四
请参考图5,其示出了本发明实施例四提供的监视器的结构框架图,该监视器可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该监视器,包括:
第一接收模块501,用于在第一专用地址接收打印器通过总线发送的当前打印数据;
第一发送模块502,用于将第一接收模块501接收的当前打印数据通过专用接口发送给显示器,以便显示器打印当前打印数据。
综上所述,本发明实施例提供的监视器,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。
实施例五
请参考图6,其示出了本发明实施例五提供的监视器的结构框架图,该监视器可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该监视器,包括:第一接收模块501和第一发送模块502。
进一步地,该监视器还可以包括:
第二接收模块503,用于第一接收模块501在第一专用地址接收打印器通过总线发送的当前打印数据之前,在第二专用地址接收打印器通过总线发送的当前打印长度;
相应的,该监视器还可以包括:
第一检测模块504,用于第一发送模块502将当前打印数据通过专用接口发送给显示器之前,检测接收到的当前打印数据的总长度是否等于当前打印长度;
确定模块505,用于若第一检测模块504检测的结果为接收到的当前打印数据的总长度等于当前打印长度,则确定执行将当前打印数据通过专用接口发送给显示器的步骤。
进一步地,该监视器还可以包括:
第三接收模块506,用于第二接收模块503在第二专用地址接收打印器通过总线发送的当前打印长度之后,在第二专用地址接收打印器通过总线发送的下一打印长度;
第二检测模块507,用于检测第三接收模块506接收到的当前打印数据的总长度是否小于当前打印长度;
第四接收模块508,用于若第二检测模块507检测的结果为接收到的当前打印数据的总长度小于当前打印长度,则在第一专用地址接收打印器通过总线发送的下一打印数据;
第三检测模块509,用于检测第四接收模块508接收到的下一打印数据的总长度是否等于下一打印长度;
第二发送模块510,用于若第三检测模块509检测的结果为接收到的下一打印数据的总长度等于下一打印长度,则将下一打印数据通过专用接口发送给显示器,以便显示器打印下一打印数据;
执行模块511,用于继续执行在第一专用地址接收打印器通过总线发送的当前打印数据的步骤。
进一步地,打印器与CPU一一对应且打印器至少为一个,则第二接收模块503,具体用于在第二专用地址接收至少一个当前打印长度,一个当前打印长度对应于一个CPU编号且该CPU编号由总线进行标识;
相应的,第一接收模块501,可以包括:
第一获取单元501A,用于获取与当前打印数据对应的CPU编号;
第一查找单元501B,用于在第一获取单元501A获取的至少一个当前打印长度中,查找与当前打印数据对应的CPU编号对应的当前打印长度;
第一存储单元501C,用于将当前打印数据存储在第一查找单元501B查找到的当前打印长度对应的缓存中。
进一步地,打印器与CPU一一对应且打印器至少为一个,则第三接收模块506,具体用于在第二专用地址接收至少一个下一打印长度,一个下一打印长度对应于一个CPU编号且该CPU编号由总线进行标识;
相应的,第四接收模块508,可以包括:
第二获取单元508A,用于获取与下一打印数据对应的CPU编号;
第二查找单元508B,用于在第二获取单元508A获取的至少一个下一打印长度中,查找与下一打印数据对应的CPU编号对应的下一打印长度;
第二存储单元508C,用于将下一打印数据存储在第二查找单元508B查找到的下一打印长度对应的缓存中。
综上所述,本发明实施例提供的监视器,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;获取与所述当前打印数据对应的CPU编号;在至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;将所述当前打印数据存储在查找到的所述当前打印长度对应的缓存中;可以对发送当前打印长度和当前打印数据的打印器进行区分,解决了多打印器同时打印造成的打印出错的问题,达到了提高数据打印的准确性的效果。
实施例六
请参考图7,其示出了本发明实施例六提供的打印器的结构框架图,该打印器可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该打印器,包括:
第一接收模块701,用于接收当前打印数据;
第一发送模块702,用于通过总线向监视器的第一专用地址发送第一接收模块701接收的当前打印数据,以便监视器通过专用接口向显示器发送当前打印数据后,显示器打印当前打印数据。
综上所述,本发明实施例提供的打印器,通过接收当前打印数据;通过总线向监视器的第一专用地址发送所述当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。
实施例七
请参考图8,其示出了本发明实施例七提供的打印器的结构框架图,该打印器可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该打印器,包括:第一接收模块701和第一发送模块702。
进一步地,该打印器,还可以包括:
第一计算模块703,用于第一发送模块701通过总线向监视器的第一专用地址发送当前打印数据之前,根据当前打印数据计算当前打印长度;
第二发送模块704,用于通过总线向监视器的第二专用地址发送第一计算模块703计算出的当前打印长度。
进一步地,该打印器,还可以包括:
第二接收模块705,用于第二发送模块704通过总线向监视器的第二专用地址发送当前打印长度之后,接收打印下一打印数据的请求;
第一检测模块706,用于第二接收模块705接收打印下一打印数据的请求后,检测当前打印数据是否发送完成;
记录模块707,用于若第一检测模块706检测的结果为当前打印数据未发送完成,则记录当前打印数据的发送长度;
第三接收模块708,用于记录模块707记录当前打印数据的发送长度后,接收下一打印数据;
第二计算模块709,用于根据第三接收模块708接收的下一打印数据计算下一打印长度;
第三发送模块710,用于通过总线向监视器的第二专用地址发送第二计算模块709计算出的下一打印长度;
第四发送模块711,用于通过总线向监视器的第一专用地址发送第三接收模块708接收的下一打印数据;
第二检测模块712,用于第四发送模块711通过总线向监视器的第一专用地址发送接收的下一打印数据之后,检测下一打印数据是否发送完成;
读取模块713,用于若第二检测模块712检测的结果为下一打印数据发送完成,则读取当前打印数据的发送长度;
执行模块714,用于读取模块713读取当前打印数据的发送长度后,从记录模块707记录的发送长度处继续执行通过总线向监视器的第一专用地址发送当前打印数据的步骤。
综上所述,本发明实施例提供的打印器,通过接收当前打印数据;通过总线向监视器的第一专用地址发送所述当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第一专用地址接收所述打印器通过总线发送的下一打印数据;检测接收到的所述下一打印数据的总长度是否等于所述下一打印长度;若检测结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器;继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤;解决了打印器中断嵌套造成的打印出错的问题,达到了进一步提高数据打印的准确性的效果。
实施例八
请参考图9,其示出了本发明实施例八提供的监视器的结构框架图,该监视器可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该监视器,包括:
接收机901,用于在第一专用地址接收打印器通过总线发送的当前打印数据;
处理器902,用于对接收机901接收的当前打印数据进行处理;
发射机903,用于将处理器902处理后的当前打印数据通过专用接口发送给显示器,以便显示器打印当前打印数据。
进一步地,该接收机901,用于在第一专用地址接收打印器通过总线发送的当前打印数据之前,在第二专用地址接收打印器通过总线发送的当前打印长度;
相应的,该处理器902,还用于发射机903将当前打印数据通过专用接口发送给显示器之前,检测接收到的当前打印数据的总长度是否等于当前打印长度;若检测结果为接收到的当前打印数据的总长度等于当前打印长度,则确定执行将当前打印数据通过专用接口发送给显示器的步骤。
进一步地,该接收机901,还用于在第二专用地址接收打印器通过总线发送的当前打印长度之后,在第二专用地址接收打印器通过总线发送的下一打印长度;
处理器902,还用于检测接收机901接收到的当前打印数据的总长度是否小于当前打印长度;
接收机901,还用于若处理器902检测的结果为接收到的当前打印数据的总长度小于当前打印长度,则在第一专用地址接收打印器通过总线发送的下一打印数据;
处理器902,还用于检测接收机901接收到的下一打印数据的总长度是否等于下一打印长度;
发射机903,还用于若处理器902检测的结果为接收到的下一打印数据的总长度等于下一打印长度,则将下一打印数据通过专用接口发送给显示器,以便显示器打印下一打印数据;
接收机901,还用于继续在第一专用地址接收打印器通过总线发送的当前打印数据。
进一步地,打印器与CPU一一对应且打印器至少为一个,则接收机901,具体用于在第二专用地址接收至少一个当前打印长度,一个当前打印长度对应于一个CPU编号且该CPU编号由总线进行标识;
相应的,处理器902,具体用于获取与接收机901接收的当前打印数据对应的CPU编号;在至少一个当前打印长度中,查找与当前打印数据对应的CPU编号对应的当前打印长度;将当前打印数据存储在查找到的当前打印长度对应的缓存中。
进一步地,打印器与CPU一一对应且打印器至少为一个,则接收机901,具体用于在第二专用地址接收至少一个下一打印长度,一个下一打印长度对应于一个CPU编号且该CPU编号由总线进行标识;
相应的,处理器902,具体用于获取与接收机901接收的下一打印数据对应的CPU编号;在至少一个下一打印长度中,查找与下一打印数据对应的CPU编号对应的下一打印长度;将下一打印数据存储在查找到的下一打印长度对应的缓存中。
综上所述,本发明实施例提供的监视器,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;获取与所述当前打印数据对应的CPU编号;在至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;将所述当前打印数据存储在查找到的所述当前打印长度对应的缓存中;可以对发送当前打印长度和当前打印数据的打印器进行区分,解决了多打印器同时打印造成的打印出错的问题,达到了提高数据打印的准确性的效果。
实施例九
请参考图10,其示出了本发明实施例九提供的打印器的结构框架图,该打印器可以应用于仿真平台中,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现。该打印器,包括:
接收机1001,用于接收当前打印数据;
处理器1002,用于对接收机1001接收的当前打印数据进行处理;
发射机1003,用于通过总线向监视器的第一专用地址发送处理器1002处理后的当前打印数据,以便监视器通过专用接口向显示器发送当前打印数据后,显示器打印当前打印数据。
进一步地,该处理器1002,还用于发射机1003通过总线向监视器的第一专用地址发送当前打印数据之前,根据当前打印数据计算当前打印长度;
发射机1003,用于通过总线向监视器的第二专用地址发送处理器1002计算出的当前打印长度。
进一步地,该接收机1001,还用于发射机1003通过总线向监视器的第二专用地址发送当前打印长度之后,接收打印下一打印数据的请求;
处理器1002,还用于接收机1001接收打印下一打印数据的请求后,检测当前打印数据是否发送完成;若检测的结果为当前打印数据未发送完成,则记录当前打印数据的发送长度;
接收机1001,还用于处理器1002记录当前打印数据的发送长度后,接收下一打印数据;
处理器1002,还用于根据接收机1001接收的下一打印数据计算下一打印长度;
发射机1003,用于通过总线向监视器的第二专用地址发送处理器1002计算出的下一打印长度;通过总线向监视器的第一专用地址发送接收机1001接收的下一打印数据;
处理器1002,用于发射机1003通过总线向监视器的第一专用地址发送接收的下一打印数据之后,检测下一打印数据是否发送完成;若检测的结果为下一打印数据发送完成,则读取当前打印数据的发送长度;
接收机1001,还用于处理器1002读取当前打印数据的发送长度后,从处理器1002记录的发送长度处继续通过总线向监视器的第一专用地址发送当前打印数据。
综上所述,本发明实施例提供的打印器,通过接收当前打印数据;通过总线向监视器的第一专用地址发送所述当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第一专用地址接收所述打印器通过总线发送的下一打印数据;检测接收到的所述下一打印数据的总长度是否等于所述下一打印长度;若检测结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器;继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤;解决了打印器中断嵌套造成的打印出错的问题,达到了进一步提高数据打印的准确性的效果。
实施例十
请参考图11,其示出了本发明实施例十提供的仿真平台的结构框架图。该仿真平台,该仿真平台可以由硬件实现,比如,仿真加速器等;或者,该仿真平台也可以由软件实现,比如ESL平台等;或者,该仿真平台还可以由软硬件结合实现,包括监视器1101和打印器1102。
其中,监视器1101可以是实施例四或实施例五或实施例八中的监视器;打印器1102可以是实施例六或实施例七或实施例九中的打印器。
综上所述,本发明实施例提供的仿真平台,通过在第一专用地址接收打印器通过总线发送的当前打印数据;将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据,解决了打印器无法将打印数据输出到显示器,导致显示器无法打印该打印数据,降低了对SOC的验证效率,提高了对SOC的验证成本的问题,达到了提高对SOC的验证效率,降低对SOC的验证成本的效果。另外,通过在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;获取与所述当前打印数据对应的CPU编号;在至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;将所述当前打印数据存储在查找到的所述当前打印长度对应的缓存中;可以对发送当前打印长度和当前打印数据的打印器进行区分,解决了多打印器同时打印造成的打印出错的问题,达到了提高数据打印的准确性的效果。
需要说明的是:上述实施例提供的监视器、打印器和仿真平台在进行打印数据的时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将监视器、打印器和仿真平台的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的监视器、打印器和仿真平台与打印数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过来完成,也可以通过程序来指令相关的完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种打印数据的方法,其特征在于,所述方法包括:
在第一专用地址接收打印器通过总线发送的当前打印数据;
将所述当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据;
所述在第一专用地址接收打印器通过总线发送的当前打印数据之前,还包括:
在第二专用地址接收所述打印器通过所述总线发送的当前打印长度;
相应的,所述将所述当前打印数据通过专用接口发送给显示器之前,还包括:
检测接收到的所述当前打印数据的总长度是否等于所述当前打印长度;
若检测结果为接收到的所述当前打印数据的总长度等于所述当前打印长度,则确定执行所述将所述当前打印数据通过专用接口发送给显示器的步骤。
2.根据权利要求1所述的打印数据的方法,其特征在于,所述在第二专用地址接收所述打印器通过所述总线发送的当前打印长度之后,还包括:
在所述第二专用地址接收所述打印器通过所述总线发送的下一打印长度;
检测接收到的所述当前打印数据的总长度是否小于所述当前打印长度;
若检测结果为接收到的所述当前打印数据的总长度小于所述当前打印长度,则在所述第一专用地址接收所述打印器通过所述总线发送的下一打印数据;
检测接收到的所述下一打印数据的总长度是否等于所述下一打印长度;
若检测结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器,以便所述显示器打印所述下一打印数据;
继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤。
3.根据权利要求1或2所述的打印数据的方法,其特征在于,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则所述在第二专用地址接收所述打印器通过总线发送的当前打印长度,包括:
在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述在第一专用地址接收打印器通过总线发送的当前打印数据,包括:
获取与所述当前打印数据对应的CPU编号;
在至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;
将所述当前打印数据存储在查找到的所述当前打印长度对应的缓存中。
4.根据权利要求2所述的打印数据的方法,其特征在于,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则所述在所述第二专用地址接收所述打印器通过总线发送的下一打印长度,包括:
在所述第二专用地址接收至少一个所述下一打印长度,一个所述下一打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述在第一专用地址接收所述打印器通过总线发送的下一打印数据,包括:
获取与所述下一打印数据对应的CPU编号;
在至少一个所述下一打印长度中,查找所述与所述下一打印数据对应的CPU编号对应的下一打印长度;
将所述下一打印数据存储在查找到的所述下一打印长度对应的缓存中。
5.一种打印数据的方法,其特征在于,所述方法包括:
接收当前打印数据;
通过总线向监视器的第一专用地址发送所述当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据;
所述通过总线向监视器的第一专用地址发送所述当前打印数据之前,还包括:
根据所述当前打印数据计算当前打印长度;
通过所述总线向所述监视器的第二专用地址发送所述当前打印长度。
6.根据权利要求5所述的打印数据的方法,其特征在于,所述通过所述总线向所述监视器的第二专用地址发送所述当前打印长度之后,还包括:
接收打印下一打印数据的请求;
检测所述当前打印数据是否发送完成;
若检测结果为所述当前打印数据未发送完成,则记录所述当前打印数据的发送长度;
接收下一打印数据;
根据所述下一打印数据计算下一打印长度;
通过所述总线向所述第二专用地址发送所述下一打印长度;
通过所述总线向所述第一专用地址发送所述下一打印数据;
检测所述下一打印数据是否发送完成;
若检测结果为所述下一打印数据发送完成,则读取所述发送长度;
从所述发送长度处继续执行所述通过总线向监视器的第一专用地址发送所述当前打印数据的步骤。
7.一种监视器,其特征在于,所述监视器包括:
第一接收模块,用于在第一专用地址接收打印器通过总线发送的当前打印数据;
第一发送模块,用于将所述第一接收模块接收的当前打印数据通过专用接口发送给显示器,以便所述显示器打印所述当前打印数据;
所述监视器,还包括:
第二接收模块,用于所述第一接收模块在第一专用地址接收打印器通过总线发送的当前打印数据之前,在第二专用地址接收所述打印器通过所述总线发送的当前打印长度;
相应的,所述监视器,还包括:
第一检测模块,用于所述第一发送模块将所述当前打印数据通过专用接口发送给显示器之前,检测接收到的所述当前打印数据的总长度是否等于所述当前打印长度;
确定模块,用于若所述第一检测模块检测的结果为接收到的所述当前打印数据的总长度等于所述当前打印长度,则确定执行所述将所述当前打印数据通过专用接口发送给显示器的步骤。
8.根据权利要求7所述的监视器,其特征在于,所述监视器,还包括:
第三接收模块,用于所述第二接收模块在第二专用地址接收所述打印器通过所述总线发送的当前打印长度之后,在所述第二专用地址接收所述打印器通过所述总线发送的下一打印长度;
第二检测模块,用于检测所述第三接收模块接收到的所述当前打印数据的总长度是否小于所述当前打印长度;
第四接收模块,用于若所述第二检测模块检测的结果为接收到的所述当前打印数据的总长度小于所述当前打印长度,则在所述第一专用地址接收所述打印器通过所述总线发送的下一打印数据;
第三检测模块,用于检测所述第四接收模块接收到的所述下一打印数据的总长度是否等于所述下一打印长度;
第二发送模块,用于若所述第三检测模块检测的结果为接收到的所述下一打印数据的总长度等于所述下一打印长度,则将所述下一打印数据通过所述专用接口发送给所述显示器,以便所述显示器打印所述下一打印数据;
执行模块,用于继续执行所述在第一专用地址接收打印器通过总线发送的当前打印数据的步骤。
9.根据权利要求7或8所述的监视器,其特征在于,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则第二接收模块,具体用于在所述第二专用地址接收至少一个所述当前打印长度,一个所述当前打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述第一接收模块,包括:
第一获取单元,用于获取与所述当前打印数据对应的CPU编号;
第一查找单元,用于在所述第一获取单元获取的至少一个所述当前打印长度中,查找所述与所述当前打印数据对应的CPU编号对应的当前打印长度;
第一存储单元,用于将所述当前打印数据存储在所述第一查找单元查找到的所述当前打印长度对应的缓存中。
10.根据权利要求8所述的监视器,其特征在于,所述打印器与中央处理单元CPU一一对应且所述打印器至少为一个,则第三接收模块,具体用于在所述第二专用地址接收至少一个所述下一打印长度,一个所述下一打印长度对应于一个CPU编号且所述CPU编号由所述总线进行标识;
相应的,所述第四接收模块,包括:
第二获取单元,用于获取与所述下一打印数据对应的CPU编号;
第二查找单元,用于在所述第二获取单元获取的至少一个所述下一打印长度中,查找所述与所述下一打印数据对应的CPU编号对应的下一打印长度;
第二存储单元,用于将所述下一打印数据存储在所述第二查找单元查找到的所述下一打印长度对应的缓存中。
11.一种打印器,其特征在于,所述打印器包括:
第一接收模块,用于接收当前打印数据;
第一发送模块,用于通过总线向监视器的第一专用地址发送所述第一接收模块接收的当前打印数据,以便所述监视器通过专用接口向显示器发送所述当前打印数据后,所述显示器打印所述当前打印数据;
第一计算模块,用于所述第一发送模块通过总线向监视器的第一专用地址发送所述当前打印数据之前,根据所述当前打印数据计算当前打印长度;
第二发送模块,用于通过所述总线向所述监视器的第二专用地址发送所述第一计算模块计算出的当前打印长度。
12.根据权利要求11所述的打印器,其特征在于,所述打印器,还包括:
第二接收模块,用于所述第二发送模块通过所述总线向所述监视器的第二专用地址发送所述当前打印长度之后,接收打印下一打印数据的请求;
第一检测模块,用于所述第二接收模块接收打印下一打印数据的请求后,检测所述当前打印数据是否发送完成;
记录模块,用于若所述第一检测模块检测的结果为所述当前打印数据未发送完成,则记录所述当前打印数据的发送长度;
第三接收模块,用于所述记录模块记录所述当前打印数据的发送长度之后,接收下一打印数据;
第二计算模块,用于根据所述第三接收模块接收的下一打印数据计算下一打印长度;
第三发送模块,用于通过所述总线向所述第二专用地址发送所述第二计算模块计算出的下一打印长度;
第四发送模块,用于通过所述总线向所述第一专用地址发送所述第三接收模块接收的下一打印数据;
第二检测模块,用于所述第四发送模块通过总线向所述监视器的第一专用地址发送接收的下一打印数据之后,检测所述下一打印数据是否发送完成;
读取模块,用于若所述第二检测模块检测的结果为所述下一打印数据发送完成,则读取所述发送长度;
执行模块,用于所述读取模块读取所述当前打印数据的发送长度之后,从所述记录模块记录的所述发送长度处继续执行所述通过总线向监视器的第一专用地址发送所述当前打印数据的步骤。
13.一种仿真平台,其特征在于,所述仿真平台包括如权利要求7至10任一所述的监视器和如权利要11或12所述的打印器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310075938.5A CN103164177B (zh) | 2013-03-11 | 2013-03-11 | 打印数据的方法、监视器、打印器及仿真平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310075938.5A CN103164177B (zh) | 2013-03-11 | 2013-03-11 | 打印数据的方法、监视器、打印器及仿真平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164177A CN103164177A (zh) | 2013-06-19 |
CN103164177B true CN103164177B (zh) | 2016-01-06 |
Family
ID=48587302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310075938.5A Expired - Fee Related CN103164177B (zh) | 2013-03-11 | 2013-03-11 | 打印数据的方法、监视器、打印器及仿真平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164177B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106541716B (zh) * | 2015-09-17 | 2018-09-14 | 北大方正集团有限公司 | 一种用于测试打印控制系统的喷头仿真板和打印测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577239A (zh) * | 2003-06-30 | 2005-02-09 | 三星电子株式会社 | 多功能产品的打印方法和设备及其计算机可读记录介质 |
CN101159492A (zh) * | 2007-09-11 | 2008-04-09 | Ut斯达康通讯有限公司 | 一种用于sdh逻辑设计的仿真验证系统及其方法 |
CN101178686A (zh) * | 2007-12-11 | 2008-05-14 | 华为技术有限公司 | 信息处理方法及系统、bios及操作系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4174724B2 (ja) * | 2004-03-24 | 2008-11-05 | 富士フイルム株式会社 | 画像検定装置、画像検定方法及びプログラム |
-
2013
- 2013-03-11 CN CN201310075938.5A patent/CN103164177B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577239A (zh) * | 2003-06-30 | 2005-02-09 | 三星电子株式会社 | 多功能产品的打印方法和设备及其计算机可读记录介质 |
CN101159492A (zh) * | 2007-09-11 | 2008-04-09 | Ut斯达康通讯有限公司 | 一种用于sdh逻辑设计的仿真验证系统及其方法 |
CN101178686A (zh) * | 2007-12-11 | 2008-05-14 | 华为技术有限公司 | 信息处理方法及系统、bios及操作系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103164177A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918302B (zh) | 车载自动化测试方法、装置、车载多媒体系统及汽车 | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
US7971110B2 (en) | System and method for testing a serial attached small computer system interface | |
CN113434355B (zh) | 模块验证方法、uvm验证平台、电子设备及存储介质 | |
CN110321260B (zh) | 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台 | |
CN116256621B (zh) | 芯粒的测试方法、装置、电子设备及存储介质 | |
CN105630683A (zh) | 一种云测试体系架构 | |
CN111897660A (zh) | 模型部署方法、模型部署装置及终端设备 | |
CN114662427B (zh) | 一种逻辑系统设计的调试方法及设备 | |
CN103164177B (zh) | 打印数据的方法、监视器、打印器及仿真平台 | |
CN116306398A (zh) | 一种多通道io接口ip的验证平台及其停止算法 | |
CN108334448B (zh) | 代码验证方法、装置及设备 | |
CN103759951B (zh) | 可同时测量多台农机车的制动性能测试仪的测试方法 | |
CN115240092A (zh) | 输电杆塔巡检方法、装置、电子设备及存储介质 | |
CN114970428A (zh) | 用于SoC中Flexray总线控制器的验证系统及方法 | |
CN107678967B (zh) | 单元测试覆盖率生成方法、装置、可读存储介质及设备 | |
CN113254290A (zh) | 一种内存颗粒多维测试方法、装置、系统和可读存储介质 | |
CN112380133A (zh) | 一种指令集模拟器利用功能库仿真的方法及装置 | |
CN111124743B (zh) | 基于DiskArbitration的磁盘枚举方法、设备及计算机可读存储介质 | |
CN111143144B (zh) | 一种具有错误注入和可移植性的芯片验证方法及验证平台 | |
CN107562617B (zh) | 一种基于nc系统中的模块验证系统 | |
US20220058109A1 (en) | Method for debugging computer program, device employing method, and storage medium | |
CN116976404A (zh) | 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 | |
CN116244932A (zh) | 对车辆进行安全仿真的方法、电子设备及存储介质 | |
CN117632685A (zh) | 一种数据分析方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160106 Termination date: 20180311 |
|
CF01 | Termination of patent right due to non-payment of annual fee |