中文 英语

开源验证的持续挑战

是否存在一种用于验证和调试的开源商业模式?

受欢迎程度

专家讨论:这是源自DVCon小组讨论的系列文章的最后一部分开源时代的验证.它使讨论超越了小组讨论中发生的事情,并利用了一些已经提出的问题,但由于缺乏时间,这些问题从未呈现给小组成员。Axiomise首席执行官Ashish Darbari参与了讨论;DARPA微系统技术办公室项目经理Serge Leef;以及Codasip的验证总监Philippe Luc。会话评论序列中还包括一些响应。第二部分是在这里,第三部分是在这里

SE:你能解释一下开源是如何改变我们的协作模式的吗?

Leef:这已经在软件界得到了证明。我不确定是否有理由期待硬件方面的情况会有所不同。

Darbari:我不认为合作模式需要与公司环境中的合作模式有任何不同。最好的方法是让所有参与的各方都投入时间,并像在组织内部运行一样运行项目。

SE:采用开源硬件将如何为支持新的协作方案提供机会?

Leef:开源硬件IP为潜在攻击者注入几乎无法检测的木马提供了机会。没有任何工具可以确定恶意硬件的存在与否,由人类检查数千行RTL既不实际也不有效。

Darbari:它汇集了不同领域的专家,以促进创新。例如,来自完全不同组织的专家设计人员和验证工程师共享一个虚拟房间,进行新的设计更改和验证。

SE:它会引发更多的开源软件开发吗?

Darbari:例如,RISC-V已经出现了这种情况,Android上也出现了新的端口。用不了多久,我们就会为高端RISC-V核心和SoC提供完全定制的Linux。

SE:与其亲自定制源代码,不如为最初的项目做出贡献,不是更好吗?

Leef:有些情况下,扩展所代表的功能对社区来说兴趣有限,或者包含专有的或分类的想法。这个问题可以通过一致的公共接口来缓解,但它们通常不存在于非结构化的开源世界中。

Darbari:对于最终拥有免费规范的IP块来说,这样做可能是有意义的,但对于由硅供应商为获得市场优势而专门构建的自定义扩展,他们可能不会选择捐赠回来。

卢克当前位置有些东西我们希望不对外开放。这些是我们的竞争优势。我们在内部使用了一些技术,也开发了一些技术,目前正在讨论将这些技术开源。它将帮助社区利用RISC-V客户的工具。

SE:目前使用的最流行的验证工具之一是UVM,它可以通过开源获得。它非常成功,对用户和工具供应商都有好处。SystemC是另一个成功的开源验证工具。这些是未来工具的模型吗?

Leef:为了让他们取得长期的成功,必须有一个参与的用户和开发人员社区,他们认为技术足够有吸引力,可以继续投入他们的努力。在不存在这种一致性和连续性的地方,需要有一种经济动机来防止开源技术的衰落和回归到学术界和业余爱好者的有限使用。

Darbari:UVM不是工具。这是一种几乎不具有普遍性的方法论。但就UVM标准的存在而言,我们还拥有基于SVA和PSL开放标准的正式验证技术。我认为使用的技术并不是重点。这是用这种技术做的事情。核实是昂贵的,而且需要时间和专业知识来进行可靠的核实。我不确定公共场所能有多少这样的东西。

卢克:复杂性是个问题。如果测试平台比RTL更复杂,那么一定有问题。测试平台应该比我们期望验证的要简单。
SystemVerilog/UVM不是我最喜欢的语言,因为它太啰嗦了。对于CPU来说,有一个标准接口,有很大的重用潜力,这是有意义的。但如果我们在CPU内部进行块级验证,重用的可能性就更有限了。UVM和通用的好处很低。

SE:工具和方法论之间总是相互作用的。我们是否处于有效开发新方法需要扩展工具或开发新工具的阶段?如果是的话,开源工具的影响是什么?

Leef今天的方法应该会影响明天工具的定义。有各种各样的验证方法,被多家公司实施并视为他们的差异化。但是在许多情况下,这些方法的重要部分是为了适应过于一般化的工具以满足它们的需要,或者绕过它们的局限性。这些方法提供了对当今工具错误所在的洞察,并且在设计新工具的需求时应该加以考虑。

Darbari:我同意。还有创新和建立新技术和方法的空间。我可以代表形式方法。在过去,已经构建了一些专有工具,并在一些组织中继续使用,它们是很好的工具和方法。如果它们可供更广泛的使用,就会加速正式核查的采用。

