中文 英语

控制数据爆炸

设计越来越大,验证时间越来越长,开发和部署的每个阶段都提供了有价值的数据——如果你能找到的话。

受欢迎程度

每个设计可以保留的数据量都是巨大的,但即使这样也可能不够,因为生命周期管理、持续验证、法规要求和全球化都增加了需要存储的数据。

但是,如果数据不能以比存储成本更有利可图的方式被发现或使用,那么它就没有价值。“数据管理并不是IC开发和验证所独有的,”Matt Graham说节奏.“我们的行业可能更加关注数据,因为与许多其他大型软件项目不同,我们必须取得第一次成功。我们的期望是,我们应该能够,而且我们需要能够,利用我们现在有能力收集和存储的所有额外数据。而不仅仅是拥有它,而是实际上改善整个过程。”

数据存储在哪里?微软营销主管西蒙•兰斯(Simon Rance)表示:“规模越大,转向云计算的压力就越大。Cliosoft.“然后你就可以迅速扩大规模。但这是有代价的。直到几年前,还存在安全问题。这个问题已经解决了,因为事实证明,这些类型的云计算公司拥有比大多数内部解决方案更好的数据保护。验证之所以进入云中,是因为它的数量和所需的处理。我们期待看到更多的数字和模拟设计进入云端。有更多的制造和测试数据,以及从一端到另一端的所有数据。这些数据必须放在云端吗?还是有一种方法可以在本地收集和维护所有数据?”

验证肯定会导致数据爆炸。Cadence的Graham表示:“通过模拟和原型设计,我们现在可以收集更多的验证数据,并对更广泛、更复杂的用例进行更多探索,真正类似于设备的使用情况。“我们可以开始做一些着眼于硬件和软件交互的事情。但是数据管理不仅仅是数据收集和审计跟踪。你需要能够利用这一点来满足客户在上市时间或其他效率方面的需求。”

需要保存的数据在变化,这些数据的价值也在变化。IC Manage首席执行官Dean Drako表示:“如今,一切都是关于IP块,以及这些IP块是如何组装的。“设计装配已经成为一套新的技能,一套新的工具,一套新的挑战。我可能有三到四个IP块,它们被设计用来把东西放在一起,但我重复使用了以前设计中使用的400个块。这都是关于已经存在的知识产权的巨大组装过程,其中一些是新的和改进的。”

多级数据
在考虑IP块时,有两组数据很重要。首先是与开发和验证IP相关的数据。第二个问题涉及如何以及在哪里使用该IP。在许多公司中,都有一个大型的IP块存储库,其中一些可能有几个版本,每个版本都是从原始版本修改的,以针对特定的用例或集成需求进行优化。

第一个挑战是找到合适的积木。IC Manage的Drako表示:“他们实际上是在自己的IP区块上要求一个搜索引擎,这样他们就可以找到自己感兴趣的内容。“他们需要知道它的哪个版本可用,哪个版本正在测试,这个IP块的17个版本的状态如何,以及它适用于哪些工艺技术。然后,在适当的情况下,它可以被拉进他们正在组装的设计中,基本上建造他们想要的东西。”

有些块比其他块需要更多的工作。“一个放在架子上的IP可能已经在硅中工作了三次。如果我们不改变它,我们可能只会做一个非常粗略的检查,然后把它放进我们的设备中。”“我们不会完全重新验证。但是当我们确实需要完全验证它时,我们需要把它从架子上拿下来,重新实现我们之前的任何结果,并将其作为前进的基线。那么,我们存档所需的最小数据集是多少呢?”

这远远超出了Verilog和一些测试平台的范围。Cliosoft的Rance说:“设计团队正在添加注释,他们基本上是在分享他们在以前的使用中看到的一些哥特式风格。“这些都是下一回合该做和不该做的事。他们可能已经弄清楚了为什么有些东西不能工作,为什么他们无法按照最初的计划将它与其他部分集成在一起,而这被以元数据的形式作为数字笔记记录下来。这是当前设计期间的分析,将对下一次设计甚至未来的设计有用。”

保留哪些元数据很重要。德拉科说:“我们为每个IP块附加了很多参数或元数据,包括何时使用,性能如何,测试情况如何,有多少设计使用过,哪些工程师使用过。”“然后你可以过滤和搜索符合要求的东西。”

