面向实践教学的MIPS‑CPU测试工具的制作方法

文档序号:11230219阅读:494来源:国知局
面向实践教学的MIPS‑CPU测试工具的制造方法与工艺

本发明涉及计算机教学测试工具领域。



背景技术:

在科学技术日益发展的今天,计算机的作用已经渗透到了工作生活中的每一个角落。各大高校都已将计算机课程列入到重点课程的行列。作为计算机科学的基础课程,计算机组成原理和计算机体系结构教学的成功与否,关系着计算机系学生对日后课程学习的理解好坏。而cpu的设计实验,是对这门课程理解程度最好的检验。因此,各高校都将cpu的设计实验列为一门重要实验课程。然而,许多学生都反应cpu设计实验的难度大,流程复杂,传统的硬件描述语言设计存在着流程繁琐,测试过程不便,纠错困难等问题。本发明根据众多高校学生反应的问题,设计出了一套完整的面向实践教学的mips-cpu测试工具。

本领域公知,mips汇编程序运行模拟器(mars:themipsassemblyandruntimesimulator),主要用于模拟真实mips处理器,运行mips汇编程序。在mars模拟器中,学生可以编辑或导入mips汇编程序,汇编,并运行或调试程序。这样便于学生直观的观察汇编代码的运行结果,也便于修改完善汇编程序。学生可以设置、移除断点,并向前、向后分步执行,或者在运行过程中修改寄存器和内存内容。

modelsim是工业界最为通用的硬件描述语言仿真器之一。不同于ise或者vivado内置的仿真模块仿真速度慢而且性能不太可靠,modelsim采用直接优化的编译技术、tcl/tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护ip核,个性化的图形界面和接口,为学生加快调错提供强有力的手段,它可以用于verilog仿真、vhdl仿真或者两者的混合仿真。



技术实现要素:

本发明目的在于克服现有技术的不足,实现并公开了一种面向实践教学的mips-cpu测试工具,采用mipscpu模拟器与硬件描述语言仿真器协同工作的思想,将测试分为随机指令测试和综合指令测试。该测试工具提供了良好的用户界面、便捷的操作步骤、完整的测试流程,大大简化了测试过程。学生在设计并实现mips-cpu的过程中,将不必再面对一行行繁琐的机器码,也不必逐条指令检验波形图、查看内存,避免了学生在测试过程中遇到错误时不知从何下手的情况,帮助学生更好、更快地完成cpu的测试工作,为mips-cpu的设计节省了大量的时间。

本发明需要保护的技术方案表征为:

本发明设计并实现了一套面向实践教学的mips-cpu测试工具。整套测试工具分为随机指令测试子系统和综合指令测试子系统两个部分。

所述的随机指令测试子系统包括mips随机指令自动生成模块、mips模拟器执行模块、硬件描述语言仿真器执行模块、执行结果对比模块。随机指令测试子系统用mips随机指令自动生成模块生成随机测试指令序列,通过mips模拟器执行模块运行随机测试指令,输出标准结果,通过硬件描述语言仿真器执行模块运行激励文件来仿真导入随机测试指令的cpu,输出测试结果,将标准结果和测试结果通过执行结果对比模块进行比对查看正确性,快速发现问题。

所述的综合指令测试子系统包括综合测试指令模块、硬件描述语言仿真器执行模块、执行结果查看模块。综合指令测试子系统将综合测试指令模块实现的mips标准指令的综合测试汇编程序载入cpu后在硬件描述语言仿真器执行模块中进行仿真测试,该汇编程序运行后可通过执行结果查看模块方便查看综合指令在cpu中的执行结果和错误信,实现cpu的完备测试。

mips随机指令自动生成模块为一个b/s在线工具,在教学环节供学生生成指定数量的mips汇编指令随机序列,这些随机序列由mips标准指令集中随机选取的指令构成。mips模拟器执行模块,模拟真实mipscpu运行环境,运行mips汇编程序。将mips随机指令自动生成模块生成的随机测试指令放入mips模拟器执行模块中运行,得到每条指令执行后的指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果,作为随机指令测试系统的标准结果。硬件描述语言仿真器执行模块,用于cpu的设计阶段,为硬件描述语言编写的cpu提供仿真服务。本发明通过运行所实现的激励文件,在仿真阶段将cpu运行每条指令后的指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果输出到目标文件中,作为测试结果。执行结果对比模块,将mips模拟器执行模块和硬件描述语言仿真器执行模块得到的标准结果和测试结果进行逐行对比,比较每条指令执行后指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果是否正确;错误则提示执行错误的指令和指令地址,否则提示正确信息。

