中文 英语

新方法创造新机会

RISC-V处理器验证是否为开发新的验证方法提供了共同基础,这是否会自然地导致新的和潜在的开放工具?

受欢迎程度

专家座谈:半导体工程公司坐下来讨论开源验证今天意味着什么,以及它应该发展成什么,在仿真部门的高级主管Jean-Marie Brunet西门子EDA;Axiomise首席执行官Ashish Darbari;西蒙·大卫曼,首席执行官治之软件;DARPA微系统技术办公室项目经理Serge Leef;刘涛,谷歌芯片实现与集成团队硬件工程师;以及SmartDV应用工程总监Bipul Talukdar。这是改编自DVCon的一个小组会议。第一部分可以找到在这里

SE:开源支持协作。到目前为止,没有两家公司使用相同的验证方法。RISC-V可能是第一次有足够多的人致力于一个共同的问题,从而能够在验证空间内设计出一个解决方案。

Davidmann:如果我们关注RISC-V。挑战在于,在过去的50年里,处理器都是秘密制造的。你从没告诉我你是怎么设计的也没告诉我你是怎么验证的。突然之间,在过去的五年里,每个人都赶上了RISC-V的潮流,每个人都成为了计算机架构师,每个人都获得了架构许可证,但他们没有验证方法或理解。大型处理器供应商中隐藏着专有的解决方案。我们正在建立方法论。我们正试图与标准接口的人合作,以便参考模型可以在测试台中以标准的方式使用。由于RISC-V的开放性,出现了一个巨大的变化。这不仅仅是关于构建工具和方法。它支持、维护和发展它。 What the EDA industry has achieved over the past 30 years is absolutely phenomenal. I don’t buy that open source is the solution for verification. What we need is better verification. We need to move forward, and it’s great that people are looking at things like Python and other solutions. AI is going to help us a lot in verification. We just don’t know it yet. And there’s a lot to be done. It’s not the cost of the software. The cost is in your people, in your brains, and doing smart things with it.

Talukdar:我同意。目前还没有真正的开源方法。有开源的设计,但没有开源的验证方法。所以每个人都在做自己的事情,为开源验证建立那些螺母和螺栓,当然,他们为此收费。但总的来说,没有方法论。每个人都有自己验证开源设计的方法。这就是整个行业需要团结起来,建立一套方法论的地方。例如,在进行模拟验证时,人们构建了UVM。现在,对于开源设计,这个验证的统一是什么?我认为这是需要大家一起解决的问题。

Darbari我们不应该忽视我们有SAIL的事实。它是一个开源的、业界主导的联盟,用于正式指定指令集体系结构和行为。这无疑是朝着正确方向迈出的一步。我不认为它充分地解决了验证RTL所需的所有问题,但它确实提供了一个规范文档,该文档是正式指定的,并进行了正式的研究。谷歌一直处于领先地位,帮助像Imperas这样的公司改进他们的解决方案。在正式领域,我们有正在构建工具的供应商,然后有一些公司试图提供供应商锁定的工具和服务。我也对EDA没有创新的观点感到不快。1988年,你还不能正式验证耗资11亿美元的闸门设计。

Leef:我觉得必须做出回应。1988年,在事件驱动模拟器中,计算单个事件和点击时钟需要30条机器指令。在2021年的今天,需要30条机器指令来评估一个事件并点击时钟。1988年,Synopsys逻辑合成的早期用户转向了RTL。在2021年的今天,基于rtl的设计仍然是主要的方法。抽象并没有提升。模拟是本专题讨论的主题,但并没有明显改善。有一些开源技术,如Verilator和Qemu,社区认为是足够的。方法论是不同组织内部的区别所在,请原谅我对形式的不尊重,它不是一种广泛使用的技术。

