一种基于网络传输的处理器协同验证平台及其测试方法技术

技术编号:6153406 阅读:186 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于网络传输的处理器协同验证平台及其测试方法,基于网络传输的处理器协同验证平台由硬件实现程序、软件实现程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成;硬件实现程序包括测试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站;软件实现程序包括软件仿真器和一台安装Linux操作系统的工作站,利用软件仿真器对硬件进行模拟,在软件级对硬件设计进行进一步的验证;硬件实现程序与软件实现程序之间的网络通信,采用基于TCP/IP协议实现测试的同步性控制和文件传输,用于在上述两台工作站进行协同测试。能够详细/准确的定位错误和差异,验证准确率高;验证通过网络方式进行,便捷易行。

【技术实现步骤摘要】

本专利技术涉及,属于处理器 的功能验证和评测

技术介绍
在处理器的设计流程中,验证是一项很重要而且耗时耗力的工作。处理器的验证 包括两个过程功能验证和时序验证,功能验证有模拟验证、形式化验证和FPGA原型验证 等几种方法,其中模拟验证是最基本的方法,验证过程使用最广泛,在处理器系统验证阶段 起着非常重要的作用。在硬件RTL代码编写过程中,就需要对设计的逻辑性的正确性及各 项性能指标进行验证,硬件设计完成后需要系统的进行功能验证以检验设计的正确性及其 性能指标。处理器硬件设计的逻辑功能和性能指标主要依赖于硬件设计人员利用硬件描述 语言编写的代码质量。伴随处理器复杂度的不断上升,处理器验证工作的复杂度和工作量 呈现指数上升,对验证的依赖与要求也越来越高。作为设计过程的一部分,验证起着越来越 关键的作用,验证的工作量也是相对比较大,占据到整个工作设计工作量的70%左右,验证 的效率和可靠性往往决定了项目的成败。传统的功能验证方法是利用已有的软件模拟器模拟硬件设计(见图1),验证RTL 代码的正确性,即分别将同一个测试激励分别在软件仿真器和硬件(RTL级)设计模型中运 行,然后比较两者的运行结果,并由测试人员人工对运算结果进行比较分析,查找RTL代码 中的错误并进行修改,修改后再重新进行模拟测试。软件仿真的思想是,在处理器设计验证 时应用或开发软件仿真器,模拟硬件方面的功能设计,对硬件设计进行验证和测试。应用或 开发软件仿真器,测试人员不需要关心底层的电路设计,只需要关心硬件设计本身逻辑层 面的正确性和性能,适宜于硬件设计功能验证的自动化。利用传统的功能验证方法,验证人员需要面对的问题有(1)测试激励由人工编 写,而每次人工编写的测试激励其功能覆盖率都不高,难以满足功能验证的需要,如要遍历 所有激励输入及其可能的组合情况,达到完全的验证覆盖率,工作量非常大,也难以实现; (2)验证流程是利用软件仿真器运行结果检验RTL代码模型运行结果,由测试人员从运行 结果中比较和分析,但RTL代码模型运行过程和软件仿真过程漫长,需要等待很长的时间 才能看到结果并进行分析,RTL代码量以及运行结果的波形文件都比较大,依据人工分析、 检查显然不能满足验证的需求;C3)随着测试的深入,一般比较常见的设计错误已经排查, 但仍然会有很多人们不易察觉的错误未能检测出,这需要反复、大量的测试以遍历到所有 的情况,以确保硬件设计对任何可能的激励输入及其组合都产生合理的输出,,验证周期非 常长;(4)验证依赖于软件模拟器,在软件模拟不是自行开发或源码不开放时,不能提取或 跟踪软件模拟器的执行信息,难以确保软件行为的准确性及正确性,从而难以确保验证本 身的正确性及其有效性。另外,还需要验证人员对RTL代码和软件仿真都非常的熟悉,才能 分析出错误具体的原因,因而,传统方法费时费力且效率不高,这些都需要人们应用效率更高的验证方法。
技术实现思路
本专利技术所要解决的技术问题是提供一种能够实现自动化验证,提高测试可靠性 和准确性以及测试效率高、覆盖范围广的基于网络传输的处理器协同验证平台及其测试方 法。其技术方案是一种基于网络传输的处理器协同验证平台,其特征在于由硬件实现程序、软件实现 程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成;硬件实现程序包括测 试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站;测试激励由汇 编指令按照一定的约束规则进行随机组合形成,硬件设计模型用Verilog硬件描述语言生 成,在寄存器传输级(Register Transfer Level,RTL)进行建模;硬件模拟模型用C++语 言模拟硬件设计进行建模,对硬件设计进行初级验证,两个模型遵照相同的设计方案,对相 同激励能够具有相同的响应;软件实现程序包括软件仿真器和一台安装Linux操作系统的 工作站;软件实现程序依据输入的参数配置测试环境,利用软件仿真器对硬件进行模拟,以 在软件级对硬件设计进行进一步的验证;硬件实现程序与软件实现程序之间的网络通信, 采用基于TCP/IP协议实现测试的同步性控制和文件传输,用于在上述两台工作站进行协 同测试。一种基于网络传输的处理器协同验证平台测试方法,在Linux操作系统工作站的 测试环境下,其测试步骤是第一步测试开始,执行软件实现程序依据提示分别输入两个参数参数1设置每次测 试过程验证平台自动完成的测试轮数,参数2设置通信双方的端口号;并依据参数设置测 试环境,自行建立三个级别文件存放目录以保存所有测试文件信息;第二步执行硬件实现程序,产生测试激励,并生成对应的内存映像文件(.imgl)。测 试激励由汇编指令按照一定的约束随机形成,汇编指令的及约束由程序从指令函数库即约 束函数库中以随机方式抽取,测试激励的指令组合形式由指令按照约束规则随机组合,并 生成对应的二进制内存映像文件(.imgl);第三步软件实现程序以TCP方式读取测试激励,编译生成软件仿真器可加载的激励 文件(.out),并进一步生成硬件设计/模拟模型需要的内存映像文件(.img2)并与硬件实 现程序生成的内存映像文件进行比较,以确保每轮测试中硬件设计/模拟和软件仿真加载 的是同一个测试激励;第四步比较硬件实现程序和软件实现程序分别生成的内存映像文件,以确保每一 轮验证都是硬件设计/模拟和软件仿真加载相同的测试激励。内存映像文件比较不一致 时,比较结果写入日记文件,结束本轮测试,比较结果一致时,运行软件仿真器,产生仿真结 果;第五步硬件设计/模拟模型通过以TCP方式读取/加载内存映像文件(.img2),分别 生成硬件设计模型结果和硬件模拟模型结果,并保存在当前测试目录下;第六步比较分析硬件设计模型结果和硬件模拟模型结果,并将分析结果写入日记文 件,本次比较实现硬件设计模型结果和硬件模拟模型进行相互验证,以验证RTL代码的正确性;第七步输出比较分析硬件设计模型运行结果和软件仿真结果,并将分析结果写入日 记文件,本次比较实现软件级验证RTL代码的正确性;第八步软件实现程序查询每一轮测试差异结果文件,以文本形式记录存 在差异的测试文件所在目录,删除结果正确的目录及文件,统计覆盖率,在每一次结束 后将功能验证覆盖率写入日记文件,并开始下一次测试。其技术效果本专利技术的协同验证平台及其测试方法,充分运用于自行研制的DSP 芯片BWDSP100功能验证工作,验证结果显示在功能验证结果正确的情况下覆盖率能达到 99. 75%,完全能够满足处理器功能验证的需要。在验证过程中,完全不需要人工监控和干 预,减少了大量验证时间和验证工作量,有效提高了验证工作效率。1、本专利技术测试激励由程序生成,测试激励依据约束规则随机组合,测试工作即可 由统一的协同验证平台自动完成,大大减少了验证人员工作量,提高了工作效率,经过批量 测试后可尽可能接近设定的功能覆盖率。2、本专利技术准确性高,本专利技术通过硬件模拟模型和软件仿真分别在硬件级和软件级 两个层次对硬件设计进行验证,能够全面准确的检测出硬件设计RTL代码的错误。3、本专利技术验证覆盖范围广,本协同验证平台及其测试方法的测试激励采用随机方 式产生,支持批量测试,能够完成数据量非常大的测试,能够遍历到硬件设计中指令组合本文档来自技高网
...

