近年来,随着嵌入式技术的飞速发展,各类处理器也层出不穷,对于处理器的软件仿真技术应运而生。软件仿真为处理器开发节省了大量的成本并极大提高了研发的速度,因此,软件仿真成为如今嵌入式中相当关键的一部分。
能否给出正确的仿真结果决定了一款仿真软件的成功与否,因此需要有一个验证平台及大量的测试用例来对仿真软件进行验证。
本设计围绕TMS320F2812数字信号处理器,对现有的精确至周期的处理器仿真模型设计验证平台。设计该验证平台应研究以下内容:
1. 测试用例语言的表达形式。测试用例语言应当是用户友好型的,简 洁明了,方便用户的使用,同时应当尽可能表述测试指令的含义, 使用户尽快读懂测试用例。
2. 用户友好型与机器码型的转换。仿真模型所支持的语言是机器码, 所以要将用户友好型测试用例转换成可被仿真模 型执行的机器码型 测试用例,为之后验证模型做准备。
3. 对测试用例的自检功能。用户在给出测试用例时对结果有预先判断, 即断言。验证平台在运行用户给出的测试用例时,应能够自动将每 一阶段的运行结果与该阶段的断言作对比,若出现错误,应及时停 止运行并报错,这样能极大提高测试用例运行的效率。
4. 批量测试用例的生成。对仿真模型的验证需要大量随机测试用例, 才能尽可能覆盖仿真模型的各种情况。验证平台应能自动生成批量 测试用例,这将节省大量人力。实现这点,先要设计用例模版,在 模版中设定随机变量取值范围以及用例生成的规则,再通过用例模 板自动生成批量随机测试用例,这些随机测试用例是受模版控制的。
5. 正确参考结果生成。验证平台的最终目的是验证仿真模型的正确性, 所以必须保证给出的参考结果是正确的。通过CCS对参考结果做验 证。
6. 仿真模型的验证。将自动生成的测试用例在验证平台上运行得到的 参考结果与在仿真模型上运行的结果作比对,自动鉴别结果是否一 致。若不一致,应能生成运行报告,指明结果出错处,便于纠正仿 真模型的错误。
根据研究内容,具体完成工作如下:
1. 学习F2812处理器相关资料。
2. 制定用例语言的表达形式。根据用户友好性的原则,用C++实现测试 用例指令集。
3. 实现指令与机器码的转换。在每条指令编写时就将译码模块加入。
4. 验证平台自检功能。自行设计测试用例与断言,完成验证平台运行 测试用例时与断言作对比的功能。
5. 设计用例模板,根据具体情况设置随机变量取值范围,在可控范围 内批量生产随机测试用例。
6. 利用CCS对平台给出的参考结果做验证。首先要熟悉CCS的功能及 具体操作。将测试用例转换成汇编语言型,使CCS能够执行。对CCS 的输出结果与参考结果作比对,证明验证平台的正确性。
7. 对验证平台改错。如果CCS验证结果发现平台出错,应逐条测试用 例检查,排错,直到所有测试用例的检验结果都正确。
8. 完成验证平台参考结果与仿真模型运行结果比对功能。
9. 根据比对结果,对仿真模型排查问题。
这个课题是我的毕业设计,已经在毕业实习阶段完成部分工作,现在接着毕业实习继续做下去。将每天的工作、遇到的问题及心得写在这里。