Talukdar:我们如何为正式建立一个闭环验证方法?我们如何量化验证并关闭循环?想想当有人对核心进行修改时的验证流程。此外,开源核心正在更新,随着这种持续的更新,我们需要一个量化的措施来关闭循环。你是怎么做到的?每次您更新一些东西,并查看新的覆盖率数字,您可能会有一些您没有覆盖的感觉,您需要编写更多测试的地方。你需要有能力去做这些事情。形式化是一种完全分析整个设计的技术,可以以最快的方式告诉你一些东西。拥有正式的覆盖可以帮助我们引入闭环验证方法。

Darbari:我们有一个正式的验证测试平台,可以在数小时内彻底验证流水线处理器。如果你现在正在构建微处理器,而你没有使用正式的,那么就会出现问题。仅靠模拟很难找到所有的bug。

Leef:正式验证成功的一个客观衡量标准是业务。去年,在EDA市场90亿美元的背景下,所有正式的验证工具产生了多少收入?我认为这个比例很小,这对我来说意味着它没有被广泛采用。

深色的没有EDA,就没有今天的先进半导体。很多人都在谈论摩尔定律的崩溃。OPC能够节省掩模制作过程,我们今天正在做7、5和3纳米。你有大约100亿个门的设计,这些都是通过仿真验证的。EDA社区已经完成了一些关键的发展。EDA有创新,而且还在继续——也许不像几年前那么明显,因为三大公司内部已经更加成熟了,但是有大量的创新。

SE:回到开源,为什么我们认为我们需要开源?行业考虑开源的主要驱动力是什么?

深色的这与降低成本无关。它是关于交换的,是关于互操作性的,是关于建立一个能够以可控的方式交换更多信息的社区。有趣的是,我们在开源社区有来自DARPA的代表。当我想到开源时,我不会想到DARPA。

Davdimann我有两点意见。第一,DARPA的预算可能比在座各位都要多。他们的预算很大,而你却说什么都要免费。第二件事是你试图推广开源。我本以为美国政府和国防部,不会想让世界拥有美国公司正在建造的最新最伟大的技术,或者你正在资助的技术。我以为你会想要保密并构建专有的解决方案——而不是开源的。关键是它关乎自由。人们想要一些东西的来源,这样他们就可以改变它,让它为他们想做的事情工作。

我想回到方法论的一致性问题,因为这是一个非常具有挑战性的问题。开源验证项目和你的内部项目有什么不同?不同之处在于,你将面对来自100家不同公司的人,他们有不同的要求。我们应该考虑建立一个生态系统,因为在公司内部统一方法论已经足够具有挑战性了。当你来自100家不同的公司时,几乎不可能做到这种一致性。你的动机应该是驱动一个生态系统,允许拥有不同方法的人调整你的解决方案。这样我们就能增加他们的兴趣,减少他们融入的痛苦。当我们考虑把它开源的时候,人们问我们从中得到了什么?我们从社区得到了很多贡献,比如bug报告、代码贡献、特性请求,所有我认为非常有价值的贡献。如果你正在创造一个生态系统,你将从一个庞大的团队中受益,因为整个社区都会给予你反馈。 That’s the beauty of open source. For open-source hardware development and verification, we do not have a good collaboration culture compared to the software world. We need to build that culture. When everybody can contribute to this work, then we can make it better. And you actually get more out of it, compared to what you can achieve with two or three engineers internally in a company.

深色的:特定垂直市场的基准测试被认为是开源的。如果你看看机器学习和人工智能,有MLPerf。许多参考基准都是开放的,而且工作得很好。它使生态系统能够自由地进行比较。真正的区别在于设计实现。

Darbari:当捐赠代码时,无论是指令生成器还是完整的测试平台,如果这不是你的生计,你可以这样做。但如果你是通过商业化来赚钱,就像EDA的人所做的那样,我们是在努力销售工具,我们的生活依赖于它。我们不可能免费捐赠。我们愿意与社区接触,本着透明、开放和协作的精神与他们合作。我们感兴趣的是合作探索正式的报道故事。但如果这是你唯一的业务,成本确实是一个问题。这不仅仅是合作。

