一种多核dsp软件仿真器及其物理层软件测试方法

文档序号:8430641阅读:604来源:国知局
一种多核dsp软件仿真器及其物理层软件测试方法
【技术领域】
[0001]本发明涉及通讯技术领域,特别涉及一种多核DSP软件仿真器及其物理层软件测试方法。
【背景技术】
[0002]随着移动通信技术的快速发展,移动终端芯片的软硬件复杂度也在随之不断提高。单核心架构所提供的计算能力已经难以满足物理层协议栈的需要,很多移动终端物理层开始采用多核心架构,也就是用多个DSP核(处理器)协同完成物理层的功能。多核DSP方案具有很好的灵活性和扩展性,但是也给物理层软件的测试增加了复杂度。因为在软件硬件并行开发的流程中,硬件开发完成并回片之前,需要对软件进行充分的验证,以缩短研发周期。这个时候,就迫切需要一个软件仿真器,用于模拟多核DSP处理器的行为,以代替实际的芯片及单板,对物理层软件进行验证。
[0003]目前,多核DSP软件仿真器及基于该仿真器的测试方法有以下几种:
[0004](I)利用DSP开发套件里的simulator (模拟器)来对物理层软件进行测试。DSP核设计公司提供的Simulator虽然可以模拟DSP的指令集和pipeline (传输途径),甚至可以从时钟精度上模拟对不同属性内存的访问,但是它只能模拟单核,不能模拟多核的并行运行。在用simulator进行测试时,只能把原本部署在多个核上的任务都放在一个核上运行,这样不仅增加了移植代码的工作量,还无法测试核间交互、同步的过程。
[0005](2)将物理层协议栈运行所依赖的实时操作系统移植到PC机上,并在windows上模拟 MAC (Media Access Control)模块以及 RLC (Rad1 Link Control)模块,这样,就可以在PC机上对物理层的功能进行测试。但是按照这样的方法建立模拟器,工作量非常大,而且物理层依赖于DSP核实现的功能无法在该模拟器上进行测试,如大量负载的算法模块坐坐寸寸ο
[0006](3)用ESL来建立多核仿真器,并用它来验证物理层软件。基于SYSTEM C的ESL是一种建模语言,其本身是用来对硬件逻辑进行验证的。如果用它来对多核DSP进行抽象和建模,本身就要花去很大人力和时间,而且在建模完成之后,还要对模型的正确性进行充分的验证,在开发周期较短、人力资源较为紧张的项目中,这种方法并不可取。
[0007](4)使用寄存器传输级(register-transfer level, RTL)的DSP软核以及加速器模型来建立多核仿真器,并通过脚本来控制整个测试流程。该方法中,RTL级DSP软核负责运行物理层源码,在启动后,从测试用例库中提取测试脚本,并启动加速器。测试脚本中集成了高层待下发的消息原语,以及模拟的射频数据。这样,就可以按照测试脚本完成对特定模块或者功能的测试了。但是这种方法虽然可以利用现成的DSP软核,减少了部分工作量,但是仍然需要用RTL来完成外设的仿真,以及核与核之间、核与外设之间的互连,并且该方法缺乏可扩展性,如果要根据测试者的需求定制或者增加仿真器的功能,则较为困难。

【发明内容】