背景很重要。Rance补充道:“当一个IP块被选中时,设计团队可能就不复存在了。“但元数据应该允许他们调出以前的芯片设计,这样你就可以看到它在层次结构中的位置,它与什么相关,与它相关的所有文件是什么,以及所有其他相关数据。这是我们添加到实际设计或实际数据中的增值数据。”

存储或再生
一个不断发展的问题是是否应该存储数据,或者仅仅在需要时能够重新生成数据就足够了。Graham说道:“由于庞大的容量以及模拟器等资源的成本以及它们所消耗的能量,我们并不能一直重复生成这些结果。“我们需要存储多少代码覆盖率数据?”它可以是一个聚合的,总结类型的结果,还是我们需要为每个执行的单独模拟提供特定的东西?失败的细节有多少?我们能不能只说有多少,属于什么类别,或者我们需要存储更深入的信息?仅仅有数据就足以重现给定的故障吗?或者我们需要更深入的信息吗?我们需要记录波的痕迹吗?我们几乎已经摆脱了重新创造这些结果的想法。我们没有时间,重现这些结果是一种奢侈。 We need to be able to retrieve whatever data it is and be able to do some meaningful analysis with that, but without having to store everything. Storing everything we captured on the initial run, ad infinitum, is not an option.”

问题这么多,行业共识却这么少。兰斯说:“许多人不确定哪些需要保留,哪些不需要。”“它需要一个解决方案,但似乎还没有人找到神奇的解决方案。有大量的验证数据。客户A会说,我们不能丢弃数据,因为如果出现问题,我们可能需要这些数据来找出问题并分析原因。重新生成数据的能力是主要的驱动考虑因素,但有些人希望在出现问题时立即访问数据。这不仅是再生,也是根本原因分析。”

德拉科说:“保存所有的验证数据是不可能的。“你几乎没有能力重新创造它。这是过去20年的普遍做法。可能有些人在讨论保留更多的钱,可能不是全部,但保留更多。我们根据验证结果创建元数据。然后我们将元数据存储在数据库中,以查看趋势,查看设计完成的收敛状态,并进行统计数据分析。”

元数据
元数据已经成为存储数据的一个重要方面。兰斯说:“追踪关联很重要。”“这段IP与什么有关——不仅是从逻辑上如何连接,而且是从系统中的层次结构上?”它就像一张蜘蛛网,将所有东西都连接到那块数据上,这样我们不仅知道它在哪里,或者它与什么相关,还知道它的版本号是什么,以及它的层次结构是什么。这让你可以通过搜索函数将其拉出来,你可以将其图形化。”

越来越多的数据被压缩成数量小得多的元数据。“今天,我们花更多的时间生成算法复杂的元数据,”格雷厄姆说。“例如,10年前,我们没有存储模拟或正式运行的整个日志文件,而是从中提取故障或警告消息。它是压缩的纯文本,但它是错误的时间x。一些检查失败,因为值x y z不匹配。然后我们可以丢弃日志文件,丢弃任何编译过的二进制文件或类似的东西,但保留错误消息和环境方面的元数据。今天,元数据变得越来越复杂。例如,我们可能想要存储切换覆盖率。我们不存储一个给定信号切换了多少次,但它是否切换了?元数据从32位计数器变为单个位。对于给定的层次结构,我们可以进一步简化。 We may not care that individual bits in a bus toggle. We just want to know that all the bits or none of the bits toggled. Again, we can collapse that further and further.”

总有一种危险,当你折叠数据时,你扔掉了一些最后很重要的东西。德拉科说:“元数据必须非常、非常、非常正确。“否则,这是一场灾难。错误确实会发生,但元数据通常比设计本身更有用。搜索引擎需要元数据来知道这是一个ALU或以太网,而通过查看设计文件几乎不可能知道这一点。它需要知道自己的速度有多快,需要多少功率,是否有能力进入断电模式——这些对设计师来说可能很重要,并且可以在不查看电路或代码的情况下得到答案。”

跟踪数据
在哪里以及如何存储和管理数据并不明显。Graham说:“有些人认为验证计划应该是一个全知、全见的文件,因为它包含了当时有意义的结果的表述。”“它还可以包含一系列其他元数据或环境数据。其挑战在于,它假定验证工具链和一个EDA供应商是所有验证活动的中心。再加上应用程序生命周期管理的思想,没有一个全知、全见的文档说明做了什么、怎么做的以及如何重做。相反,有一组相互连接的工具,其中验证工具可以与发布管理工具、修订控制工具和需求管理工具以及错误跟踪工具交换数据,因此所有这些系统的所有部分对于给定的项目都是同步的。然后,当你将这组数据存档时,它就可以作为一个集合存档。”