Davidmann有很多公司都想获得我们的技术。我们是几个不同行业组织的成员。OpenHW集团的使命是建立开源的RISC-V处理器。他们希望它们是商业质量的核心,而实现这一点的方法是使用一流的验证解决方案。他们使用Verilog模拟器,SystemVerilog/UVM。它使用谷歌生成器,它使用我们的参考模型,它将使用任何技术来构建最佳质量的开源内核。有人说Verilator和Qemu是足够的。当你在建造高质量的建筑时,充足是完全不可接受的。你需要最好的。没有人会使用垃圾工具构建最先进的SoC。 They use the absolute best. That’s why it’s a $9B industry, because people know that to get their chip to work, they need the best technology. When you say a tool is adequate and free, universities use adequate tools because they don’t have the money to buy all the best tools. But universities aren’t building quality products. No one gets a Ph.D. for building a robust ecosystem around a bit of RTL they’ve written. They are exploring new architectures and extensions. When it comes to verification, you have to use the best that’s available. Whatever it costs, you want the best-quality cores, verified to the same level of quality that you’d find in a big commercial company. Open source gives you freedom. That’s fundamental. I don’t think it saves you money.

SE:工具和方法之间有相互作用。我们是否处于开发新方法需要扩展现有工具或开发新工具的阶段?我们是否有机会开发一些新的方法,从而自然地创造出一些新的工具?

Leef:当我在EDA工作时,我们有一家大型半导体公司的客户,他们有数万台服务器全天候运行模拟。每次改变之后,他们都会重新检查芯片。他们这样做的方法是分割测试套件。在10,000个节点上模拟的是相同的设计,但是正在运行的测试套件是不同的。为了支持这一操作,该公司拥有一个庞大的数据中心,并雇佣了近100名工程师来支持这一方法。这包括将东西切割,拼接在一起,并在早上将结果提交给设计工程师。这显然是一个实现自动化的机会。云具有无限的计算和存储,没有理由不能将其自动化。这是一个方法在云环境中转变为工具的例子。而且,不是每个人都能做最先进的100亿个晶体管芯片。 Within the U.S. defense community, chips like that do not exist. There are research labs that are doing federally funded research and none of them are scratching on the type of complexity that you are referring to. Those represent an underserved market. If you really want to find revenue, you should be looking at how to please those people, as opposed to pleasing the tier-one semiconductor companies.

Darbari我们完全按照你在问题中所说的做了。我们构建了一个全新的覆盖解决方案,它可以运行在任何正式的验证工具之上。它将为您提供指令正在实际运行的证据和场景。它是一个扩展,它建立在正式验证工具供应商提供的技术之上。我们当然正在努力以这种方式作出贡献。

Talukdar:可以有开放的工具,如Verilator。但你仍然需要它的螺母和螺栓。您仍然需要验证IP。整个解决方案有多个组成部分。生态系统需要不断发展,为处理器验证构建一种方法将带来多种好处,比如开放工具,为工具构建螺母和螺钉,以及如何将它们货币化。这是一个很难的问题,但也需要探索。

应用新方法的机会很重要。约束随机已经存在了15年或更长时间。UVM/SystemVerilog是模拟世界中的标准解决方案。但情况正在发生变化,当我们做开源工作时,你经常会感到惊讶。当有人用我的平台做基于机器学习的验证时,我很惊讶。有人在研究基于python的约束随机算法。有基于chisel的设计验证。我认为我们需要对新的设计和验证方法和语言持开放的态度。这是传统的商业EDA工具没有达到的,所以这是一个机会。展望未来,我们应该跳出受约束随机,寻找其他东西。

Davidmann:我最近看了一篇关于在HDL模拟器上使用Python作为UVM验证解决方案的论文。这是利用开放的UVM。Python是打开的。大型EDA供应商绝对在研究这个问题,他们正在努力为他们的客户找到最好的解决方案。还有c++作为建模技术。你不需要买C编译器。SystemC也是一样。大EDA并没有把头埋在沙子里。它着眼于未来的变化方式,并试图找到好的解决方案。



留下回复


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

Baidu