卢克我们有完全随机测试,太随机了,还有定向测试,太直接了。某些序列在CPU内触发特定的优化。考虑内存预取器。它们检测一个地址序列,然后在没有显式加载请求的情况下提前从后续地址预取。它需要地址序列,如果我们只是随机的,它们将永远不会被触发。在我们的验证中,我们应用了一系列序列或模式的组合,我们知道这些序列或模式将触发CPU内的优化,或者我们知道将触发一些应用于它的随机的特殊情况。

SE:为什么没有一个好的、开源的、混合语言模拟器能够运行UVM模拟呢?仅仅是因为语言的复杂性吗?是开源社区缺乏兴趣或专业知识?

Leef:三个主要的商业模拟器都很不错,在有人投入精力和/或金钱之前,创建第四个模拟器的论点必须通过ROI测试。有一些功能强大的开源独立模拟器,但它们并没有自然地发展到支持UVM,因为所需的工作量不受经济效益的支持,而且以功能聚合为重点的开发不如发明新内核有趣。

查看器1:与其他开源项目相比,好的模拟器的市场非常小。在一般的软件世界里,硅验证只是一个很小的领域。在我看来,开源有利于验证环境的开发,但它并没有解决模拟本身的问题,而且我怀疑它在短期内是否会实现。

查看器2: GHDL是一个自由/开源软件VHDL模拟器,可以像任何商业工具一样运行模拟。如果您需要自由和不受约束的模拟器来处理验证,那么它是当今许多ASIC/FPGA专业人员使用的选项。商业模拟器的价值在于处理混合语言、GUI调试等。

Darbari:对于任何工具来说,随着设计尺寸的扩大,性能成为一个主要挑战。但这是可以解决的。设计优秀的调试器并不容易,调试会消耗70%的验证时间,所以除非开源调试器胜过商业调试器,否则仅使用开源工具进行验证仍然是一件痛苦的事情。

卢克:模拟器只是根据输入计算你的逻辑门输出是什么。这工作相当容易。波形调试、跟踪分析、带有原理图的查看器,这些都是商业工具提供的很好的功能示例。这些对调试RTL非常有用。使用商业工具调试UVM更加复杂。

观众3:对我来说,作为一个工具使用者,编写编译良好的非标准代码并不难。但这会使昂贵的工具崩溃。为什么呢?有时我认为问题不在于工具供应商的质量控制,而在于语言本身。

SE:一位小组成员指出,开源硬件与开源软件非常不同,因为硬件是无法改变的。asic是这样,但fpga不是这样。这个重要的区别如何改变你对开源验证的答案?

Darbari嗯,这并不完全正确。虽然您可以在FPGA上以比ASIC低得多的成本刷新比特流,但您仍然需要确保质量和没有遗漏的错误。你不希望在核电站中使用FPGA控制器,它会触发警报,虚假地关闭工厂。我们应该使用最好的工具来寻找漏洞,我不在乎它们是否是开源的,只要它们是最好的。开源验证不应该只关注廉价工具的经济效益,而应该关注使用另一种工具时遗漏的漏洞的成本。因此,最好的工具应该是咒语。

SE:许多小组成员一直说验证工具的成本并不重要,但在很多情况下并非如此。个人无法负担EDA供应商的许可成本,但有很少的替代方案。初创公司的生产力是有限的,这取决于他们能负担得起的工具许可证的数量。如果这些产品是免费和开源的,它将产生重大影响。

Leef:这是我在商业EDA担任高管时很少看到的观点,但现在我从初创公司、研究实验室和国防生态系统周围的众多工程团队那里反复听到这一点。授权成本、合同复杂性和主要EDA公司对一般账户的忽视促成了一个重要的服务不足社区的发展,这个社区已经成熟,可以通过创新的解决方案和新颖的商业模式来赚钱。

Darbari:负担能力是很重要的一点,但是工具的开发人员需要吃饭和支付账单。为什么我们不建立一个生态系统,让每个人都能从生态链中受益?我们目前还没有。中小型企业依靠创新蓬勃发展,能够开发出下一代技术,往往比老牌企业要好得多。但如果这些公司需要生存下去,他们就需要以市场价格购买这些工具。现在还没有发生这种情况。开源硅生态系统很乐意消费开源验证技术,而不向开发这些工具的中小企业做出承诺。如果你是一个从事业余项目的人,那么你可以使用你得到的任何工具。但如果你是一个商业实体,你应该为这些工具付费。如果你是一个研究实验室,Euro-practice类型的约定可以帮助你免费获得商业工具。

