中文 英语

开源验证的持续挑战

是否有一个用于验证和调试的开源业务模型?

人气

与会专家:这是DVCon小组讨论的系列文章的最后一部分开源时代的验证.它将讨论超越了在小组中发生的事情,并利用了一些提出的问题,但由于缺乏时间,从未向小组成员提出。Axiomise的首席执行官阿希什•达巴里也参与了讨论;DARPA微系统技术办公室的项目经理Serge Leef;以及Codasip的验证主任Philippe Luc。一些回应也包括在会议评论训练中。第二部分是这里和第三部分是这里

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

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

达巴里:我不认为协作模式需要与企业环境中的协作模式有任何不同。最好的方法是从所有相关方获得时间承诺,并像在组织内部运行一样运行项目。

SE:采用开源硬件将如何打开支持新协作计划的机会?

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

达巴里:它将不同领域的专家聚集在一起,以促进创新。例如,您让来自完全不同组织的专家设计师和验证工程师共享一个虚拟房间,不断修改新的设计更改和验证。

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

达巴里例如,RISC-V已经开始在Android平台上进行移植。用不了多久,我们就能拥有高端RISC-V内核和SoC的完全定制Linux。

se:而不是亲自定制源代码,不会更好地助回初始项目?

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

达巴里对于最终拥有免费规范的IP块,这样做可能是有意义的,但对于定制扩展,由硅供应商专门构建以获得市场优势,他们可能不会选择捐赠。

Luc.有一些事情我们想保持关闭。这些是我们的竞争优势。有些技术是我们在内部使用的,是我们自己开发的,我们正在讨论如何将它们开源。它将帮助社区利用RISC-V客户的工具。

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

leef.为了让他们获得长期的成功,必须有一个忠实的用户和开发者社区,他们会发现这项技术足够吸引人,并继续投入他们的努力。在不存在这种一致性和连续性的地方,需要有一个经济动机来防止开源技术衰落,并恢复到学术界和业余爱好者的有限使用。

Darbari:UVM不是一种工具。这是一种几乎不具有普遍性的方法。但在UVM标准存在的意义上,我们也有基于SVA和PSL开放标准的正式验证技术。我相信使用的技术不是重点。这就是用这项技术所做的。核查费用高昂,需要时间和专业知识才能进行可靠的核查。我不确定这其中有多少可以放在公共场所。

Luc.:复杂性是一个问题。如果测试台比RTL更复杂,那么有些东西是错误的。测试禁止应该比我们预期的验证更简单。
SystemVerilog/UVM不是我最喜欢的语言,因为它太冗长了。对于CPU来说,如果有一个具有重用潜力的标准接口,那么它是有意义的。但是如果我们要进入CPU内部,在那里我们做块级验证,重用的潜力就更有限了。UVM和通用的好处是低的。

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

leef.:今天的方法应该影响明天的工具的定义。多种公司实施和视为分化存在各种验证方法。但在许多情况下,就可以解决方法的大量部分,以适应其需求的过度推广工具,或解决它们的局限性。这些方法提供了对当今工具有问题的洞察,并且应该在设计新工具的要求时考虑。

达巴里:我同意。有创新和建立新技术和方法的空间。我可以说正式的方法。在过去,已经构建了一些专有工具,这些工具继续在一些组织中使用,它们是非常好的工具和方法。如果它们可供更广泛的消费,将加速正式核查的采用。

Luc.:我们有完全随机测试,这太随机了,还有直接测试,这太直接了。有些序列会在CPU中触发特定的优化。考虑一个内存预取器。它们检测一个地址序列,然后预先从后面的地址中预取,而不需要显式的加载请求。它需要地址序列,如果我们只是随机执行,它们永远不会被触发。在我们的验证中,我们应用了一系列序列或模式,我们知道这些序列或模式会触发CPU内部的优化,或者我们知道会触发一些随机应用于它的特殊情况。

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

leef.:这三款主要的商业模拟游戏都非常出色,而关于创造第四个游戏的争论则需要在玩家投入精力和/或资金之前通过ROI测试。有一些功能强大的开源独立模拟器,但它们还没有自然地进化到支持UVM,因为经济学不支持所需的努力程度,而且以功能聚合为重点的开发没有发明新内核那么有趣。

查看器1与其他开源项目相比,一个好的模拟器的市场很小。硅验证是通用软件世界中的一个小众市场。在我看来,开源对验证环境的开发很有好处,但它并没有解决模拟本身的问题,我怀疑它在短期内不会解决这个问题。

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

达巴里:对于任何工具,随着设计规模的扩大,性能成为一个重大挑战。但这是可以解决的。设计优秀的调试器并不容易,而且调试占用了70%的验证时间,因此,除非开源调试器胜过商业调试器,否则仅使用开源工具进行验证仍然是一件痛苦的事情。

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

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

