搜索
您当前的位置:首页 > 高仿资讯
嵌入式系统芯片的软硬件协同仿真环境设计
发布时间:2013-09-27 02:48:29 仿真 验证 环境

1 概述

       随着微电子产业日新月异的发展,IC设计的规模越来越大,集成度越来越高,已经足以将一套完整的系统集成到一块小小的芯片中。在这种形势下,SoC技术应运而生。随着IP核复用技术的出现,SoC芯片的设计已经不再是很大的难题,SoC芯片的验证已逐渐取代芯片设计成为芯片开发阶段的瓶颈。现阶段SoC芯片设计的正确性要经过前仿真、后仿真以及FPGA验证来保证。前仿真包括单元验证、集成验证和系统验证,后仿真包括带反标时序SDF的网表仿真,其中系统验证和后仿真都需要关注SoC芯片的全局功能,这就涉及SoC的软件仿真和硬件仿真的协同问题。本文以DSM模型替代ARM核,以VMM验证方法学和VCS仿真器为基础,搭建一个可重用性高、调试和定位问题方便、仿真真实性高、软件和硬件能够很好配合的协同验证平台。

a.jpg


       软硬件协同仿真架构如图1所示,协同验证分软件验证环境和硬件验证环境两部分。软件代码通常由C/C++和汇编语言混合编写而成,然后由软件编译器转换成二进制格式,最后将该二进制文件加载到SoC芯片的存储器中去,芯片boot启动时由ARM核调用软件代码并执行;硬件环境基于VMM验证方法学进行搭建,下文中会有详细介绍。协同仿真就是通过事件和命令,使用一些机制,在这两个环境间进行控制。

2 DSM模型的使用

       SoC芯片的CPU一般选用ARM,协同验证平台中ARM可以用seamless CVE模型替代,或者直接选用ARM网表。采用seamless CVE模型进行仿真,虽然速度比较快,但需要替换设计中的Memory模型,且必须使用CVE自己的模型,这样与芯片真实情况有出入;采用ARM网表进行仿真,速度比较慢,调试也不方便,但是更接近实际情况。相比于这两者,本文采用的DSM(Design Simulation Model)模型由ARM公司提供,能完全模拟ARM的接口和时序行为,具有更高的真实性,而且DSM无需更换存储器模型和外挂仿真工具,使验证DUT与实际芯片完全一致,即不必为了满足仿真需求修改部分RTL代码。此外,DSM环境仿真过程中输出的LOG文件log.eis真实记录每个周期执行的CPU代码和操作。根据该文件能快速定位软件问题。CVE环境通过调用XRAY软件调试工具,虽然可以进行单步调试、没置断点等操作,但出现软件问题时定位没有DSM环境那么直观、方便。 DSM是ARM公司提供的设计仿真模型,该模型直接从ARM公司的RTL代码经过加密处理转化而来,具有同真实RTL代码完全一致的功能和特性。在时序仿真过程中,还能直接对该模型反标时序。在仿真过程中,将模型WRAPPER也就是模型的最顶层例化到RTL代码中,仿真器在仿真过程中触发WRAPPER,请求Model Manager动态调用模型库进行仿真。Model Manager响应请求动态调用模型库文件,达到功能仿真的目的。由此可以看出,Model Manager在仿真过程中充当中介角色,将模型和仿真器动态连接在一起。DSM模型的工作原理如图2所示。

b.jpg

3 软件仿真

       ARM汇编器工具ARMASM、ARM的C/C++编译工具ARMCC和ARMCPP,以及ARM的链接工具ARMLINK,利用ARM工具对软件代码进行编译链接生成的文件格式为ELF格式(Executable Link File),原始代码在文件中的位置通过SCATTER文件指定,ARM提供了fromelf工具,该工具将ELF格式的文件根据运行时域转化为二进制文件,以便在仿真起始阶段将代码放到指定的Memory中。

       在makefile中将ELF格式转化为BIN文件的具体实例如下: Fromelf-bin output./softWare.elf,上述语句表示将software.elf文件转化为二进制文件放到当前目录。

       在软硬件协同仿真的初始阶段,需要将生成的二进制文件导入相应的存储器中,这通过Verilog提供的系统函数fread实现。下面是一个将二进制文件导入存储器的实例,先通过$fopen函数读出文件地址,然后通过$fread函数将指定地址的文件数据传给变量inst_fik_word,最后将变量inst_file_world中的值传给存储器中的相应地址单元。在DSM仿真中都需要一个这样的“桥梁”文件,将软件和逻辑链接起来。
   

c.jpg


   

d.jpg

        软硬件协同仿真的软件结构如图3所示,系统BOOT起来后直接跳转到main()函数进行单进程任务,如果出现中断异常,则boot代码中根据中断向量表地址跳转到中断处理函数。中断处理函数中包含对各中断的处理,main()函数中调用各个模块的TC(Test Case)函数,TC调用底层的驱动代码。驱动代码的编写则基于各个模块的寄存器定义文件和全局变量。该软件结构清晰可控,便于各测试用例TC的并行提交和管理。

e.jpg



4 构建基于VMM的软硬件协同仿真平台

       在软硬件协同仿真环境中,完全可以采用基于VMM的验证架构,但软硬件协同仿真环境较一般的纯逻辑集成验证环境难度大,主要体现在软硬件协同仿真环境冈为仿真过程中有软件代码在执行,同时验证环境也在执行,因此如何将软件代码和硬件环境协调起来是关键。在仿真过程中,软件和验证环境之间需要建立一种通信机制,如可以通过中断通信,也可以通过某一特殊信号线通信。软硬件协同仿真环境中,某一项功能点的测试常常需要软硬件两条测试用例TC,软件TC需要驱动代码,而一般的集成测试用例不需要软件TC和驱动。典型的VMM的验证架构如图4所示。

可能对这些感兴趣:
  2011年11月9日,ANSYS中国与河海大学在常州举办了ANSYS高性能电磁仿真应用技术与培训中心授牌仪式。参加仪式的有:河海大学常州校区管委会主
摘要:以往的异步电机变频调速系统仿真主要针对变频器恒频恒压状态进行分析,实际的变频调速系统往往处于动态的调速过程,输出频率和输出电压随时
摘要:详细分析了无刷直流电机的数学模型,根据PWM-ON-PWM调制方式的特点编写S函数,利用Matlab/Simulink搭建了PWM-ON-PWM调制方式下的系统模型并
虚拟机械加工技术(Virtualmachining)已诞生很久了,随着科学技术的进步,三维计算机辅助设计被广泛应用于产品设计,在工程作业设计、加工工序
A货网以假乱真,无论是手感还是香味都跟真的一样,我的孩子差点误食了这种仿真食品。"昨天,市民陈女士向海南日报记者反映说,她的孩子差点误食了一种仿真饼干,幸好发现及
中国电力科学研究院组织专家对直流输电系统的电磁暂态实时仿真进行深入研究,提出交直流电力系统分割并行电磁暂态数字仿真方法,并开发出直流输电
日前,许继WRTS-800风力发电机组仿真试验系统及PRDS-600变桨距仿真试验系统,在风电控制技术研发中心成功投入运行。许继WRTS-800风力发电机组仿真
6月4日,随着河南电网数字仿真实验室ADPSS装置调试工作的顺利完成,河南电网数字仿真试验室正式进入试运行阶段。河南电网数字仿真实验室由河南电
高仿奢侈品商城链接

推荐阅读