【技术保护点】
1.一种基于网络传输的处理器协同验证平台,其特征在于:由硬件实现程序、软件实现程序和硬件实现程序与软件实现程序之间的网络通信三个部分组成;硬件实现程序包括测试激励、硬件设计模型、硬件模拟模型和一台安装Linux操作系统的工作站;测试激励由汇编指令按照一定的约束规则进行随机组合形成,硬件设计模型用Verilog硬件描述语言生成,在寄存器传输级 (Register Transfer Level,RTL)进行建模;硬件模拟模型用C++语言模拟硬件设计进行建模,对硬件设计进行初级验证,两个模型遵照相同的设计方案,对相同激励能够具有相同的响应;软件实现程序包括软件仿真器和一台安装Linux操作系统的工作站;软件实现程序依据输入的参数配置测试环境,利用软件仿真器对硬件进行模拟,以在软件级对硬件设计进行进一步的验证;硬件实现程序与软件实现程序之间的网络通信,采用基于TCP/IP协议实现测试的同步性控制和文件传输,用于在上述两台工作站进行协同测试。

【技术特征摘要】

【专利技术属性】
技术研发人员:鲍华洪一郭二辉耿锐欧明双
申请(专利权)人:中国电子科技集团公司第三十八研究所
类型:发明
国别省市:34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1