功能的准确性是什么?

没有简单的答案,但集成电路设计成功还是取决于它。

受欢迎程度

什么是功能上的上下文中准确虚拟的平台变化很大,这取决于你问谁,甚至当你问他们。但这并不意味着功能精度不是很有用。

乔恩•麦克唐纳技术销售工程师在设计和创建业务导师图形,希望看到更多的活动在这一领域在不久的将来,因为工程团队必须找出如何定义什么是最低功能准确的系统。“我们已经做了很多工作在向上移动抽象,我们描述如何设计,但没有那么多想投入移动在抽象是正确的在设计和验证设计,因为它是不同的在不同的抽象级别不同的人。”

集团董事弗兰克Schirrmeister产品管理和营销体系,验证小组节奏同意的追求向上移动黄金参考模型已经持续了几年,在一些地区,现在可能取决于系统的范围。

那么什么是功能准确性的一个虚拟的平台?“这意味着如果你把一个特定的同步点,这与视频效果很好,例如,假设逐帧,它真的解码h或不管它是什么。你功能代表正确的虚拟平台,它可能是一个C函数或者甚至抽象成一个逻辑middleware-type函数,你发现在你的工作站执行虚拟平台。你甚至不做h C模型中正确解码功能。你可以叫一个API,您的主机工作站可以提供,但在一天结束的功能准确是指在一个特定的同步点您看到一个输出的数据是正确的。那将是功能准确在逐块层面,“Schirrmeister提供。

将会截然不同的含义从14-bit定点信号处理的角度来看,然而。“如果我有它精炼,现在是micro-functionally准确因为现在字面上的每一点都是正确的,”Schirrmeister说。“这不会是视频本身是正确的,在浮点计算,但现在我每一点代表的功能绝对正确。然后,你离开的空间在一个上下文功能准确的时间等等。我怎么现在传输这些数据?这是成为一个实现方面。”

功能准确性的另一面是渴望拥有一个完全正确的可执行的规范,这是更难以实现,他解释说,“因为现在你提升这一块的水平,假设视频解码器,全系统方面,现在你必须本质上代表所有场景的系统可以通过正确。很难建立,有时根本不需要一个完全可执行的规范,因为你最终验证无论如何,通常不使用完整的系统。您定义子系统或子组件的设计,您需要验证。功能验证准确性无疑是重要的方面,当然最终目标在这种背景下一直到一个模型,你可以验证和仿真模型,并使用相同的模型高水平的合成为实现。我觉得我们越来越近。现在的道路。”

功能精度的另一个定义在一个虚拟的平台包括正确建模更高级的机制,根据Benoit de Lescure应用工程总监Arteris。系统中多个层次的机制——逐周期精确的协议类型的事务,例如,将周期和bit-accurate。但也有机制,比如那些依靠测量数量的传输大的一段时间,喜欢的服务质量。

