2013年11月15日 Eclipse

Simics设备建模(视频演示)

由Jakob Engblom.

jakob-engblom-intro-picture

为了一种暗示在SIMICS中的建模方式,我们发布了一个在Youtube上的视频这显示了如何将新设备添加到现有计算机中。在视频中,任务是将新设备添加到现有计算机,并为此设备开发驱动程序软件。为此,我们使用Simics Eclipse中的建模透视图,以及自动单元测试,全系统测试和用户交互式测试。我们在Simics DML和Python中编写代码。

我们正在构建的设置如下:

建模目标

我们有一个基于arm的QSP机器有两个核心和一组基本的外设,并添加一个新设备,它是一个简单的用户面板的控制器。面板本身有四个彩色led,可以从设备上打开和关闭,以及一个按钮输入,应该导致设备发送一个中断到机器的处理器(通过中断控制器)。我们还假设存在一个包含设备驱动程序的软件栈,并且最终目标是使该软件驱动程序满意我们的虚拟平台。这种情况代表了许多真实的模拟的使用和建模。

这段视频,我们展示了如何使用该设备使用SIMICS Eclipse GUI,通过Simics建模白皮书的阶段:

  • 在开始时,我们将QSP机器与面向用户的面板一起使用。
  • 设置设备的编程寄存器映射的骨架(使用DML)
  • 将设备添加到机器设置(系统内存映射)
  • 用软件测试运行(由于没有功能而以失败告终)
  • 设置单元测试以描述设备的功能(基本上是测试驱动的开发)
  • 填写大多数功能(我们在这里快进,就像在烹饪秀中一样,你从烤箱里放在烤箱里的蛋糕到它正在进行中)
  • 重新运行单元测试,并使用软件重新测试,以显示设备仍然略微不完整
  • 填写最后一部分功能
  • 重新运行单元测试和软件测试,显示设备现在正常工作

在行动中,测试运行如下所示:

建模 - 截图

在实践中,大多数Simics建模都是以类似于本视频的方式完成的,即向现有的机器添加内容。使用Simics,建模几乎总是可以从一些现有的运行系统(从一个QSP开始)开始快速启动平台l就像我们在视频里看到的一样现有的模型)。即使是从头开始,我们也会快速构建一个基本的运行系统,这样我们就可以运行一些东西,然后进行迭代随着时间的推移,添加新设备。Simics系统建模是敏捷的、迭代的和测试驱动的活动。

当软件还不能用于新设备时,单元测试就成为开发工作的主要驱动力。测试本质上定义了设备的正确行为。在实践中,软件驱动程序将使用设备模型作为其基础来开发,之后当硬件到达硅中时,这些驱动程序将用于测试硬件。

有关用SIMICS建模的更多信息,请参阅西米奇建模白皮书

设备建模也是其中的关键部分试验目标设置西米奇。

以前的十大信赖Wind River Linux的理由-第三部分
下一个虚拟物理模拟(附视频)