一种基于模拟器的软硬件协同验证方法及系统技术方案

技术编号:8131024 阅读:206 留言:0更新日期:2012-12-27 03:11
本发明专利技术涉及一种基于模拟器的软硬件模型协同验证方法及其系统。该方法包括:硬件模型在指令流水线开始工作前调用软件模型,并将硬件模型仿真的时钟信息发送给软件模型;软件模型驱动内核模拟器进行初始化配置;当硬件模型在指令流水线执行到指令执行阶段时调用软件模型,并将硬件模型仿真的当前时间点发送给软件模型;软件模型驱动内核模拟器执行完指令,并根据硬件模型仿真的当前时间点、时钟信息计算指令在硬件模型中执行完成的时间点;当硬件模型写寄存器堆时,调用软件模型,并将指令执行完的数据信息发送给软件模型;软件模型驱动内核模拟器进行数据信息比较,如果数据信息比较不一致,则定位出错指令。本发明专利技术可高效定位出错指令。

【技术实现步骤摘要】

本专利技术涉及处理器验证技木,特别涉及ー种基于模拟器的软硬件协同验证方法及系统
技术介绍
伴随着DSP(Digital Signal Processing,数字信号处理)处理器设计复杂度的增カロ,验证的代价也在稳步提升。作为DSP处理器设计不可或缺的ー个环节,验证逐渐成为了DSP处理器设计中的瓶颈,因此,寻找更加丰富的验证手段或方法十分重要。传统DSP处理器验证中,软件描述语言模型(以下简称“软件模型”)和硬件描述语言模型(以下简称“硬件模型”)分开验证各自的功能是否正确,这种验证方法的缺点在干,首先,软件模型和硬件模型必须按照各自对系统资源的要求,以及目标,配置独立的验证环境,这导致无法有效利用相互间的资源;其次,通过软件模型模拟硬件模型有别于实际的DSP处理器结构,容易产生 不可预期的错误,导致DSP处理器设计周期的延长。软硬件模型协同验证的方法,在很大程度上解决了软件模型和硬件模型分开验证的缺点,使软件模型和硬件模型能在同一时间进行,能够及时发现软件和硬件中存在的错误。目前基于模拟器验证的方法已经在越来越多的处理器设计难验证中得到了应用,在开发ー款新型号的处理器之前,首先通过软件模型模拟微处理器内部的功能和处理器的指令集,这种模拟器主要用于检测指令集的的设计方案是否合理,各大芯片制造公司为用户开发硬件产品也提供了相应的模拟器,但这种模拟器主要用于软件开发和代码移植,无法和硬件仿真器的其他部份连接,主要的原因在于这些公司所提供的模拟器上,没有提供接ロ供硬件仿真环境的自动调用。为了解决这个问题,最常见的是软原型验证,即将硬件设计仿真器协同在工作站上模拟,软件模型与硬件模型之间通过Verilog编程语言接ロ(ProgramLanguage Interface,简称PLI)通信实现整个系统的软硬件模型部分的联合仿真。 传统的软硬件协同验证方案中,通常对硬件模型设计要求偏高,在实际的验证过程中很难精定位到出错的指令,执行效率低下导致了自动化协同验证效果不明显,在软件模型的设计上,通常需要设计周期精确的模拟器,而这种模拟器的设计复杂度通常较大。
技术实现思路
本专利技术的目的是为了解决现有技术中软硬件模型协同验证中不能精确定位到出错的指令、且验证效率低下的技术的问题。为实现上述目的,一方面,本专利技术提供了一种基于模拟器的软硬件模型协同验证的方法,该方法包括以下步骤硬件模型在指令流水线开始工作前调用软件模型,并将所述硬件模型仿真的时钟信息发送给软件模型;软件模型驱动内核模拟器进行初始化配置;当硬件模型在指令流水线执行到指令执行阶段时调用软件模型,并将硬件模型仿真的当前时间点发送给软件模型;软件模型驱动内核模拟器执行完指令,并根据硬件模型仿真的当前时间点、时钟信息计算指令在硬件模型中执行完成的时间点;当硬件模型写寄存器堆时,调用软件模型,并将指令执行完的数据信息发送给软件模型;软件模型驱动内核模拟器进行数据信息比较,如果数据信息比较不一致,则定位出错指令。另ー方面,本专利技术提供了一种基于模拟器的软硬件模型协同验证的系统,该系统包括包括硬件模型和软件模型,其中软件模型包括初始化模块、模拟执行模块和数据比较模块。初始化模块用于所述硬件模型在指令流水线开始工作前,驱动模拟器进行初始化配置,并接收由所述硬件模型发送的硬件仿真的时钟精度与步长;模拟执行模块用于当所述硬件模型在指令流水线执行到指令执行阶段吋,驱动所述模拟器执行完指令,并接收所述硬件模型仿真的当前时间点,所述模拟器根据所述硬件模型仿真的当前时间点、所述时钟精度与步长计算所述指令在硬件模型中执行完成的时间点;数据比较模块用于接收由所述硬件模型发送的指令执行完的数据信息,并驱动所述模拟器进行数据信息比较,如果数据信息比较不一致,则定位出错指令。本专利技术实施例提供的基于模拟器的软硬件模型协同验证方法,对硬件模型的设计·要求很低,且硬件模型调用软件模型相对简单,环境配置要求简单,实际使用过程中通过自动化操作可高效完成出错指令的定位。另外,不需要软件模型提供时钟模型,降低了对软件模型设计的复杂度。附图说明图I为本专利技术实施例提供的基于模拟器的软硬件模型协同验证方法流程图;图2为本专利技术实施例提供的硬件模型访问寄存器堆时的数据比较示意图;图3为本专利技术实施例提供的数据比较方法流程图。图4为本专利技术实施例提供的基于模拟器的软硬件模型协同验证系统结构示意图。具体实施例方式本专利技术实施例提供了一种基于模拟器的软硬件模型协同验证方法,该方法以硬件模型为主控端,通过调用软件模型提供的接ロ指导其执行行为。软件模型则用于提供正确的指令级參考模型(模拟器),并以动态链接库的形式交由硬件仿真软件使用,完成模拟器执行驱动、数据比较、时钟计算等功能。本专利技术实施例提供的软硬件模型协同验证方法,对硬件模型的设计要求很低,且硬件模型调用软件模型相对容易,环境配置要求简单,实际使用过程中通过自动化操作可高效完成出错指令的定位。另外,软件模型不需要提供时钟模型,只需要提供对指令行为级的模拟,降低了对软件模型设计的复杂度。下面通过附图和实施例,对本专利技术的技术方案做进ー步的详细描述。图I为本专利技术实施例提供的一种基于模拟器的软硬件模型协同验证方法流程图。如图I所示,步骤101-103由主控端硬件模型执行,步骤110-115由软件模型协同执行。本专利技术实施例软件模型根据Verilog PLI提供的标准访问机制来访问Verilog代码,按照PLI提供的标准访问机制,需要在软件模型中预先定义系统访问函数。系统访问函数定义如下S-tfcell 一-dec I spec (dll export) ver iusertf s [] = { {usertask, 0,0,0,cpu-step, 0, "$cpustep"},{usertask, 0,0,0,data-load, 0,"Idataload"},{usertask, 0, 0,0, peek—meiptr,0, "$peek_meni-ptr"},{usertask, 0,0,0,peek—mem—data, 0, "$peek_mem_data"},{usertask, 0,0,0,peek—meiaddress, 0,"$peek-meni-address"},{usertask, 0,0,0,dimipmera, 0, "$dumpmem"}, (0}} 在一个例子中,上述数据结构的定义描述如下权利要求1.一种基于模拟器的软硬件模型协同验证方法,其特征在于 硬件模型在指令流水线开始工作前调用软件模型,并将所述硬件模型仿真的时钟信息发送给所述软件模型;所述软件模型驱动内核模拟器进行初始化配置; 当所述硬件模型在指令流水线执行到指令执行阶段时调用所述软件模型,并将所述硬件模型仿真的当前时间点发送给所述软件模型;所述软件模型驱动所述内核模拟器执行完指令,并根据所述硬件模型仿真的当前时间点、所述时钟信息计算所述指令在硬件模型中执打完成的时间点; 当所述硬件模型写寄存器堆时,调用所述软件模型,并将指令执行完成时的数据信息发送给所述软件模型;所述软件模型驱动所述内核模拟器进行数据信息比较,如果数据信息比较不一致,则定位出错指令。2.根据权利要求I所述的方法,其特征在于本文档来自技高网
...

【技术保护点】
一种基于模拟器的软硬件模型协同验证方法,其特征在于:硬件模型在指令流水线开始工作前调用软件模型,并将所述硬件模型仿真的时钟信息发送给所述软件模型;所述软件模型驱动内核模拟器进行初始化配置;当所述硬件模型在指令流水线执行到指令执行阶段时调用所述软件模型,并将所述硬件模型仿真的当前时间点发送给所述软件模型;所述软件模型驱动所述内核模拟器执行完指令,并根据所述硬件模型仿真的当前时间点、所述时钟信息计算所述指令在硬件模型中执行完成的时间点;当所述硬件模型写寄存器堆时,调用所述软件模型,并将指令执行完成时的数据信息发送给所述软件模型;所述软件模型驱动所述内核模拟器进行数据信息比较,如果数据信息比较不一致,则定位出错指令。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱浩彭楚王东辉张铁军洪缨
申请(专利权)人:中国科学院声学研究所
类型:发明
国别省市:

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

1