首页 / 仿真方法

仿真方法无效专利 发明

技术内容

技术领域 本发明涉及仿真技术,特别是仿真技术中的下载技术。 背景技术 随着芯片集成度和复杂度越来越高,硬件仿真变得越来越难,也越来越 费时。在硬件仿真中,主机与仿真器或者调试工具相连接,并通过仿真器或 调试工具的接口,连接到目标板,从而在目标板上实现所需要进行的仿真调 试。目标板主要被用于提供仿真平台、实现仿真调试。使用仿真器则是因为, 在很多情况下,目标板系统往往不能运行,或者运行结果和仿真器环境下不 一致,而如果没有连接仿真器,将无法观察各种软件状态,对分析问题造成 一定困难。 一般来说,在仿真过程中,往往需要完成多个文件下载的任务。例如, 硬件人员需要利用编写的测试程序,通过在仿真环境下,控制用户软件的运 行,并且使用断点、单步跟踪和查看变量、CPU寄存器、存储器等数值的方 法,来查找问题或证明其设计的正确性,因此,首先需要完成对这些测试软 件的下载。 现有技术中,在进行下载操作时,通过仿真器将主机中的目标指令逐条 传输至目标板,每传输一条,目标板便对所接收的目标指令进行执行,包括 对其进行解析,提取数据地址和操作信息,并且根据所提取出的信息,从仿 真器上或通过仿真器从主机上下载数据;当该条目标指令所指示的数据传输 完成后,按照该条指令中的操作信息,从仿真器上或通过仿真器从主机上下 载下一条目标指令。也就是说,在完成一项下载任务的操作过程中,目标板 需要下载每条目标指令后,逐条对其进行执行,从而使得目标板和仿真器之 间需要进行多次的握手,不仅花费了很多时间,也占据了大量的带宽。 申请号为200410098912.3的中国发明专利申请中就公布了一种单板软件 下载方法和装置,其中,通过在一单板上预留下载接口作为外围存储区接口, 在软件下载时,在所述接口上挂接一用于下载软件的下载板,通过启动下载 板中启动程序,将程序代码写入所述单板的程序内存中。但是,所述下载过 程仅适用于单板批量生产时的软件下载,并且由于所述单板与所述下载板之 间通过存储接口进行数据或程序的传输,因而并不关心大量的下载指令是否 会造成大量时间和带宽的占用,而这种方案并不适用于调试过程中目标板与 仿真器之间通过JTAG接口进行通信,对所需要使用的指令和数据进行下载; 另外,所述下载板只是起到处理器外围存储器的作用,并不能如仿真器一般 起到对调试过程进行状态监控的作用。 发明内容 本发明解决的问题是提高仿真速度,节约传输带宽。 为解决上述问题,本发明提供了一种仿真方法,执行单次下载任务包括: 仿真器接收开始下载指令;仿真器根据所述开始下载指令,将与执行所述下 载任务相关的所有目标指令发送给目标板;目标板接收完所述所有目标指令 之后,逐条进行执行,从所述仿真器或者通过所述仿真器从主机下载数据。 可选的,所述目标指令传输和所述数据传输通过JTAG接口进行。 可选的,所述将与执行所述下载任务相关的所有目标指令发送给目标板 包括:仿真器对所接收到的开始下载指令进行解析,提取操作信息和地址信 息;仿真器从所述地址信息中提取与执行所述下载任务相关的所有目标指令; 仿真器根据所获得的操作信息,将所述目标指令传输至目标板。 可选的,所述目标板接收目标指令之后的过程,包括:目标板保存所接 收的目标指令;目标板逐条提取所述目标指令,并进行执行,从所述仿真器 或者通过所述仿真器从主机下载数据。 可选的,所述仿真器接收开始下载指令之前还包括:仿真器从主机获得 与执行所述下载任务相关的需要进行调试的目标指令和数据。 可选的,所述仿真器从主机获得需要进行调试的目标指令和数据,通过 RS232协议串口、或并口、或USB接口、或以太网接口进行。 与现有技术相比,本发明通过先将执行单次下载任务的所有目标指令进 行传输,然后通过目标板的存储和逐条执行,完成数据的下载,从而减少了 仿真器和目标板握手的次数,缩短了下载时间,并且也提高了仿真效率,节 约了带宽。 附图说明 图1是本发明仿真方法实施方式的流程图; 图2是本发明仿真方法具体实施方式中,仿真器、主机、目标板的结构 示意图; 图3是本发明仿真方法具体实施例的流程图。 具体实施方式 在仿真过程中,本发明的各种实施方式减少了下载过程中目标板和仿真 器之间的握手次数,从而缩短了通信时间,减小了传输带宽。 参考图1,本发明提供了一种仿真方法,其中,执行单次下载任务的过程 包括:步骤S 100,仿真器接收开始下载指令;步骤S200,仿真器根据所述开 始下载指令,将与执行所述下载任务相关的所有目标指令发送给目标板;步 骤S300,目标板接收完所述所有目标指令之后,逐条进行执行,从所述仿真 器或者通过所述仿真器从主机下载数据。 下面结合附图,具体对本发明实施方式进行详细描述。 步骤S100,仿真器接收开始下载指令。其中,所述开始下载指令可包括 地址信息以及操作指令等。所述地址信息可包括用于所述目标板执行该次下 载任务所需的目标指令的存储地址。所述操作信息可包括用于指示所述仿真 器执行传输目标指令的操作。 在其它的实施方式中,在步骤S100之前还可以包括:仿真器从主机获得 需要进行调试的目标指令和数据。仿真器可通过以太网的传输,从主机处获 得目标指令和数据,并进行保存。 步骤S200,仿真器根据所述开始下载指令,将执行所述下载任务相关的 所有目标指令发送给目标板。 在具体实施中,首先,仿真器对所接收到的开始下载指令进行解析,提 取所述操作信息和所述地址信息。 其次,仿真器根据所获得的地址信息,获取所需要进行传输的所有的目 标指令。一般来说,仿真器从主机获取目标指令和数据之后,将其保存在仿 真器的内存模块中。当仿真器解析得到所述地址信息之后,根据所述地址信 息,从对应的内存模块中提取需要进行传输的下载指令。 接着,仿真器根据所获得的操作信息,将所有相关的目标指令传输至目 标板。其中,所述目标指令传输结束之前不进行数据的传输。 具体来说,在传输指令或数据之前,仿真器与目标板需要采用握手信号 进行相互识别。握手信号是一种常用的相互识别的信号,用于在两台计算机 或其他设备之间实现通信或传递信息。举个例子,接收方具有RTS(Request to Send)信号和DTS信号,发送方具有CTS(Clear to Send)信号和DSR信号。 当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就 绪,它置高CTS,表示它即将发送数据。类似的,还有DTR(Data Teminal Ready)信号和DSR(Data Set Ready)信号,用于传输数据信号。 也就是说,每当目标板和仿真器之间要进行一次传输时,首先就需要通 过握手信号建立连接,当握手次数越多的情况下,由于每次握手需要等待对 方进行回应,因此所花费的时间也就越长。 步骤S300,目标板接收完所述所有的相关目标指令之后,逐条进行执行。 具体来说,首先,目标板将所述所有的相关目标指令保存在目标板的内存单 元,接着,开始逐条执行所述目标指令:在执行过程中,先读取所保存的目 标指令,提取其中的地址信息和操作信息;然后,根据所述操作信息,进行 执行,可包括:选择读取下一条目标指令,或者从仿真器中或通过仿真器从 主机下载数据,或者对接收的数据进行存储。 参考图2,仿真器201、主机202和目标板203,主机202与仿真器201 相连接,仿真器201通过JTAG接口与目标板203的JTAG端口相连接,其中, 目标板203至少包括指令寄存器和数据寄存器。 本发明仿真方法的具体实施方式中,一方面,将仿真器201与主机202, 通过RS232协议串口、或并口、或USB接口、或以太网接口、或其它接口相 连接。在进行调试之前,仿真器201从主机202获得需要进行调试的程序和 数据。具体来说,采用ICE接口协议转换器,将所获得的程序和数据放入ICE 接口协议转换器的闪存中。在下载操作中,所获得的程序和数据具体可包括 目标板执行下载任务的目标指令和数据。 另一方面,仿真器201与目标板203之间,通过JTAG接口相连接,进行 通信。具体地来说,仿真器201通过JTAG接口,对目标板203相关数据寄存 器和指令寄存器进行访问。JTAG(Joint Test Action Group,联合测试行动组) 是一种国际标准测试协议(IEEE 1149.1兼容),其主要功能之一,就是用于对 各类芯片以及芯片的外围设备进行调试。 具体来说,JTAG接口通过在目标板203内部定义一个TAP(Test Access Port,测试访问端口),访问目标板203所提供的所有数据寄存器和指令寄存 器。其中,TAP至少包含:时钟信号TCK,用于提供基本时钟信号;模式选 择信号TMS,用于控制TAP在不同的状态间进行转换;数据输入信号TDI, 用于将所有要输入到特定寄存器的数据在TCK驱动下一位一位串行输入,以 及数据输出信号TDO,用于将所有要从特定寄存器输出的数据在TCK驱动下 一位一位串行输出。TAP的状态通过TAP控制器来控制,TAP控制器是一个 16位的状态机,负责测试信号指令的输入、输出、指令解码等。 目标板203上电之后,TAP控制器自动进入Test-Logic Reset状态,然后 依次进入Run-Test/Idle、Select-DR-Scan、Select-IR-Scan、Capture-IR、Shift-IR、 Exit-IR、Update-IR状态,最后回到Run-Test/Idle状态。在此过程中,状态 的转移都是通过TCK信号,具体来说,是TCK信号的上升沿,进行驱动, 并且通过TMS信号对TAP的状态进行选择转换的。 其中,在Capture-IR状态下,一个特定的逻辑序列被加载到指令寄存器 中;在Shift-IR状态下,可以将一条特定的指令送到指令寄存器中;在Update-IR 状态下,刚才输入到指令寄存器中的指令将用来更新指令寄存器。最后,系 统又回到Run-Test/Idle状态,指令生效,完成对指令寄存器的访问。当系统 又返回到Run-Test/Idle状态后,根据前面指令寄存器的内容选定所需要的数 据寄存器,开始执行对数据寄存器的工作。其基本原理与指令其存器的访问 完全相同,依次为select-DR-Scan、Capture-DR、Shift-D、Exit-DR、Update-DR, 最后回到Run-Test/Idle状态。通过TDI和TDO,就可以将新的数据加载到 数据寄存器中。经过一个周期后,就可以捕获数据寄存器中的数据,完成对 与数据寄存器的每个寄存器单元相连的目标板203引脚的数据更新,也完成 了对数据寄存器的访问。 其中,参考图3,执行单次下载任务,具体可包括: 步骤S301,ICE接口协议转换器201与主机202相连接,获得执行该次 下载任务的程序和待下载的数据。具体来说,ICE接口协议转换器201通过与 主机202进行通信,将所获得的待下载数据和目标指令存入ICE接口协议转 换器201的闪存中。 步骤S302,ICE接口协议转换器201接收开始下载指令。其中,开始下 载指令可包括目标指令的地址信息、进行下载的操作信息,还可包括需要传 输至目标板的所有目标指令的长度。 步骤S303,ICE接口协议转换器201对所述开始下载指令进行解析,根 据所解析的结果,获取存储在闪存中的目标指令。所述解析包括获取所述开 始下载指令中的地址信息、操作信息以及下载长度。 步骤S304,ICE接口协议转换器201将所述目标指令传输至目标板203。 当传输长度到达所述所有目标指令的长度时,结束目标指令的传输。 步骤S305,目标板203接收所述目标指令,并进行保存。 步骤S306,目标板203逐条执行所述目标指令,根据所述目标指令,从 ICE接口协议转换器201下载数据。 相较于现有技术在传输目标指令的同时,对每条所传输的目标指令进行 执行,以及根据该条目标指令,从仿真器或通过仿真器从主机下载对应的数 据,本发明实施方式在执行下载任务时,先将目标指令全部传输至执行下载 任务的目标板,而不对数据进行传输;当所述目标指令全部传输完之后,目 标板逐条执行所述目标指令,并根据所述目标指令,完成数据的下载。 现有技术在下载每条目标指令之后,就执行该条目标指令,执行结束之 后再和仿真器通信,下载下一条目标指令。因此,对于下载每条目标指令, 目标板都需要与仿真器进行通信。但是由于有些目标指令并不需要对数据进 行处理,因而当所述目标指令被全部下载并保存在目标板中时,目标板能够 直接对此类目标指令进行处理,而不需要对每条目标指令与仿真器通信,减 少了仿真过程目标板和仿真器之间的握手次数,从而减少了下载时间,并且 也节约了带宽。特别是当下载数据量较大,例如目标指令超过1000条时,本 发明实施方式将所述目标指令全部传输并保存至目标板之后,目标板逐条执 行所述目标指令,并根据所述目标指令,与仿真器传输数据,从而有效地缩 短了仿真时间。 虽然本发明已通过较佳实施例说明如上,但这些较佳实施例并非用以限 定本发明。本领域的技术人员,在不脱离本发明的精神和范围内,应有能力 对该较佳实施例做出各种改正和补充,因此,本发明的保护范围以权利要求 书的范围为准。

相关技术
梁丰发明人的其他相关专利技术