Simics设备建模(视频演示)
由Jakob Engblom.
为了一种暗示在SIMICS中的建模方式,我们发布了一个在Youtube上的视频这显示了如何将新设备添加到现有计算机中。在视频中,任务是将新设备添加到现有计算机,并为此设备开发驱动程序软件。为此,我们使用Simics Eclipse中的建模透视图,以及自动单元测试,全系统测试和用户交互式测试。我们在Simics DML和Python中编写代码。
我们正在构建的设置如下:
我们有一个基于arm的QSP机器有两个核心和一组基本的外设,并添加一个新设备,它是一个简单的用户面板的控制器。面板本身有四个彩色led,可以从设备上打开和关闭,以及一个按钮输入,应该导致设备发送一个中断到机器的处理器(通过中断控制器)。我们还假设存在一个包含设备驱动程序的软件栈,并且最终目标是使该软件驱动程序满意我们的虚拟平台。这种情况代表了许多真实的模拟的使用和建模。
在这段视频,我们展示了如何使用该设备使用SIMICS Eclipse GUI,通过Simics建模白皮书的阶段:
- 在开始时,我们将QSP机器与面向用户的面板一起使用。
- 设置设备的编程寄存器映射的骨架(使用DML)
- 将设备添加到机器设置(系统内存映射)
- 用软件测试运行(由于没有功能而以失败告终)
- 设置单元测试以描述设备的功能(基本上是测试驱动的开发)
- 填写大多数功能(我们在这里快进,就像在烹饪秀中一样,你从烤箱里放在烤箱里的蛋糕到它正在进行中)
- 重新运行单元测试,并使用软件重新测试,以显示设备仍然略微不完整
- 填写最后一部分功能
- 重新运行单元测试和软件测试,显示设备现在正常工作
在行动中,测试运行如下所示:
在实践中,大多数Simics建模都是以类似于本视频的方式完成的,即向现有的机器添加内容。使用Simics,建模几乎总是可以从一些现有的运行系统(从一个QSP开始)开始快速启动平台l就像我们在视频里看到的一样现有的模型)。即使是从头开始,我们也会快速构建一个基本的运行系统,这样我们就可以运行一些东西,然后进行迭代随着时间的推移,添加新设备。Simics系统建模是敏捷的、迭代的和测试驱动的活动。
当软件还不能用于新设备时,单元测试就成为开发工作的主要驱动力。测试本质上定义了设备的正确行为。在实践中,软件驱动程序将使用设备模型作为其基础来开发,之后当硬件到达硅中时,这些驱动程序将用于测试硬件。
有关用SIMICS建模的更多信息,请参阅西米奇建模白皮书。
设备建模也是其中的关键部分试验目标设置西米奇。