综合测试指令模块,实现了mips标准指令集的综合测试汇编程序,该汇编程序涵盖mips标准指令的逐条测试,测试过程中程序自动进行指令执行结果的正确性判断,载入cpu后在硬件描述语言仿真器执行模块中进行仿真测试,会将正确或错误标识存入内存及寄存器便于查看。硬件描述语言仿真器执行模块与随机指令测试子系统中的相同。执行结果查看模块,该模块将硬件描述语言仿真器执行模块的执行结果进行分析,根据结果标识返回正确或错误,根据错误特征号返回错误指令。

本发明设计并实现了一套面向实践教学的mips-cpu测试工具:随机指令测试子系统用mips随机指令自动生成模块生成随机测试指令序列,通过mips模拟器执行模块运行随机测试指令,输出标准结果,通过硬件描述语言仿真器执行模块运行激励文件来仿真导入随机测试指令的cpu,输出测试结果,将标准结果和测试结果通过执行结果对比模块进行比对查看正确性,快速发现问题;综合指令测试子系统将综合测试指令模块实现的mips标准指令的综合测试汇编程序载入cpu后在硬件描述语言仿真器执行模块中进行仿真测试,该汇编程序运行后可通过执行结果查看模块方便查看综合指令在cpu中的运行情况及错误信息,实现cpu的完备测试。整套工具简化并完善了cpu测试过程,从而为mips-cpu的设计节省了大量的时间。

附图说明

图1为系统总体架构图;

图2为mips模拟器执行过程示意图;

图3为硬件描述语言仿真器执行模块示意图;

图4为生成指定数量的符合mips规范的随机指令序列示意图;

图5为mips模拟器执行模块示意图;

图6为mips模拟器执行模块对比;

图7为综合测试流程。

具体实施方式

面向实践教学的mips-cpu测试工具,实现步骤如下:

(1)总体架构

系统总体架构分为随机指令测试子系统和综合指令测试子系统两部分,如图1所示。

所述的随机指令测试子系统包括mips随机指令自动生成模块、mips模拟器执行模块、硬件描述语言仿真器执行模块、执行结果对比模块。随机指令测试子系统用mips随机指令自动生成模块生成随机测试指令序列,通过mips模拟器执行模块运行随机测试指令,输出标准结果,通过硬件描述语言仿真器执行模块运行激励文件来仿真导入随机测试指令的cpu,输出测试结果,将标准结果和测试结果通过执行结果对比模块进行比对查看正确性,快速发现问题。

mips随机指令自动生成模块为一个b/s在线工具,在教学环节供学生生成指定数量的mips汇编指令随机序列,这些随机序列由mips标准指令集中随机选取的指令构成。mips模拟器执行模块,模拟真实mipscpu运行环境,运行mips汇编程序,实现功能如图2所示。将mips随机指令自动生成模块生成的随机测试指令放入mips模拟器执行模块中运行,得到每条指令执行后的指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果,作为随机指令测试系统的标准结果。硬件描述语言仿真器执行模块,用于cpu的设计阶段,为硬件描述语言编写的cpu提供仿真服务,实现功能如图3所示。本发明通过运行所实现的激励文件,在仿真阶段将cpu运行每条指令后的指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果输出到目标文件中,作为测试结果。执行结果对比模块,将mips模拟器执行模块和硬件描述语言仿真器执行模块得到的标准结果和测试结果进行逐行对比,比较每条指令执行后指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果是否正确;错误则提示执行错误的指令和指令地址,否则提示正确信息。

所述的综合指令测试子系统包括综合测试指令模块、硬件描述语言仿真器执行模块、执行结果查看模块。综合指令测试子系统将综合测试指令模块实现的mips标准指令的综合测试汇编程序载入cpu后在硬件描述语言仿真器执行模块中进行仿真测试,该汇编程序运行后可通过执行结果查看模块方便查看综合指令在cpu中的执行结果和错误信,实现cpu的完备测试。

