基于软硬件协同仿真平台的功能仿真测试方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于软硬件协同仿真平台的功能仿真测试方法
摘要:基于软硬件协同仿真平台的功能仿真测试方法,采用软硬件协同仿真测
试的方法,提高了被测处理器的仿真测试速度;采用基于指令模型的指令集测试
程序,提高了基本指令集的测试覆盖率;采用基于流水控制单元状态机变换路径
的测试程序,提高了指令间数据竞争的检测。
实验结果表明,指令的覆盖率达到
了100%。
伴随当今微电子工业的迅速发展,整个集成电路行业设计能力的不断加强,以及工艺水
平的逐步提高都使得大规模数字电路的复杂度得到了实质性的增加,而电路尺寸不变甚至仍
在缩小。
为保证DSP处理器芯片设计的正确性和加快芯片的上市时间,需要对处理器的设计
描述进行全面的仿真测试。
在现代高性能DSP处理器设计流程中,仿真测试通常要占50%以
上的时间,在许多设计团队中,测试人员占很大比重。
研究人员通常采用形式验证的方法或
基于仿真测试的方法对被测处理器进行测试。
基于仿真的仿真测试方法被越来越多地采用,
而其测试覆盖率和测试速度也成了研究人员研究的热点。
一、软硬件协同技术的特点
1、协调性。
近年,协同设计研究十分强调在设计过程中各学科之间的协同工作,一方
面包括侧重于软件层面的固件、操作系统以及应用开发等,另一方面则包括硬件逻辑开发以
及芯片设计等,互相协同构成了整个协同设计系统的核心。
2、并行性。
由于上市时间的紧迫,当前设计需要软件与硬件同时开发,而非之前在硬
件平台开发之后才进行软件的开发。
因此,虚拟平台与虚拟硬件原型则应运而生,可以模拟
运行软件程序从而突破软硬件并行开发的瓶颈。
同时,功能验证与模块划分也可以同时进行,但需要配合同步子系统采用一些特殊的协同仿真技术。
3、正确性。
毋庸置疑,确保复杂的软件与硬件设计的正确性是一个很大的挑战,不只
是要确保每个模块单独使用功能的正确性,更重要的是需要在整个系统集成后进行协同验证,进一步保证每个子模块之间协同作用的正确性。
二、FPGA 仿真测试系统实现
当被测处理器核或原型芯片在FPGA平台上进行功能的仿真测试时,需要对被测处理器
提供实时的仿真测试环境,包括处理器的运行环境和测试环境。
但是处理器核与原型芯片的
仿真测试环境是有区别的。
在对处理器核进行仿真测试时,不仅需要对被测单元进行包装(Wrapper)设计,同时需要为处理器的仿真测试提供仿真测试管理模块TAM和调试模块。
基于在软硬件协同仿真测试平台上构建了一个FPGA片上仿真测试系统,把处理器核与平台
上的其它资源连接成一个仿真测试系统,如图。
图中实线连接部分为被测处理器构成的仿真测试应用系统,虚线连接部分为测试系统部分。
在仿真测试过程中,通过测试系统软件在主机上的人机交互,由操作者给出测试控制信
息和命令。
TAM不仅需要完成与主机的信息交换,同时还需完成对被测单元的访问和对命令
的解析等功能。
这些信息包括数据信息、控制信息和状态信息:数据信息是指测试向量、测
试结果等;控制信息是指控制命令,TAM接收到这些命令后对其进行解析,控制整个仿真测
试行为;状态信息是指 FPGA片上仿真测试系统所处的状态信息,如停顿状态等。
在进行仿
真测试试验时,除了DSP处理器需要访问存储器和寄存器外,TAM也需要访问它们,这样势
必引起端口冲突。
通过仔细分析DSP处理器和Debugger工作情况,发现DSP处理器:DSP
处理器和 Debugger的工作模式得到,DSP处理器和TAM可以分时地访问存储器、寄存器。
在DSP处理休眠和DSP处理器处于停顿时,TAM可以访问存储器和寄存器,而在DSP处理器的其它状态,TAM不能访问存储器和寄存器。
因此,可以通过DSP处理器的复位信号和Debugger发出的核停顿信号控制多路开关的选择端,实现被测存储器和寄存器的Wrapper设计。
在软硬件平台上进行原型芯片的测试时,可以根据如图实线连接方法把原型芯片与硬平
台上的资源连接成一个应用测试系统。
但是它与处理器核的不同之处在于芯片已封装完毕,
芯片内部的被测寄存器、存储器可以通过芯片的可测性电路逻辑完成,而不用再设计Wrapper、Debugger 等单元但还需TAM模块。
三、自动测试程序发生器
流水DSP处理器的功能仿真测试主要包括指令集的仿真测试和指令间相关性的仿真测试。
由于手工书写的测试程序受到某种局限性,很难考虑到全部的指令组合情况和覆盖所有的流
水控制单元状态机的转换路径。
为了提高指令测试的覆盖率,首先必须分析被测DSP的指令
格式、指令的语法规则、指令的功能,然后根据这些信息进行分析、建模,构建了被测DSP
的指令测试模型,如图所示。
目的操作数用于存放指令结果,由于被测DSP核的指令集属于面向寄存器操作的指令集
范畴,故除了写存储器的指令和程序流指令外,其余的指令的执行结果都存放于寄存器中。
源操作数X和源操作数Y分别为指令的第一个源操作数和第二个操作数。
部分指令为单操作数,则源操作数Y被省略。
测试条件包括边界测试和普通测试。
自动测试程序发生器采用启
发式的方法设计。
叶子部分信息根据MUX为单位,分别建立相应的数据库。
根据被测DSP
核的指令模型和指令集提供的信息,把它们采用人工的方式存入启发式数据库中。
在产生指
令测试程序时,按照指令类型分别产生运算指令自动测试程序、移动指令自动测试程序等测
试程序。
当测试程序运行时,将被测指令的结果、状态按顺序写到片外数据存储器,然后将
运算结果与通过软件仿真器仿真后的理想结果进行比较,如果相等则表示该指令的运行结果
正确;如果与理想结果不同,则表明被测指令存在错误。
测试人员
只要把存放在规定内存空间的执行结果读回主机就可以知道指令测试的情况,如发现指令测
试结果中存在错误,就可以根据错误所在的位置信息,根据一一对应的原则就能确定发生错
误的指令,然后通过本系统提供的调试工具对其进行分析,可以定位发生逻辑错误的位置。
四、实验结果
为了对MD16[5]核或原型芯片进行仿真测试,开发了一种软硬件协同仿真测试平台,在
这个硬件平台中,由一块大容量的FPGA(Xilinx的Vertex-II XC2V2000)构成整个硬件系统的
核心部分,同时在FPGA芯片的外围连接SRAM、SDRAM芯片构成了系统的存储体系,音频
A/D、D/A芯片和视频编码、解码芯片构成了系统的应用环境,并口、USB等接口构成了系统
的通信网络。
根据指令测试模型构建的指令自动测试程序对指令集的覆盖率达到了100%,对功能单元ALU、MAC和SHIFT中的陈述部分、分支部分的代码覆盖率的自动测试结果。
如表:
在软硬件协同仿真测试平台的硬平台上对MD16核和原型芯片进行仿真测试时,首先需
要构建相应的片上系统,然后才能根据测试程序进行仿真测试。
在对 MD16核进行仿真时,
通过Synplicity 综合工具综合后,其仿真系统共占用743 个Slices,占总资源的7.3%左右;对MD16的原型芯片进行测试时,其测试系统共占用380个Slices。
表3为MD16核测试频率为
50M、MD16原型芯片测试频率为160M 时,Huffman 解码、8×8 IDCT、18×36IMDCT、200点输入108点FIR滤波程序和100点输入2阶IIR滤波程序测试程序的测试结果。
通过在软硬件协同仿真测试平台上构建FPGA片上仿真测试系统,并根据指令测试模型的自动测试程序发生器产生对定点DSP MD16进行了仿真测试,改正了设计中存在的BUG并修正了设计中不合理的地方。
实验结果表明,这种方法测试速度快、测试覆盖率达到了令人满意的程度。
将用这个测试框架对MD16进行媒体处理方面的应用程序测试。
参考文献:
[1]刘凯,李平,廖永波. 多值 D/A 转换器分流电阻网络研究[J]. 杭州大学学报,2018,25(2):41-46.
[2]詹瑾瑜. So C 软/硬件协同设计高速 D/A 转换器[J]. 电路与系统学报,2019,4(3):43-46.
[3]周选昌. 基于传输电流开关理论的电流型 CMOS ADC 电路设计[J]. 电路与系统学报,2018,5(1):92-94.。