中文 英语

开源的唯一最大机会

直接跳跃讨论开源验证工具的实施,未命中社区可以做的最重要的事情之一。

人气

下周,我将抚养一个控制板在Virtual DVCON在开源验证的主题上。我认为在LinkedIn上宣传活动是很好的,以了解是否有人想向我发给我面板主义者的结构良好的问题。发生了什么事让我感到惊讶,因为讨论几乎完全是对开源验证工具的需求。在我看来,他们完全错过了最大的机会。

RISC-V ISA和其许多实现,重新点燃了半导体空间内的开源讨论。但risc-v是一块IP,并在硅中实施,需要长时间的工具列表来实现实现。这些工具的价值位于10亿美元附近。虽然很多这些工具都是开源的,但它们很少在学术界以外使用。值得清楚为什么 - 芯片故障的成本如此之高,即在工具上仅需几个百分之几的开发成本降低了足以证明该费用的风险。

所以功能核实从根本上不同?涉及较少的工具:

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

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

回到RISC-V,似乎很少有人会像考虑硬件那样考虑开源验证。他们不考虑一组刺激,或产生这些刺激的方法,并检查RISC-V的实现是否符合标准组织提供的规范,以提供一定程度的信心。行业组织甚至还没有想出一致性测试的概念,这是一个简单得多的问题。

也许定义一致性测试是必要的第一步。这将迫使整个行业采用一些在整个行业中普遍存在的最佳实践。那么也许我们就不需要像UVM那样“通用”的东西了。相反,我们可以拥有更专注、更精简、更容易实现的开源软件。

通过直接讨论开源验证工具的实现,我们可能错过了开源社区可以做的最重要的事情——带来一些通用的实践,启用通用的验证IP,关于完整性含义的通用概念。现在确实是时候从验证中剔除一些“艺术”,并利用行业的思维能力来找出更好的验证方法了。

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



7评论

马修气概 说:

布莱恩,
我当然同意您认为验证方法是关键,并且专注于没有聚焦开源方法的开源工具是最佳的,成本优化。我的感觉是,虽然开源工具流程和开源方法是单独的考虑因素,但它们不会断开连接。具体而言,开源参考刀具流的存在将极大地帮助开发开源方法,当然,当然,都使用开源和闭合源/商业刀具流程。

西奥多·威尔逊 说:

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

Tudor Timi. 说:

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

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

印度央行Kalamdar 说:

就像软件工程师的开发一样,开源硬件工具可以帮助展示从无法访问此类昂贵平台的人或学生提供如此好的想法和方法。

Lars Asplund. 说:

布莱恩,

我完全同意ASIC开发相关的成本和风险是巨大的,但如果我们掷硬币看看另外一半的人群,即FPGA开发者(在最近的Wilson/Mentor/Siemens研究中45%的参与者),成本/风险分析是完全不同的。

从RTL构建FPGA,我需要一个Vivado或类似的Vivado或类似于零和几千美元,具体取决于设备。在我的经验中,第一个额外的工具FPGA团队获取是一个独立的模拟器,一旦拍摄该步骤,验证工具就开始占据EDA工具预算。

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

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

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

如果我们只是看看VHDL模拟,我们都有GHDL,它是FOSS,支持类似于商业模拟器的VHDL的子集。鉴于FPGA开发的验证强烈的方法,在纯粹的自动化测试禁止执行时,有偿许可会非常努力。附加值介绍了支持混合语言模拟,以处理Verilog IP,支持加密的IPS,以及用于调试的良好GUI。

许多丰富的工具是由专业人士开发的,并专业地使用以及学术界使用。只需查看RTL开发人员的工作广告表明它们在所有市场段中使用,包括空间,防御,汽车安全等关键应用程序。

迈克汤普森 说:

“行业团体甚至没有概述的概念测试,这是一个更简单的问题。”

尊重Brian,这不是事实正确的。一致性测试的概念和实施都是疯狂的挑战。更糟糕的是,一致性测试不足以完全验证设计。

Brian Bailey. 说:

谢谢你的评论,迈克。我说它是一个更简单的问题,有两个原因——首先,它只需要验证ISA的一致性,并且没有任何实现问题。因此,它不必处理规范之外的中断等问题。第二是完整性的概念。一致性测试可以是随意的,也可以是正式的,就像提供一致性标记的组织所希望的那样。这是一个比完全验证更低的门槛。现在,也许我说这很容易是错误的——但是它并不像验证一个实现到ASIC所要求的水平那么困难。

留下一个回复


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