综合测试指令模块,实现了mips标准指令集的综合测试汇编程序,该汇编程序涵盖mips标准指令的逐条测试,测试过程中程序自动进行指令执行结果的正确性判断,载入cpu后在硬件描述语言仿真器执行模块中进行仿真测试,会将正确或错误标识存入内存及寄存器便于查看。硬件描述语言仿真器执行模块与随机指令测试子系统中的相同。执行结果查看模块,该模块将硬件描述语言仿真器执行模块的执行结果进行分析,根据结果标识返回正确或错误,根据错误特征号返回错误指令。

(2)系统模块实现

mips随机指令自动生成模块在windowsserver2008r2上实现,基于.net架构,由c#编写,为一个b/s在线应用系统,每次可生成指定数量的符合mips规范的随机指令序列。如图4所示。

在测试随机指令序列时,需要一个标准结果和一个测试结果,标准结果由mips模拟器执行模块生成,本发明在实现中用到了mars,mars是一个开源的mipscpu模拟器,使用java编写,为了得到每条指令执行后存储器和寄存器的内容,本发明实施例需要对mars进行二次开发,在每条指令执行后将32个寄存器结果、标准寄存器结果、指令地址和执行的指令机器码写入结果文件,执行完成后作为标准执行结果。如图5所示,在mips模拟器执行模块中,通过用户界面模块向编译模块、mips硬件模块、模拟运行模块发送命令,在编译模块中输入汇编程序后可进行编译操作,mips硬件模块实现mipscpu硬件部分,主要为存储器、寄存器和指令管理,编译完成后可以在用户界面中管理存储的数据,或使用模拟运行模块开始运行mips指令。为了在每条指令执行之后输出指令机器码、指令存储地址、标志寄存器和32个寄存器内容,模拟运行模块需要在每条指令执行后给予mips硬件模块一个反馈请求信号,由存储器、寄存器和指令管理器将内容输出到一个result.txt文件,作为标准输出结果。

测试结果由硬件描述语言仿真器执行模块生成,本发明在实现中用到了modelsim,首先需要用mips模拟器执行模块导出编译随机指令序列后得到的二进制文件,cpu加载二进制文件后用modelsim进行仿真测试,仿真阶段需要激励文件,本实施例测试工具提供的激励文件用verilog编写,给予cpu执行所必须的时钟信号和复位信号并根据时钟信号在适当的时机导出需要的变量值,实现在cpu仿真运行时输出每条指令执行后的指令机器码、指令地址、标志寄存器和32个寄存器内容到一个result.txt文件作为测试结果。

执行结果对比模块使用python编写,将mips模拟器执行模块和硬件描述语言仿真器执行模块得到的标准结果和测试结果进行逐行对比,比较每条指令执行后指令机器码、指令存储地址、标志寄存器、32个通用寄存器结果是否一致,不一致则相应指令执行错误,完全一致则执行正确。错误则提示执行错误的指令和指令地址,否则提示正确信息。如图6,比对两个结果文件,对比发现在指令地址为8,执行指令20200001后,1号寄存器的结果出现了错误,需要进一步调试修改。

综合测试指令模块使用mips标准指令集编写,该汇编程序涵盖mips标准指令的逐条测试,测试过程中程序自动进行指令执行结果的正确性判断,测试过程如图7所示。首先测试cpu通用寄存器的读写功能,然后测试一些基本指令,如移位指令、加法指令,在测试验证这些基本指令的正确性后再以这些指令为基础对一些复杂指令进行测试。测试过程通过将已知的正确结果存储至内存或寄存器中,在指令执行完毕后取出正确结果进行比较,若正确则继续执行直到全部指令测试完毕,将正确标识存入指定内存以供查看,若出现错误则跳出异常,结束测试,每条指令的测试结果出现错误都会将相应的错误标识存入内存中,以区分不同的指令错误,方便错误查找。

执行结果查看模块使用python实现,将硬件描述语言仿真器执行模块的执行结果进行分析,根据结果标识返回正确或错误,内存标识为ac表示正确,内存标识为ce表示错误,根据错误特征号返回错误指令。

创新点及有益效果

(1)设计了一套面向实践教学的mips-cpu测试工具,由系统自动生成随机指令并得到指令执行结果的标准文件和测试文件,比对结果进行cpu测试,避免了传统测试方法在仿真器中逐条指令查看仿真结果的不便,使cpu的测试工作变得更加快速便捷。

(2)将cpu测试分为了随机指令测试和综合指令测试,实现了mips随机指令自动生成模块和综合测试指令模块,完善了cpu设计过程中的测试方法,保证了cpu测试的完备性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1