[0008]本发明的目的在于提供一种多核DSP软件仿真器及其物理层软件测试方法,可以快速的建立多核DSP软件仿真器,且建立该仿真器的工作量小,成本低,快速高效;通过测试脚本输入外部事件和通过测试脚本的方式模拟射频数据,非常适用于物理层软件的集成测试,有效的缩短物理层软件的研发周期。
[0009]为解决上述技术问题,本发明提供一种多核DSP软件仿真器,包括:
[0010]N个核,所述N个核包括相应数量的模拟器,N是大于等于2的正整数;
[0011]通过一调试应用程序接口同时建立多个DSP核的模拟器进程,并实现多核的指令级同步;通过一 Win32进程管理接口创建共享内存,并实现多核之间的通信。
[0012]优选的,在所述的多核DSP软件仿真器中,还包括远程调试服务端,通过链接一调试器,实现在线调试。
[0013]优选的,在所述的多核DSP软件仿真器中,所述调试器和所述远程调试服务端之间采用TCP/IP协议进行通信。
[0014]优选的,在所述的多核DSP软件仿真器中,还包括测试脚本,通过引入测试脚本以实现物理层软件的集成测试。
[0015]优选的,在所述的多核DSP软件仿真器中,所述测试脚本包括若干个事件、每个事件触发的起始时间和每个事件之间的时间间隔。
[0016]优选的,在所述的多核DSP软件仿真器中,还包括射频数据,所述射频数据被写入所述测试脚本。
[0017]优选的,在所述的多核DSP软件仿真器中,还包括跟踪日志模块,用于实时跟踪测试用例的执行情况。
[0018]优选的,在所述的多核DSP软件仿真器中,还包括连接加速器C模型,用于实现物理层的复杂算法。
[0019]相应的,本发明还提供一种基于多核DSP软件仿真器的物理层软件测试方法,使用所述的多核DSP软件仿真器,包括:
[0020]通过调试应用程序接口同时建立多个DSP核的模拟器进程,并实现多核的指令级同步;
[0021]根据预设需求依次为每个模拟器配置私有内存和外部内存,并将共享内存映射到每个模拟器的私有内存,以实现模拟器对共享内存的访问;
[0022]调试应用程序接口的观测器接口检测指定的内存区域,当DSP访问这片内存时,观测器调用回调函数,在回调函数中通过调试应用程序接口的信号管理接口触发核间中断,以实现多核间的事件级同步。
[0023]优选的,在所述的基于多核DSP软件仿真器的物理层软件测试方法中,还包括步骤:读取测试脚本,将所述测试脚本中的外部事件导入指定的内存区域。
[0024]优选的,在所述的基于多核DSP软件仿真器的物理层软件测试方法中,所述测试脚本包括若干个事件、每个事件触发的起始时间和每个事件之间的时间间隔。
[0025]优选的,在所述的基于多核DSP软件仿真器的物理层软件测试方法中,,还包括步骤:建立远程调试服务端进程;所述远程调试服务端接收调试器的指令,根据所述指令执行相应的操作;并将所述执行的结果反馈至所述调试器。
[0026]优选的,在所述的基于多核DSP软件仿真器的物理层软件测试方法中,,所述调试器和所述远程调试服务端之间采用TCP/IP协议进行通信。
[0027]本发明提供的多核DSP软件仿真器及其物理层软件测试方法,具有以下有益效果:使用本发明可以快速的建立多核DSP软件仿真器,开发工作量小,成本低,快速高效。模拟多核DSP处理器的工作情况,实现多核的并行运行,实现不同核之间的通信和交互,成功的解决当前大多数DSP公司的Simulator不能模拟多核运行的问题。此外,通过测试脚本输入外部事件和通过测试脚本的方式模拟射频数据,非常适用于物理层软件的集成测试,有效的缩短研发周期。
【附图说明】
[0028]图1是本发明实施例的多核DSP软件仿真器的示意图;
[0029]图2是本发明实施例核间通信的示意图;
[0030]图3是本发明实施例的测试脚本的示意图;
[0031]图4是本发明实施例多核并行运行控制流程图。
【具体实施方式】
[0032]以下结合附图和具体实施例对本发明提出的多核DSP软件仿真器及其物理层软件测试方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0033]请参考图1,其是本发明多核DSP软件仿真器的示意图。如图1所示,本发明提供一种多核DSP软件仿真器,并基于多核DSP软件仿真器提供其物理层软件测试方法。
[0034]所述多核DSP软件仿真器包括三层,是镜像层、软仿层和控制层。其中,
[0035]最底层为镜像层,在镜像层中有N个镜像文件11。
[0036]中间层为控制层,在软仿层中有仿真的处理器包含N个核,所述N个核包括相应数量的模拟器12 (simulator),N是大于等于2的正整数。也就是说多有少个核就对应包含多少个模拟器12。所述镜像文件11是在与之相对应的所述模拟器12上运行的二进制代码,所述二进制代码可以通过C语言或者相关指令集的汇编语言编写,并通过DSP相应的工具链编译生成。特别的,所述模拟器12实际上是一个进程,可以模拟运行特定核的指令集,并可以模拟该核的私有内存。核与核之间通过共享内存的方式进行数据交互。
[0037]在本发明一个优选的实施例中,所述控制层中还有加速器的C模型13,与所述模拟器12相连,一个模拟器12可以连接一个或多个加速器的C模型13,以模拟更为复杂的功能,比如物理层的编解码过程。
[0038]最上面的一层为控制层,在控制层中包括调试应用程序接口(Debug API) 14和与所述调试应用程序接口(Debug API )14相连的Win32进程管理接口。利用调试应用程序接口(Debug API) 14和Win32进程管理接口(图中未示出)实现整个仿真器内部的调度。通过所述Debug API 14同时建立多个DSP核的模拟器进程,并实现多核的指令级同步;通过Win32进程管理接口创建共享内存,并实现多核之间的通信。
[0039]为了方便用户对软件进行调试,在控制层之外,本发明还建立了一个程调试应用程序服务端(remote debug sever),用于和一外部调试器(debugger)建立连接,所述debugger和remote debug sever之间采用TCP/IP协议进行通信。debugger的命令如运行、停止、单步等,通过remote debug sever解析并转发给控制层,控制层利用Debug API控制simulator执行debugger的命令,并将
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1