公司新闻

为什么硬件仿真的 OS 类似于计算机系统

Lauro Rizzatti,验证顾问
2017 年 9 月 13 日

Mentor 的 Charley Selvidge 认为,硬件仿真器操作系统由仿真器软件系统自然演变而来。

Charley Selvidge 是 Mentor, a Siemens Business 的首席工程经理,待人谦逊有礼,同时深藏敏锐才智和精湛学识,能够用通俗易懂的词语解释复杂概念。
正因如此,他在阐述硬件仿真发展前景时得心应手,这也正是他颇为精通的领域。在 20 世纪 90 年代末,Charley 在马萨诸塞州剑桥市的麻省理工学院 (MIT) 附近创办了 Virtual Machine Works 公司。据了解,VMW 于 1998 年被 IKOS Systems 收购,之后于 2002 年加入了 Mentor。

Charley Selvidge(信息来源:Mentor)

尽管 Charley 常年变动,甚至贯穿整个美国迁至加利福尼亚州,但期间他从未间断地设计和完善新型仿真器。最新版的 Veloce 硬件仿真平台就是他的杰作,这是一种名为 Veloce Strato 的数据中心友好型仿真平台。

最近,Charley 一直认为,硬件仿真器操作系统由仿真器软件系统的自然演变而来。

为说明这一点,他用计算机系统做类比。“在计算机出现的早期,计算机没有操作系统。程序员很快发现,在计算机硬件的低级操作和想要在计算机中运行的高级任务或程序之间创建标准软件是非常有用的。”分层方法将提供一系列一致的服务,从而更容易地开发应用和程序,无需重新设置或重复开发通用的底层功能和库,如打开文件或与计算机进行的其他交互应用。

Charley 对比仿真器并指出:“硬件仿真器包括底部可用于运行数字芯片硬件执行平台以及可以在仿真器上运行的一系列应用型任务。”这些任务通常具有高级目标,例如对芯片功耗进行特征提取或处理运行于芯片内部处理器上的软件应用。不论是哪种情况,整个芯片均需视为任务的一部分。

他补充道,这些确实是仿真器通常执行的高级且复杂的任务。操作系统内部仿真的一系列中间服务标准将高级任务和与仿真相关的低级、特定于机器的细节隔离开。

因此,Charley 确定,操作系统对于仿真器而言是一个新颖的概念。

硬件仿真中的硬件和软件可扩展性

所有仿真器均基于某种建模元器件,也就是说,是一种可以对芯片建模的设备。大多数建模元器件是以少量、中等或大量形式组装,可以创建不同规模的系统。在此底层硬件之上是一种软件编译系统。仿真编译器读取数据库或集成电路模型,并写入数据流以配置仿真器中的建模元器件阵列,以形成芯片映射。

通常情况,使用计算机程序设计集成电路,这种程序可以执行以一种通常称为硬件描述语言 (HDL) 的计算机语言编写的电路描述。最常用的 HDL 是 Verilog、SystemVerilog 和 VHDL。电路描述确定了电路特性。将这些描述合并成一个真实的电路,并编译成在仿真器上运行的模型。

据 Charley 介绍,获得芯片模型后,设计师可将其加载到仿真器上,这是由仿真器的 OS 软件执行的特定于机器的任务。OS 还可以执行一些其他任务,包括运行和停止时钟、访问设计可见性数据,或将激励应用于仿真模型以及收集其响应。他还提醒我们注意,功能性设计验证任务包括向设备中写入数据、从设备中提取数据、判断设备是否正确,以及与之交互。

这些基本任务对于仿真器可以执行的最高级作业而言很普遍。他举了几个例子,包括对功耗进行特征提取、运行软件和其他一些活动。这些最高级作业反过来调用底层服务的各种基本单元,以完成执行。Charley 以提取可见性数据以确定功耗为例。这涉及在测试环境中运行设计、提取数据、处理数据以及向更多软件提供数据以进行功耗运算。

扩展软件复杂性是扩展的一个方面,也是一个好的示例。如果拥有如下 OS 会很有帮助:该 OS 能够为更复杂任务提供一系列以更高级抽象方式(换言之,计算机编程方式)管理的基本功能和服务。Charley 补充说:“设计师不想使用汇编语言编程。他们不想编写自己的文件服务程序。现在,他们只需要编译器和标准接口来实现功能。

仿真器 OS 扩展的第二方面是对多种型号的设备建模。一方面,设计师可以选择对小规模的知识产权 (IP) 模块建模,以适应一些小型仿真硬件资源。另一方面,设计师可以对 CPU 或大型互联网开关芯片等完整片上系统 (SoC) 设计建模。这样就产生了一系列面向软件的挑战,这些挑战就是开发用于处理小模型和大模型的软件兼容性。

他表示:“大型设计难以管理,但针对多种规模做出适当的权衡更具挑战。一旦解决了软件挑战,将有利于在一个标准化的地方存储解决方案。这个地方就是 OS。”

为可见性等功能提供 OS 中的服务,能够为小型设计和大型设计提供适当的功能支持,并且无需设计师掌握高效扩展的原理。

Charley 说:“在以上这些方面中,OS 是用于开发仿真器软件的一种适当的软件组织策略。”

硬件仿真应用程序

这让 Charley 对硬件仿真产生了新观点。与 PC 或手机一样,硬件仿真正在进入“应用程序”世界。硬件仿真通过与消费类电子设备软件基本相同的方式,为这些应用程序提供服务。

当处理“应用程序”等特定于应用的问题以及开发解决这些问题的软件时,以无需编写软件即可完成任务方式封装的较低级服务很有帮助。这些服务可以由操作系统通过一组应用程序编程接口 (API) 以可访问的形式提供,API 是一种较高级应用获取底层服务的方法。

通过实施这种软件组织(指 OS 和应用程序),设计师可以让 OS 软件平稳化,并确定一系列有效且一致的 API。这种方法可以高效开发应用程序,无需考虑较低级细节,且支持不同版本硬件仿真平台。

使用 OS 的另一方面是能够通过提供具有透明度的适应层,将程序等较高级软件元素与底层硬件中的变化隔离开。设计师使用这种方法开发的应用程序不会因硬件平台的发展而变化,可以保护原始投资,供将来加以利用。无需重建旧软件便可在新平台上工作,因此设计师可以潜心开发可在多代平台运行的新软件。

他最后总结道:“像这样的 OS 和“应用程序”软件组织方法对于设计师而言独特而有利。”接下来,我们请 Charley 继续考虑操作系统,也许就会出现新一代的硬件仿真器。同时,我们之后要考虑的是硬件仿真的未来发展潜力。