当我们谈论仿真时,我们通常谈论以 RTL 形式表示的数字逻辑,然后在仿真器中填充门。而且有很多这样的逻辑,所以就目前而言这很好。
但是,数字逻辑比以往任何时候都更需要与现实世界的模拟系统进行交互。其中许多系统都可以建模——就像数字系统一样。不同之处在于,这些模型通常利用连续时间实现而不是离散实现。它们被称为数学模型、连续时间模型或机电一体化模型。
对汽车革命的关注是其中的一部分,因为汽车中的电子控制单元(ECU)通常连接到机械部件。但是,您也可以在工业物联网中找到此类模型,其中越来越多的传感器和执行器连接到机械设备。
此外,还有一些离散时间应用 - 数字信号处理(DSP) - 也可能具有比RTL中可能表达的更复杂的数学模型或抽象的数学模型。
将这些类型的模型连接到 Veloce 仿真器非常简单。与 SystemVerilog 中表示的更典型的选择方案的使用相比,它可以提供更彻底的验证练习。但是,在仿真计划中包含此类模型的确切方式取决于模型的来源。
矩阵模型
Matlab 是一种非常流行的工具,用于以抽象的数学方式对现实世界的现象进行建模。它既可用于离散时间DSP模型,也可用于连续时间机电一体化或其他数学模型。
有三种可能的方法可以将此类模型连接到 Veloce 仿真器。
原生 Matlab 协同仿真。这需要在仿真期间访问 Matlab;仿真器通过直接编程接口 (DPI) 连接到模型。当然,您需要 Matlab 许可证才能运行模型;Matlab本身将作为自己的独立进程在主机上执行,与测试平台的其他元素一起运行。
导出 HDL 模型。这允许您在不运行 Matlab 实例的情况下使用该模型。相反,您可以使用 Matlab 的 HDL 编码器功能导出模型的 HDL 版本,该功能需要自己的功能许可证。然后,将模型模拟或模拟为 HDL。
导出 C 模型。与前面的方法类似,这利用了 Matlab Coder 功能,该功能同样需要功能许可证。C 模型可以使用 DPI 接口连接到模拟器。
Amesim和其他:FMU和FMI
像西门子的Amesim这样的工具也可以用来生成用于仿真的数学模型。但是这些程序依赖于连接到Veloce的模型的不同交换格式。这种格式是广为接受的行业标准,不仅得到西门子的支持,而且得到博世和其他数十家公司的支持。
这些模型有两个部分。首先,有功能模型单元或FMU的概念。您可以将其视为所需任何功能的块盒模型。它由C代码和一个XML文件组成。
通过功能模型界面(FMI)访问FMU。FMI 是封装或包装 FMU 的 API。它基于开放标准,这意味着无论用于生成FMU的工具如何,都可以合并FMU。只要它们遵守 FMI,那么任何使用 FMI 的模拟或仿真环境都可以访问该模型。FMI 还与设备无关,使模型在验证系统和主机之间可移植。
有两种类型的 FMU。
模型交换版本。其目的是仅提供模型的数学定义部分。如果您使用此模型,则假定您将拥有自己的求解器,该求解器能够查询和练习模型。如果您只是尝试将模型提供给已经拥有自己的工具来执行模型的团队,那么这是最适合您的格式。
协同模拟版本。此版本更适合验证和协同仿真。它包括求解器和数学模型,使其作为可集成到测试平台中的可执行单元自给自足。
请注意,Matlab 不直接支持 FMU。但是,您可以创建一个 C 模型,然后使用单独的工具将该 C 模型转换为成熟的 FMU。或者,如果没有这样的工具,您可以手动编码 C 包装器和 XML 文件。
插入模型
无论模型类型如何 - Matlab native,Matlab HDL,Matlab C或FMU - 它们都通过SCE-MI接口连接到Veloce仿真器,允许在主机上的测试平台和仿真器之间有效地来回通信更高级别的抽象和事务。
因此,随着连接到机械和模拟组件的系统数量的增加,这些组件的模型正在成为验证和确认的一个重要方面。如果仿真器能够依靠复杂、准确的模型来了解连接组件的行为方式,它们将能够完成更彻底、更现实的工作。来自模型的信号将作为仿真器中逻辑的更真实的激励,仿真器的输出可以驱动组件模型,以验证组件在响应这些输出时是否按预期运行。
数学模型是测试平台可以更准确地表示仿真电路将连接到的世界的另一种方式。由于模型使用验证工程师在运行仿真时已经熟悉的标准接口连接到 Veloce 仿真器,因此使用它们的门槛应该很低。
这将是验证复杂集成电路以确保它们在爆炸式增长的汽车和工业设备领域正常运行的一种越来越重要的方法。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !