中文 英语

开源验证的持续挑战

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

人气

桌边的专家:这是来自DVCon讨论小组的系列文章的最后一部分开源时代的验证.它使讨论超出了小组讨论的范围,利用了提出的一些问题,但由于时间不够,没有向小组成员提出。Axiomise首席执行官Ashish Darbari参与了讨论;美国国防部高级研究计划局微系统技术办公室的项目经理Serge Leef;还有菲利普·卢克,Codasip的验证主管。会话评论训练中还包含了一些响应。第二部分是在这里,第三部分是在这里

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

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

Darbari我不认为协作模式需要与公司环境下的模式有任何不同。最好的方法是获得所有相关方的时间承诺,并像在组织中运行项目一样运行项目。

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

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

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

SE:它会触发更多的开源SW开发吗?

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与其他开源项目相比,优秀模拟器的市场是微不足道的。硅验证是通用软件世界中的一个小众市场。在我看来,开源对于验证环境的开发是有益的,但是它并不能解决模拟本身的问题,而且我怀疑它在短期内能否实现。

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

Darbari:对于任何工具,作为设计尺寸尺度,性能成为一项重大挑战。但可以解决。设计伟大的调试器并不容易,调试消耗70%的验证时间,因此除非开源调试器击败商业人员,否则仅使用开源工具的验证将保持疼痛。

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

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

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

Darbari嗯,这并不完全正确。虽然您可以以比ASIC低得多的成本刷新FPGA上的位流,但您仍然需要确保质量和没有遗漏的bug。你不希望在核电站里安装FPGA控制器,它会触发警报,虚假地关闭核电站。我们应该使用最好的工具来查找bug,我不在乎它们是否是开源的,只要它们是最好的就行。开源验证不应该只关注便宜工具的经济效益,而应该关注在使用其他工具时遗漏错误的成本。所以工作的最佳工具应该是咒语。

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

Leef这是我在担任商业EDA高管时很少看到的观点,但现在我在初创公司、研究实验室和国防生态系统的许多工程团队中反复听到这一点。授权成本、合同复杂性和主要EDA公司对一般账户的忽视,导致了一个重要的未得到充分服务的社区的增长,这个社区已经成熟,可以通过创新的解决方案和新颖的商业模式实现盈利。

Darbari:可负担性是一个重要的观点,但工具的开发人员需要吃和支付账单。为什么我们不建立一个生态系统,每个人都来自生态链的福利?我们目前没有这个。中小企业蓬勃发展,可以建立下一代技术,往往比建立的球员要好得多。但如果这些公司需要生存,他们需要为工具支付市场率。这目前不会发生这种情况。开源芯片生态系统愉快地希望消耗开源验证技术,而不会对中小企业开发这些工具。如果您是一个从事Hobbyist项目的个人,那么您可以使用您获得的任何工具。但是,如果您是商业实体,则应支付工具。如果您是研究实验室,Euro-练习类型的订婚可以帮助您免费访问商业工具。

查看器4:有一个相关的问题。购买IP或VIP时,您是否得到了源代码或只是加密Blob'?当我得到加密的斑点时,我的心总是掉落,因为当出现问题时,它会花时间只是为了获得理解代码的人。如果我收到源代码,我可以挖掘它,调试,添加printfs,并弄清楚是我的问题或他们的问题。所以“开源”在意义上,“你买它,你看看它,”除了免费的东西之外还是一个很大的问题。

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

卢克我是Python的超级粉丝,甚至在我开始验证之前。在将思想转换为实现它的程序方面,Python是我最有效的一种语言。它不是执行速度最快的语言。我们的验证有很大一部分是用Python编写的。CocoTB很有趣,它是一个基于Python的框架。我们密切关注着它的发展。

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

Leef如果你把它与验证、逻辑综合、P&R、DRC/LVS相比,正式验证是一个小市场,而每一个都是数十亿美元。

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

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

Leef:不仅仅是fpga。在国防应用中还需要一些体积适中的中小型asic。

DarbariMatlab在代码生成方面已经有了重要的应用。未来这一数字可能会增加。问题是,我们是否相信这段代码没有bug ?

SE:适当的工具是否能够帮助更多的人使用最好的工具?

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

SE:你如何保证开源工具的质量与商业工具一样,或者更好?

Leef他们今天的质量较差,只有注入努力才能缩小这一差距。然而,由于QA和支持被认为是乏味的,社区很少有兴趣花时间在这些事情上。需要有一个恰当的业务视角来实现合理的质量和支持是驱动适配所必需的。这些都不是有趣的工作。因此,你必须付钱让别人去做。需要有一个经济理由来支持这些支出。

Darbari:基金公司(中小企业)所以他们可以为您带来最好的创新。它返回到我早些时候没有足够的资金来支持开源工具。

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

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

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

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

Leef:Redhat展示了可以通过创新的商业模式来支持开源产品的成功可扩展业务。我相信在这里有学习,开源EDA社区可以利用。

SE:中国有资本。

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



1评论

吉姆•刘易斯 说:

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

为了公平,我们还在等待在GHDL中实施的外部名称 - 但是,如果我们有人有投资,那么可以帮助。

留下一个回复


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