SE:其中一个小组成员指出,开源硬件与开源软件非常不同,因为硬件无法更改。对于ASIC而言,这是真的,但不是FPGA。重要区别如何将您的答案更改为开源验证?

达巴里嗯,也不完全是这样。虽然您可以以比ASIC低得多的成本在FPGA上刷新位流,但您仍然需要确保质量和没有遗漏的bug。你不希望在核电站中安装FPGA控制器,因为它会触发警报,虚假地关闭核电站。我们应该使用最好的工具来查找bug,我不在乎它们是否是开源的,只要它们是最好的就行。开源验证不应该只关注廉价工具的经济效益,还应该关注使用另一种工具时遗漏漏洞的成本。所以最好的工具应该是咒语。

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

leef.:这是我在商业EDA担任高管时很少看到的观点,但现在我从创业公司、研究实验室和国防生态系统的众多工程团队中反复听到这一点。主要EDA公司的授权成本、合同复杂性和忽视一般帐户的做法,促进了一个显著的服务不足的社区的增长,这个社区已经成熟,可以用创新的解决方案和新颖的商业模式来赚钱。

达巴里:可承受性是一个重要的问题,但是工具的开发者需要吃东西并支付账单。我们为什么不建立一个生态系统,让每个人都从生态链中受益?我们目前没有这个。中小型公司依靠创新发展壮大,能够开发出下一代技术,通常比老牌公司要好得多。但如果这些公司需要生存,就需要以市场价格购买这些工具。目前还没有发生这种情况。开源硅生态系统乐于使用开源验证技术,而无需向开发这些工具的中小企业做出承诺。如果你是一个从事业余项目的人,那么你可以使用你得到的任何工具。但是如果你是一个商业实体,你应该为这些工具付费。如果你是一个研究实验室,欧洲实践型项目可以帮助你免费使用商业工具。

查看器4当前位置有一个相关的问题。当你购买IP或VIP时,你得到的是源代码还是加密的Blob?当我收到加密的blob时,我的心总是会掉下来,因为当出现问题时,要想找到一个理解代码的人需要几天的时间。如果我得到了源代码,我可以深入研究、调试、添加printfs,并找出是我的问题还是他们的问题。所以“开源”在“你买了它,你就可以看它”的意义上,是除了免费的东西之外的一个大问题。

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

Luc.甚至在我开始验证之前,我就是Python的忠实粉丝。在Python语言中,我最擅长将想法转化为实现它的程序。它不是执行速度最快的语言。我们的大部分验证都是用Python编写的。CocoTB很有趣,它是一个基于Python的框架。我们密切关注着它的演变。

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

leef.:与验证、逻辑综合、P&R、DRC/LVS相比,形式验证是一个很小的市场,每个市场都有数十亿美元。

达巴里:目前正式验证市场的规模是模拟市场的40%,这可不是个小数目。仅仅因为正式的采用目前还没有达到模拟的水平,这并不意味着它就不那么重要了。这只意味着我们需要了解如何让更多的人接受它。如果我们说,在如此广泛的模拟使用中,68%的IC/ASIC项目被重复使用,并且相同的数字被延迟使用,那么一定有问题。根据Harry Foster最新的Wilson Research报告,只有17%的fpga首次获得成功。如果通过属性检查的正式验证更早且一致地使用,那么未来的威尔逊研究报告的结果将会非常不同。

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

leef.:这不仅仅是fpga。在国防应用中也需要少量的小型和中型专用集成电路。

达巴里:Matlab在代码生成方面已经有了重要的用途。在未来,这可能会增加。问题是我们是否相信这段代码没有bug?

SE:足够的工具可以让更多的人使用同类最佳工具吗?

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

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

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

达巴里:为公司(中小企业)提供资金,以便他们为您带来最佳创新。这可以追溯到我之前的观点,即没有足够的资金来支持开源工具。

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

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

达巴里UCIS是朝正确方向迈出的一步,但商业利益阻止了它的发展。我确实认为开放格式是理想的。对于形式验证,Axiomise工具生成可以与任何工具一起使用的覆盖率数据。

SE:怎么会有人说服务模型工具从来没有构建过有用的东西呢?他们听说过Linux吗?

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

SE:中国有资本。

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



1评论

吉姆刘易斯 说:

WRT, Bug修复和开源vs商业模拟器。当我向GHDL提交一个bug和一个详细的最小工作示例时,需要1到4天的时间才能得到一个更新版本——假设它是一个想要工作的特性。当我向商业模拟器提交一个错误时,我不会得到一个固定版本,直到下一个版本——这平均需要3个月,但我不得不等待一年。

公平地说,我们仍在等待外部名称在GHDL中实施——不过,如果我们有人进行投资,这可能会有所帮助。

发表评论


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

Baidu