中文 英语

使模型可互操作

行为建模仍然处于不确定状态,因为使抽象级别互操作的困惑仍然存在,但是仍然有自动化的空间。

受欢迎程度

随着工程团队将他们的设计愿景提升到更高的抽象级别,行为建模的使用正在增长。虽然这些概念并非无处不在,但它们正在逐渐形成,这至少有助于行业更智能地讨论这项技术,并确定自动化在哪些方面有意义。

行为建模最大的问题之一是工程团队想要用模型做什么,以及他们应该在什么时候做。

“如果我们正在为尚未设计的行为建模,这是行为建模的一个重要类别——当我们正在开发算法和类似的东西时——我认为我们不能直接自动化建模,”的CTO Drew Wingard说超音速.“当然,有很多建模框架已经存在很长时间了。有些人喜欢用MATLAB和Mathmatica,还有其他各种各样的东西,它们是非常特定于这种算法建模的领域。你可以称之为自动化工具。但在这些环境中,你要做的是设计自己的算法。”

然而,如今行为建模中更大的问题更多地与用户说他们已经构建了一些东西,并且他们有理由为此进行行为建模有关。温加德解释说:“因此,他们将研究行为模型的自动提取。”“答案是有一些技巧,但我不认为它们很有吸引力。例如,一种方法是采用硬件块的RTL,并将其通过翻译器转换为C或c++。它提供的加速非常无聊——速度不够快,无法在软件中做有趣的事情。因此,我不认为自动化是一种可行的方法。然而,行为建模非常重要,即使在你构建了一些东西之后。”

建模的类别
行为建模分为两大类——功能建模和性能建模。在功能建模方面,业界将虚拟平台作为重中之重已经有一段时间了。

“通常,虚拟平台模型的目标是允许软件开发人员进行依赖于硬件的软件设计,所以这些模型运行时没有强烈的时间概念是可以的。这些模型确实运行在人们通常称为位精确级的抽象级别上,这是没有问题的。换句话说,如果我写入这些位,我希望这些值出现在这些位中,但我不知道顺序是什么,我不知道什么时候会发生。这适用于一类很好的系统。这些模型通常由软件人员使用。我所见过的使用这种建模作为基础设计一部分的客户数量并不常见,因为通常他们从设计角度来看没有那些模型旨在解决的问题。”

在性能建模方面,Wingard指出,在大多数SoC设计中,最大的挑战之一是关键资源的共享,尤其是片外内存。为此,有必要了解所构建的芯片的最终目标是否能够在给定一组围绕真正的存储系统的核心的情况下实现。在这里,在行为级别上进行建模是非常可取的,因为如果必须在非常详细的硬件级别上进行建模,那么计算出这一点的运行时间将非常糟糕。

“事实证明,将一些非常复杂的子系统的行为抽象为一组驶向内存的定时流量是相对容易的。如果这些流量流具有真实的地址模式,这是非常有价值的,因为像DRAM系统这样的东西的时域行为非常依赖于地址模式。我们发现,除了网络和内存系统之外,IP子系统非常抽象的行为建模是有意义的。在那里,我们不相信有一个很好的替代运行在一个周期精确的抽象水平,”他解释说。

温加德解释说,这并不意味着它必须非常慢,因为看看一个完整的SoC设计,并考虑到它有多少可以用这些行为模型进行黑盒,结果是网络和内存子系统并不构成设计的很大一部分。“通常情况下,你可以使用RTL技术来运行它,并将其转换为更快的模型。我们还发现它在我们的系统中非常实用,因为我们已经将其作为验证工作的一部分,并为我们的IP构建了周期精确的SystemC参考模型。我们可以在一个运行更快的模型中以周期精确的水平对网络和内存系统进行建模,因为它是使用OSCI TLM-2.0标准以周期精确的system C方式构建的,我们发现在这个模型上进行这种性能建模非常有吸引力。”

库尔特·舒勒,营销副总裁Arteris他指出了类似的方法。建模是内置的,所以当某些东西高度可配置时,建模是非常重要的。你不知道你需要做什么,除非你知道它会产生什么影响。“你真正了解复杂技术的唯一方法是建模。没有算法能说明如果我拉动杠杆X, Y就会发生。你知道它的唯一方法就是模拟它。”

他说,这是一个反复的过程。“当你定义一些东西时——这些互连可能连接200个IP块,所以芯片上有一个巨大的互连——他们说,‘如果我做这种类型的拓扑,或者如果我在这里放一些缓冲区,或者如果我改变一些服务质量的东西,当我运行某种类型的负载时会有什么影响?“我们的这些模型在功能上是准确的,但部分时间是准确的,所以它们不是100%准确。它们不是周期精确的,但它们运行得足够快,以至于你可以在等待答案的时候不需要喝10杯咖啡就能完成这个迭代。这让你得到了部分结果并帮助你收敛。在这个过程的最后,当你真正需要了解某些东西是如何工作的时候,那就是你要使用周期精确模型或将这个东西放到FPGA上的时候。”

舒勒说,这是完全自动化的。“当你创建一个互连时,在引子之下,你最终创建的也是RTL。但是你也在创建一个不那么周期精确的模型,你在创建一个周期精确的模型,你在创建验证测试平台,以及UVM/OVM/VMM之类的东西。所有这些都放在里面,这是一个非常复杂的东西。这对客户来说非常简单。它已经完成了,但你会惊讶地发现,有些人提供的IP是可配置的,而你没有。如果你提供一些可配置的东西——互连可能是芯片中最可配置的部分——我认为没有任何方法知道如何配置它,除非你有内置的自动化建模。我只是不明白这怎么可能。”

此外,他观察到,真正困难的是在规范的抽象层次之间导航。“在某些情况下,设计中的抽象级别是不匹配的,必须有人想出如何将它们组合在一起。”

在这一点上,当工作已经完成时,Frank Schirrmeister,系统开发套件的产品营销组总监节奏他将行为建模的当前状态总结为“它仍然是不连接的。”

他指出,最近在一个行业活动上的一个小组讨论了行为建模,甚至是高级综合中的虚拟建模是否使用相同的模型。“答案是,我们还没到那个地步。这意味着相比之下,即使是相当详细的模型,虚拟平台仍然与实现不相连,所以如果我去上面的纯功能和行为模型,比如uml类型的东西,它们仍然没有连接到实现流,但我要寻找的是基于图形的技术。你正在使用一些建模技术来定义那些场景,来定义那些顶级测试,所以你在这一级别所做的事情非常自然地适用于UML中的消息序列图,基本上是说,为了实现这个,块A需要唤醒块C和D,块B需要等待直到C和D交谈。所以你可以用UML中的消息序列图来定义它。在UML中,您也已经有了描述,比如用例描述,用例图定义了不同的块及其输入和输出,它们可以采取的操作,它们如何交互以及如何使用,以及这些块的约束。”

Schirrmeister认为,除了成为芯片的测试环境之外,一些行为建模技术将被重新用于验证。整个基于图的讨论都朝着定义测试和如何看待用例的方向进行。



留下回复


(注:此名称将公开显示)

Baidu