本发明专利技术公开了提高嵌入式处理器功能验证效率的方法,该方法通过仿真流程控制台和验证平台来完成,所述仿真流程控制台负责建立自测平台、模块级验证平台或系统级验证平台,进行工作目录转换,启动仿真;验证平台负责生成随机激励、调用编译器对随机生成的指令进行编译、参考模型运行、仿真结果比较。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了提高嵌入式处理器功能验证效率的方法,该方法通过仿真流程控制台和验证平台来完成,所述仿真流程控制台负责建立自测平台、模块级验证平台或系统级验证平台,进行工作目录转换,启动仿真;验证平台负责生成随机激励、调用编译器对随机生成的指令进行编译、参考模型运行、仿真结果比较。【专利说明】
本专利技术属于嵌入式处理器
,特别涉及嵌入式处理器功能验证的方法。
技术介绍
快速上市及最少的bug泄漏一直是大家在不断努力追求的,但一颗芯片从功能需求开始到上市接受竞争和考验需要经历非常多的环节,仅从编码完成到投片就需要经过前仿、综合、STA、后仿、混仿等多个环节。据权威机构数据表明,bug往下多泄漏一个流程,所付出的代价将成指数倍增加,因此,如何能尽早的发现bug,最大限度的减少bug泄漏是验证工程师最重要的职责,同时也能大大降低后续环节工作量,提高开发效率,节约开发成本。 前仿作为编码完成后第一个环节,主要任务是构建更近真实、更完备的场景验证功能正确性,随着制造工艺的发展、设计流程和设计工具的改进,现代集成电路规模越来越大,功能越来越复杂,传统的验证方法效率低下,验证过程复杂而且速度慢,已经不能满足制造工艺的需求。 目前,主流验证思想根据不同的验证对象,将验证平台分为自测平台,模块级验证平台,系统级验证平台(因本部分不包括模拟部分,仅将1模型和数字部分验证称为系统级)。 对于嵌入式处理器的验证,自测平台的主要目的是快速调试,确认外设模块寄存器读写、基本功能正确,尽早交付验证工程师进行更全面的模块级功能验证。模块级验证平台的主要目的是根据应用场景对模块功能进行更完备的验证,以确保规格所定义功能点及应用场景下功能正确。系统级验证平台则侧重于更近真实应用场景、各模块间的协调工作,更利于后续环节所发现问题的复现,以达到快速、定位解决问题的效果。 对于如此多的验证平台,独立搭建会浪费大量的时间,带来很多本可以避免的重复工作量,目前广泛流传的一些重用性的方法在构建真实应用场景方面的效果不太理想,易产生一些冗余的应用场景,且不易对后续发现问题复现。 因此,迫切需要提供一种能够进行自动化验证及模块级验证平台快速向上重用到系统级验证平台的高效率验证方法。
技术实现思路
为解决上述问题,本专利技术的目的在于提供,该方法通过不同模式下仿真控制及验证的分开设置,保证系统在验证时能够快速、有效地调用系统数据,提高仿真及验证效率。 本专利技术的另一个目地在于提供,该方法能够有效地进行系统构建,在不同的验证平台下,可以重复使用,节约了系统资源,降低了构建成本,具有兼容性。 为实现上述目的,本专利技术的技术方案为: ,其特征在于本方法在Linux/Unix下实现,通过仿真流程控制台和验证平台来完成,所述仿真流程控制台负责建立自测平台、模块级验证平台或系统级验证平台,进行工作目录转换,启动仿真;验证平台负责生成随机激励、调用编译器对随机生成的指令进行编译、参考模型运行、仿真结果比较。仿真流程控制台采用peri脚本实现;验证平台基于高级验证语言SystemVerilog及UVM等高级语言和方法学进行平台搭建。 该方法的具体步骤包括: 101、仿真流程控制台首先分析确定所需完成验证级别(自测、模块级、系统级),并产生该验证所需要文件列表的位置; 102、仿真流程控制台产生进行验证所需参数,切换工作目录; 103、启动平台仿真,验证平台判断该验证级别,确认所需产生激励的类型(指令集的激励或非指令集激励),产生激励后进行仿真。 所述步骤103中,如产生为指令集激励,则需通过DPI接口将编译器调用命令传递给C++语言,由C++调用编译器将所产生指令集编译成二进制文件,随后将编译后的二进制文件初始化到ROM中,再开始仿真。 其中,自测平台包括一个测试台(testbench)和能产生外设模块寄存器读写、基本功能验证的激励(非指令激励)发生器,单个模块的信号采集器、具有部分功能的参考模型及比对板。该测试台实例化了非指令激励发生器、信号采集器、待测模块、参考模型及对比板。 非指令激励发生器在自测平台中产生的时序信号激励,直接从待验模块的接口输入。 信号采集器:每个待测模块都有自身的信号采集器,主要完成对待测模块接口信号的采集,判断是待测模块需要完成的操作。判断得到信息若为数据流操作或者波特率配置等之类,则给参考模型发出指示。 参考模型:模拟待测模块行为,对数据流、波特率之类的功能进行运算,最终将结果传递给比对板内保存。 比对板:完成参考模型传递过来的理论值与待测模块实际输出值之间的比对,并给出相应比对结果。 模块级验证平台基于实际场景模拟及指令操作进行的,在实际场景中,内核通过从ROM读取下一步操作指令,对指令进行分析,然后给各模块发送操作指示,各模块根据内核下发的指令进行相应的操作。其包括一个测试台、实例化内核、ROM、RAM、能产生随机指令集的激励、单个模块的信号采集器、单个模块的RTL模型和验证参考模型、比对板及断言机制。该测试台实例化了待测系统顶层、验证功能顶层,待测模块顶层实例化了内核、R0M、RAM及待测模块;验证平台顶层包括了指令集激励发生器、信号采集器、待测模块参考模型、比对板及断言机制。 随机指令集激励:随机生成待测模块所涉及的指令。 断言机制:对控制信号间时序关系进行监控,给出相应的报告。 R0M、RAM、内核均属于IP,可直接使用。采集器、验证参考模型、比对板所完成功能与自测平台一致。 系统级验证平台包括一个测试台、实例化内核、ROM、RAM、系统包括的所有模块RTL模型和验证参考模型、比对板及断言机制。其各模块功能与前文介绍一致。 当由低层验证平台向高层验证平台集成重用时,大部分模块可以直接重用,而对整个验证架构只需进行很少的改动。 对于自测平台,所述步骤101之前,需要修改仿真流程控制台所需环境变量,以能正确产生自测平台、模块级验证平台和系统级验证平台进行验证所需参数;同时,编写自测平台中单个模块信号采集器、参考模型、非指令激励的指令。 更进一步,将上述的信号采集器、参考模型、非指令激励和待测模块实例化到测试台。 所述步骤102中,用户给仿真流程控制台下达模块自测命令,仿真流程产生进行模块自测所需参数,如所需导入文件列表路径、宏定义等。仿真流程控制台切换到对应目录工作目录,启动仿真,进行自测。 对于模块级验证平台,所述步骤101之前,事先定义好能应用于模块级验证和系统级验证的测试台,编写产生带约束随机指令的激励发生器,编写自动化比对板及断言机制,定义好基于DPI接口的SV/UVMM与C、C++通信协议,实例化内核、ROM、RAM、步骤8)所编写随机指令发生器到测试台相应位置,实例化单个模块信号采集器、参考模型、待测模块到测试台相应位置,实例化自动化比对板及断言机制到测试台相应位置。 所述步骤103中,测试台接收到模块级验证指示,根据所测模块名,随机产生该模块所涉及指令文件;通过通信协议调用编译器将指令文件编译成二进制文件,并将所产生二进制文件初始化到ROM中,然后开始模块级验证。 更进一步,所述步骤103后,通过比对板及断言机本文档来自技高网...
【技术保护点】
一种提高嵌入式处理器功能验证效率的方法,其特征在于该方法通过仿真流程控制台和验证平台来完成,所述仿真流程控制台负责建立自测平台、模块级验证平台或系统级验证平台,进行工作目录转换,启动仿真;验证平台负责生成随机激励、调用编译器对随机生成的指令进行编译、参考模型运行、仿真结果比较。
【技术特征摘要】
【专利技术属性】
技术研发人员:唐疆斌,
申请(专利权)人:深圳市芯海科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。