有压力要求它变得更加集中。兰斯说:“我们看到了需求,尤其是汽车等行业,他们不想要多个系统,因为那很难管理。”“他们想要尝试定义一种单一的数据管理解决方案,人们可以进入,你可以输入一个搜索查询。你可以开始调查一个故障,看看它在整个过程中与什么有关——不仅仅是在芯片设计本身,而是一直到制造。”

这当然会让一些任务变得更容易。Drako说道:“如果你着眼于一个设计管理系统,你便会发现他们可能同时拥有数千个设计。“公司内部有大量的知识产权共享。你希望世界上任何地方的任何人都能利用自己的能力来完成工作,直到你开始参与政府项目,或者跨越不同的地理边界、不同的法规和限制。现在你开始关注很多关于IP安全的问题。覆盖在设计管理系统之上的是一个非常复杂的安全层,以限制适当的人员访问,看到他们完成工作所需看到的东西,但看不到他们不需要看到或不应该看到的东西。”

许可是必要的安全措施之一。兰斯说:“这不仅仅是谁拥有这些数据,而是谁拥有这些数据的权利。”“如果某些东西在一两年内被重新使用,系统可能会标记出你拥有这些IP,但你不能继续重新旋转它,因为许可协议已经过期。这类信息都在法律部门。这是我们被要求解决的数据问题的另一个方面。没有人愿意因为使用未经授权的知识产权而惹上麻烦。”

扩展验证
与核查数据的大小有关的问题已经讨论过,但这个问题将继续增长。格雷厄姆说:“核实不再是一件开始和结束的事情。“它可能会起起伏伏。有时候工作比较忙,要赶截止日期。但当最后期限到来时,那只是一个里程碑,而不是终点线。”

验证正在成为从概念到设计到部署再回到修改后的概念的连续过程。“虚拟平台正在成为增加验证数量的手段,”公司首席执行官西蒙·大卫曼(Simon Davidmann)说治之软件.“在他们拥有RTL之前,这是唯一的模拟平台。一旦他们有了RTL,他们可以尝试运行Verilog,但它太慢了。他们可以将其放到模拟器中,这样做会更好一些,但它往往过于详细。当他们完成录制后,他们仍然使用虚拟平台,因为他们仍然在开发软件。这不仅仅是为了验证。这是因为他们正在构建应用程序,分层并将所有软件堆栈放在上面。即使当设备返回时,一些工作仍在模拟平台上继续进行,因为您有更好的可见性和可控性。试制结束后,验证的需求可能会减少,但对模拟的需求仍在继续。人们正在进行持续的集成,即使他们已经将设计带回现场,因为这是一个更好的开发环境。”

在某些行业,测试实验室的概念正在被数字双胞胎所取代。Drako说:“对于测试机构来说,在他们的测试实验室中保留每个芯片的几个版本是相对正常的,这样当他们要发布新的软件或升级时,他们就可以在每个已知的现有硬件变体上进行测试。”“但测试实验室不会拥有所有版本的硬件。想想微软新版本的兼容性测试实验室。它是巨大的,尽管仍然不够。”

这促使该行业开始考虑变得更智能。格雷厄姆说:“我们花费了大量精力来分析这100种不同实现之间的真正差异。“然后我们可以专注于这些。两种设计之间的增量是多少?在某些情况下,这是100%,但在很多情况下,这是一个很小的百分比。我们能用数据分析来理解这些差异吗?我们需要使模型或数字双胞胎参数化或可配置。”

然后,在模型中生成这些差异就很容易了。Imperas的Davidmann说:“有了模型,你可以很容易地从IP的版本1切换到版本1.2,而且没有任何物理变化。“如果你必须在回归场中刷新你的FPGA,那将是一场噩梦。模拟的使用不再仅仅是为了验证。这将继续是一个重要的用途,但它是用于开发软件的。”

结论
可以存储的设计和验证数据的数量是巨大的,而且还在不断增长,特别是在传统上被认为是验证空间的地方。但模型、虚拟平台和数字双胞胎的角色正变得严重交织在一起。

与此同时,大多数soc是多个IP块的组合,其中大多数是重用的,这还没有对执行的验证量产生重大影响。这两种方法在过去都是基于蛮力解决方案的,但现在已经不实用了。虽然行业可能已经认识到变革的重要性,但变革仍在进行中。



留下回复


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

Baidu