“你期望网络芯片(NoC)实现机制(如服务质量,和使用这些机制可以共享一个资源目标或链接,后一个仲裁者,据一些设置,说,我想让这个家伙得到30%的带宽。但30%的带宽意味着你测量传输较大的一段时间。在这种背景下,我想适当的模型系统的路径,所以我看着长模拟。有一堆我不关心细节,和它的抽象。但我关心的是功能准确我的服务质量。什么样的细节你可以去掉吗?和接受抽象在这种情况下,例如,任何不直接干涉系统和考虑错误管理吗?你会认为你的系统没有错误,甚至如果有一种方法来捕捉一个错误。所有你想要的是一个功能系统的精确模型在稳态时。”

测量性能
首席技术官超音速指出,功能精度也可以称为性能精度的两种常见的已部署的虚拟平台的方法。一种方法是侧重于建立一个模型,允许软件开发可用的硬件被提前进行。”在这种情况下,时间的概念是需要精确模拟并不是通常被认为是在大多数的工作。工作是关于软件功能正确。创建的虚拟平台模型,通常专注于想要最快的模拟他们可以得到速度,所以他们故意作弊对建模时间。”

的微处理器,软件运行所需要的内存访问存储数据结构和接收指令。“他们不模型,”他说。“他们基本上只使用他们的主机内存在CPU上运行模拟直接增加软件仿真的速度通过数量级不想模型。一旦你这样做,很多事情在时间窗口出去。重要的软件正常通常可以归结为订购。如果这事件发生之前,事件,有些情况下,你不能说服自己软件上班除非虚拟平台模型可以让你说。这归结为同步,不是关于时间建模”。

Wingard观察,人们试图建立这些模型在松散的,但在他的经验,许多设计团队放弃的价值。

建模是虚拟平台的其他风格更加抽象。他引用了老CoWare的处理摩托罗拉解决一个特定问题。呼叫中心是主人的手机打来的电话,但有这么多型号的手机,每个人都在呼叫中心都有一个盒子的摩托罗拉手机,这样当他们试图通过一步指导别人,他们可以在电话的具体模型和步行通过系统调用者。CoWare创建了一个高级虚拟平台模型,可以在接近实时运行实际的软件,使他们有一个电脑在他们面前有一个虚拟版本的手机。

“当我们接近主题表现,“Wingard说,“我们发现,有一种不同的平台通常是创建的模型,这是一个试图抽象的功能芯片,而不是专注于芯片的性能。你为什么要这样做呢?我们担心要花多久模拟运行。在性能领域中,大量的时间将两个街区之间传输的数据是毫无意义的——最重要的是有多少数据移动和在什么时间和地方,之类的东西。”

这就导致的话题内存这些系统的建模,因为在许多的大多数组件之间的通信是通过外部的形式共享内存动态随机存取记忆体。这意味着你必须模型存储系统的吞吐量,和与之相关的延迟是依赖于地址、破裂长度,读写结合,之类的东西,”他说。“记忆的特点可以相差很大,甚至疯狂,那些因为DRAMs是建基于页面和银行,等等。我们发现在这个风格的建模是非常重要模型网络和内存子系统周期精确的方式。事实证明,任何的不完全周期精确建模最终生成错误倾向于积累所以你不能使良好的性能决定。我们所做的权衡,我们大多数人认为这是一个有价值的IP阻止cpu和gpu和我们取代那些黑匣子和我们认为交通发电机。只要你能得到相对精确的模式,和破裂长度和行为在时域,然后你可以把这些信息结合在一起,构建有用的东西。”

一个微妙的转变
虽然好处看起来清楚,很多时候,转向更高层次的抽象可能会非常棘手。麦克唐纳说,在最近的一个项目阿尔特拉,其工程师知道导师图形创建TLM平台为他们但他们一直试图验证一下他们会验证的方式RTL。“他们试图看东西逐周期或instruction-by-instruction和事务级别就不适用。我们需要能够说什么关键的东西必须是正确的;是什么关键的东西必须以正确的顺序,并不是一切都因为模型是不同的。”

但是这也带来挑战的行业不是一个真正的协议,这些东西是什么。

“我相信有可能标记这些东西的一种方式或表达的关键是什么东西,”麦克唐纳说。”这个问题的部分原因是我不认为你一定能说,例如,中断必须发生在相同的顺序。有人可能会说这不是正确的功能如果中断不相同的顺序。另一个人可能会说,“我不在乎什么顺序的中断来适当地出来,只要我的输出和我对刺激的反应可能会有所不同。”

事实上,许多人使用虚拟平台软件也复杂化很重要,因为软件通常是简单得多的并发性需求,麦当劳解释道。“软件人可能会考虑多个线程,但不是在同一水平上你会在硬件。和你通常考虑单个执行线程,但是当你看一个复杂的系统与多个线程,异步中断进来,资源冲突跨进程运行在不同核心,甚至改变系统的行为基于更多的负载在不同cores-all处理这些东西可以改变的事情,他们订单处理,你想让你的系统能够支持。所以可能会有多个正确的动作序列需要能够被接受为正确的。”

显然,更需要做这所有的工程社区。但至少被识别问题和矛盾的地方,这是一个良好的第一步。



留下一个回复


(注意:这个名字会显示公开)

Baidu