查看器4:有一个相关的问题。当你购买IP或VIP时,你得到的是源文件还是加密文件?当我收到加密的信息时,我的心总是会掉下来,因为当出现问题时,仅仅是找到一个懂代码的人就需要几天的时间。如果我得到源代码,我就可以深入研究它,调试它,添加打印文件,并找出是我的问题还是他们的问题。所以“开源”在“你买了它,你就能看到它”的意义上是一个大问题,除了免费的东西。

SE:开源(例如Python和大量可用的包)通过补充所需的现有任务,而不需要一遍又一遍地重新发明轮子,为设计验证工作带来了创新。

卢克:在我开始验证之前,我就是Python的忠实粉丝。Python是一种语言,我可以最有效地将想法转化为实现它的程序。它不是执行速度最快的语言。验证的很大一部分是用Python编写的。CocoTB很有趣,它是一个基于Python的框架。我们密切关注它的发展。

SE:根据SEMI的数据,2019年包括等值和财产检查在内的正式市场总额约为2亿美元。在2020年第一季度至第三季度,这一数字约为1.56亿美元。

Leef:与验证、逻辑综合、奖惩、DRC/LVS相比,形式验证的市场很小,它们每一个都有数十亿美元。

Darbari:目前正式验证市场的规模是模拟市场的40%,这并不是一个小块。仅仅因为形式化的采用目前还没有达到模拟的水平,这并不意味着它的重要性降低。这只意味着我们需要了解如何让它被更多地采用。如果我们说,在如此广泛的模拟使用中,68%的IC/ASIC项目都在重新旋转,并且同样数量的项目运行延迟,那么就有问题了。根据Harry Foster最新的威尔逊研究报告,只有17%的fpga首次成功。如果能够更早并始终如一地使用通过属性检查的形式验证,威尔逊研究公司(Wilson Research)未来报告的结果将会大不相同。

SE:在Wilson/Mentor/Siemens的研究中,45%的参与者使用fpga进行开发,其风险和成本与超大型asic非常不同。

Leef:不仅仅是fpga。此外,国防应用中也需要少量的中小型专用集成电路。

Darbari:目前已经大量使用Matlab进行代码生成。在未来,这种情况可能会增加。问题是我们是否相信这段代码没有bug ?

SE:足够的工具能成为让更多人使用一流工具的入口吗?

Leef:一流的工具在培训和提高速度方面要求很高。与具有UVM、VIP、测试生成和许多其他聚合功能的成熟验证环境相比,一个基本的模拟器所花费的精力要少得多。

SE:与商业工具相比,你如何保证开源工具具有相同或更好的质量?

Leef当前他们的质量较差,只有注入努力才能缩小差距。然而,由于QA和支持被认为是乏味的,社区没有兴趣花时间在这些事情上。需要有一个适当的业务角度来认识到需要合理的质量和支持来驱动适应。这些都不是有趣的工作。因此,你必须付钱给别人来做这件事。需要有经济上的理由来支持这些支出。

Darbari:资助中小企业,让它们为你带来最好的创新。这又回到了我之前的观点,即没有足够的资金来支持开源工具。

SE:小组成员认为开源报道数据库格式有用吗?这可以提高供应商工具的互操作性,并鼓励开源世界的集成方面。

查看器5:有一个叫做UCIS的开源覆盖数据库标准。

DarbariUCIS是朝着正确方向迈出的一步,但商业利益阻碍了它的发展。我确实看到了一个开放的格式将是理想的。对于正式的验证,Axiomise工具生成可以与任何工具一起使用的覆盖数据。

SE:怎么会有一个小组成员说服务模型工具永远不能构建有用的东西呢?他们听说过Linux吗?

Leef: RedHat证明,通过提出创新的商业模式,建立一个成功的可扩展的业务来支持开源产品是可能的。我相信这里有开源EDA社区可以利用的经验教训。

SE:中国有资本。

Leef例如那里确实有资本。实际上,这可能是目前半导体和EDA初创公司唯一可用的资金。但中国投资者在投资美国公司时面临挑战,经常因为担心CFIUS的规定而退缩。



1评论

吉姆•刘易斯 说:

WRT, Bug修复和开源vs商业模拟器。当我向GHDL提交一个带有详细的最小工作示例的错误时,我需要1到4天才能得到一个更新的版本——假设它是一个打算工作的功能。当我向商业模拟器提交一个bug时,我要等到下一次修订才能得到一个固定版本——平均是3个月,但我已经等了一年。

公平地说,我们仍然在等待GHDL中实现外部名称——然而,如果有人投资的话,这可能会有所帮助。

留下回复


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

Baidu