中文 英语
德赢vwin
的意见

开源的最大机会

直接跳到关于开源验证工具的实现的讨论中,忽略了社区可以做的最重要的事情之一。

受欢迎程度

下周,我将抚养一个面板在虚拟DVCon上讨论开源验证问题。我想最好在LinkedIn上宣传这个活动,看看是否有人愿意给我发一些结构合理的问题。所发生的事情让我有点吃惊,因为讨论几乎都是关于开源验证工具的需求。在我看来,他们完全失去了最大的机会。

RISC-V ISA及其许多实现重新点燃了半导体领域的开源讨论。但是RISC-V是一个IP,要在硅上实现它需要一长串的工具来实现它。这些工具的价值大约在100亿美元左右。虽然这些工具中的许多确实是开源的,但它们很少被学术界以外的人使用。原因很清楚——芯片故障的成本是如此之高,以至于在工具开发上只花几个百分点的成本就可以降低风险,足以证明成本的合理性。

那么功能验证是否完全不同呢?其中涉及的工具当然更少:

  • 能够在定义的抽象级别上执行模型的引擎;
  • 正式验证,可以彻底地显示两个模型之间的差异,可能使用一组属性描述;
  • 一种有助于产生刺激和检查模型执行结果的环境;
  • 跟踪验证目标进展的工具;和
  • 提高生产力的帮助,如调试器和绒毛。

然而,尽管这些都是基于标准的,主要是SystemVerilog和UVM,但是系统公司之间对于执行这项任务的最佳方法没有什么共识。如果你问任何人UVM中的“通用”是什么意思,他们会告诉你它的意思非常广泛,它包含了每个人的方法。

回到RISC-V,看来很少有人甚至以与硬件相同的方式考虑开源验证。他们不会考虑一组刺激或产生那些刺激的手段,并检查RISC-V的实施是否符合标准组织提供的规范,以提供一定程度的信心。行业团体甚至甚至没有概念测试的概念,这是一个更简单的问题。

也许定义一致性测试是必要的第一步。这将迫使行业实际上涉及整个行业共同的最佳实践。然后也许我们不需要“普遍”为uvm。相反,我们可以拥有更加集中的东西,更加精简,更容易实现为开源。

通过直接跳到关于开源验证工具的实现的讨论,我们可能缺少开源社区可以做的最重要的事情 - 带来一些常见的实践,使常见的验证IP,常见概念是关于完整性意味着什么。这确实是我们采取了一些“艺术”的验证,采用行业的思想来弄清楚一些更好的方法来做验证。

功能验证的问题不能在设计规模的平方上继续增长。我不相信它曾经发展到这样的程度,但我承认,我从来没有足够聪明来定义如何阻止这种情况。这可能是开源社区对半导体设计的最大贡献。一旦这样做了,开源验证工具将变得很容易。但从工具开始,我不相信你会成功。



7评论

马修·巴兰 说:

布莱恩,
我当然同意你的观点,即验证方法是关键,如果只关注开源工具而不关注开源方法,那充其量就是成本优化。我的感觉是,虽然开源工具流程和开源方法是分开考虑的,但它们并不是相互分离的。具体来说,开源参考工具流的存在将极大地帮助开发开源方法,当然,这些方法同时适用于开源和闭源/商业工具流。

西奥多·威尔逊 说:

Brian再次感谢你的另一篇有见地的文章。我同样认为开源正与软件许可价格相结合,希望开源意味着以更低的价格进行验证。我也不认为这是一个工具问题。抛开商业利益、人员竞争、IP供应商和集成商的成本和日程安排,我认为独立可重复的验证结果可能会让团队独立地评估、共享和提高测试质量,并以增量的花费,这比盲目信任IP或完全重新测试要好。但在现实世界中,这是一个很难的问题。这个领域会类似于独立的财务审计吗?也许有需求是一个验证相当于会计师事务所。

都铎王朝Timi 说:

我更感兴趣的是开源验证资产如何有利于闭源IP的开发。比如“让我们在开源验证IP上合作,但让我们在闭源实现上竞争”。

我将把它扩展为包含“使用闭源工具”。

印度央行Kalamdar 说:

就像软件工程师开发一样,开源硬件工具可以帮助那些没有使用这种昂贵平台的人或学生展示这些好的想法和方法。

拉尔斯莉莲 说:

布莱恩,

我完全同意与ASIC开发相关的成本和风险是重要的,但如果我们翻转硬币并查看人口的其他一半,FPGA开发人员(最新威尔逊/导师/西门子/西门子学习的45%的参与者),成本/风险分析完全不同。

为了从RTL构建FPGA,我需要一个Vivado或类似的,这是在0和几千美元之间,取决于设备。根据我的经验,FPGA团队获得的第一个额外工具是独立的模拟器,一旦采取了这一步,验证工具就开始支配EDA工具的预算。

虽然ASIC芯片故障的成本是巨大的,但构建一个有故障的FPGA的成本仅限于构建设计和看到它失败的目标测试的时间。不要误解我的意思,这个成本仍然驱动着严格的HDL验证,但以一种完全不同的方式。其驱动力是验证的有效性,而不是整个项目失败的风险。我不想构建一个1小时的FPGA来在目标测试中寻找可以用短RTL模拟检测到的bug。OTOH,如果我可以在几秒钟内在SW中运行相同的测试,那么运行一个24小时的系统级模拟就没有多大意义了。

验证有效性也是越来越多RTL开发人员使用(SW开发)方法的一个原因,例如测试驱动设计和持续集成。在这个例子中,开源社区率先找到了使用SVUnit和VUnit等工具进行验证的其他方法。这些方法的共同之处在于,它们意味着要一直运行大量的自动化测试。与SW相比,RTL模拟速度较慢,要获得类似于SW的体验,你需要并行运行许多测试,这需要更多的许可证,使得模拟器工具成本更占优势。

目前大多数FPGA设计者使用VHDL(根据研究64%)。他们宁愿不切换到SystemVerilog来进行验证,他们的管理人员也不想为此投资教育,也不想通过投资UVM所需的高级模拟器许可证来进一步增加工具预算。不管是否使用开源ip,所有这些都使得自由/开源软件工具非常有趣。

如果我们只看VHDL模拟,我们有GHDL,它是自由/开源软件,支持VHDL的一个子集,类似于商业模拟器。在FPGA开发中采用密集的验证方法,当涉及到纯自动化测试台执行时,付费许可很难与之竞争。附加价值包括支持混合语言模拟来处理Verilog ip,支持加密ip,以及用于调试的良好gui。

许多自由/开源软件工具是由专业人员开发的,并被专业人士和学术界所使用。只要看看RTL开发人员的招聘广告就会发现,RTL应用于所有细分市场,包括空间、国防、汽车安全等关键应用。

迈克汤普森 说:

“行业组织甚至还没有想出一致性测试的概念,这是一个简单得多的问题。”

恕我直言,布莱恩,事实并非如此。一致性测试的概念和实现都是非常困难的挑战。更糟糕的是,一致性测试不足以完全验证一个设计。

布莱恩•贝利 说:

谢谢你的评论迈克。我说这是一个更容易的问题,因为两个原因 - 首先它只必须验证ISA的一致性,并且没有任何实施问题。因此,它不必处理在规范之外的中断等问题。第二是完整性的概念。一致性测试可以作为提供一致性邮票的组织作为休闲或正式。这是一个较低的条形图,而不是完全验证。现在,也许我错了表明这很容易 - 但它并不像验证致力于ASIC所需的级别的实现那么困难。

留下一个回复


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