是否存在RISC-V验证所需的工具?

现有的工具可以用于RISC-V,但它们可能不是最有效或最高效的。还需要什么?

受欢迎程度

半导体工程公司坐下来讨论RISC-V处理器的验证与Pete Hardee,集团主管产品管理节奏;Mike Eftimakis,公司战略和生态系统副总裁Codasip;的创始人兼首席执行官西蒙·大卫曼治之软件;Sven Beyer,处理器验证的程序经理西门子EDA;Kiran Vittal,联盟合作伙伴营销高级总监Synopsys对此;Breker Verification的首席执行官Dave Kelf和Viosoft Corporation的总裁兼CTO Hieu Tran。以下是那次谈话的节选。要查看本讨论的第一部分,请单击在这里。

SE: RISC-V验证流程是什么样的?

Kelf:我们把处理器的验证看作是一个活动堆栈,但是在这个堆栈中有很多回环。许多公司将遵守ISA作为一项单独的活动。他们将做一个“Hello World”测试作为第一个堆栈,以确保一切正常运行,然后他们将运行尽可能多的一致性测试。他们尝试匹配ISA,然后开始测试微架构。很多人都止步于此。我们看到的情况是,当他们运行一致性测试时,他们可能看起来得到了一致性,然后他们开始编写微架构测试,发现一些损坏的东西,并意识到符合ISA比确保指令正常运行要复杂得多。当他们进一步深入堆栈时,他们会进入,‘我们能验证与系统其他部分相关的核心吗?我们可以在上面启动操作系统吗?它有必要的性能吗?他们能否分析设计以确保性能是正确的,并启动那些验证活动以揭示验证中的更多错误?” When we’re testing a regular ASIC or regular core, you can run through all the verification activities, get really good coverage, and then do the validation on the end. You often don’t have to go back to verification. With these processors, you do. You have to go backward and forward through that verification stack all the time. This really slows you down, and the whole verification of that architecture. The golden reference model is becoming critically important. The Imperas models are recognized as state-of-the-art industry standard models by a lot of people. We’ve been working with those models. Bringing in a really solid core reference model that you can rely on is becoming a critical thing. You can test the micro-architecture, you can test some of the interaction with the rest of the system against that core model, and really getting a clearer picture of what’s going on in the actual processor.

Tran:对于RISC-V,黄金参考模型的想法是否可行,我有些怀疑。如果你回到Unix刚出现的那一天,有少数供应商有他们自己的实现。您有来自IBM的Solaris、SVR4、AIX等等。从所有这些不同的Unix/Linux实现中实现一个通用的可执行文件是不可能的。每个供应商都被激励去构建增值和自定义扩展,这将使他们与其他供应商区别开来。我们可以看到RISC-V。与x86和Arm不同的是,大多数的实现都在英特尔或Arm的保护伞下,实际上有数百个不同的机构和组织构建他们自己的RISC-V实现。当谈到像向量扩展这样的东西时,规范非常大,许多实现者决定只实现该扩展的一个子集。您如何能够创建一个通用的黄金参考模型来验证各种实现的执行?其次,当我们讨论执行的验证和验证时,您必须进一步深入到工具链和操作系统中。 Take, for instance, the vector extensions. Every vendor that I’ve spoken to, and work with, has their own compiler, their own LLVM implementation in support of their vector extension. And none of them is compatible with the others. So you can take LLVM compiler from vendor A, generate code, and it wouldn’t be very efficient for the implementation from vendor B. From that perspective, I’m skeptical as to whether it’s even possible to come up with a common model that can give you a baseline against these variations.

Davidmann我显然不同意那个评论。RISC-V是一个完全的噩梦,因为有太多的选择。这是兼容性和遵从性的挑战之一。有如此多的配置选项,它们都是合法的,最大的问题是,如何创建参考模型?但更糟糕的是。每三个月,每个扩展都会有一个新版本。在我们的模拟器中,它是一个完整的参考。它完全可以为任何独立的子集配置,也可以为版本配置。我们有11种形式的向量,其中4种进入了硅。我不认为这有什么问题,只要它的设计和架构正确。 RISC-V offers the opportunity to do things better. We can’t live with the old way of having just one Arm or one Intel. That isn’t going to work. If the old world was you can have a reference model which does one thing, the new world is you have a reference model that can do 100 things. And that’s where we are going. Otherwise, RISC-V will never fulfill its destiny. We have to solve those problems.

荷迪我们知道处理器的实现,而细节才是问题的关键。我们当然同意你的观点,SystemVerilog, Verilog在捕获这些实现细节方面做得更好。但是您必须根据捕获意图的高级模型来验证该实现。这不是一个单一的参考模型。它可以是很多,也可以是一种为我们正在谈论的许多变体创建参考模型的标准化方法。

Davidmann: 5、6年前,我是RISC-V国际组织的一员,该组织研究了正式问题,最终选择了SAIL作为构建黄金参考模型的语言。我们的错误之处在于SAIL不是很可配置的。这是一个伟大的建筑。对于Arm来说,这太棒了。他们从定义开始,一直到结构修正,一直到形式描述,这真是太棒了。RISC-V的挑战在于它在设计上具有无限的可配置性。所以在SAIL中建模是一个真正的挑战。这就是Imperas采用动态模型的原因。

VittalRISC-V几乎被所有公司采用。即使是领先的半导体供应商也在做RISC-V设计,许多初创公司也是如此。但关键是能够有一个成功的验证计划,你有非常高质量的刺激来实现你的覆盖目标。验证和调试都是齐头并进的。硬件/软件调试,步进代码,同时查看问题,是关键。回到架构的灵活性,这为我们所有人提供了挑战,也为我们所有人提供了机会。创新的解决方案正在开发中。RISC-V供应商和EDA工具公司以及其他EDA合作伙伴之间正在进行大量的合作。

Kelf有些公司在一定程度上已经发现了这一点。RISC-V的无限可配置性,所有这些都是真的。但最终,Arm和英特尔解决了对其配置较差的处理器的验证问题。他们有一个流程,或者一系列复杂的流程,这些流程包括一系列不同的活动。Arm使用了很多正式的工具,很多不同的东西来实现它。一个很好的开始可能是看看这些人在他们的流程中做了什么,并尝试将其中一些自动化。你需要一种可以被所有试图做RISC-V处理器的人使用的东西,并一起合作——合作提出这些更通用的流程,看看我们是否可以标准化其中的一些东西。这并不是一个合适的标准,而是一种事实上的标准方式来验证RISC-V处理器在整个行业中都能工作,并创造出一些真正的兼容性,而不仅仅是指令集兼容性。

SE:有些人提到我们确实需要新的工具、新的流程。今天缺少什么?我们如何计算出某人需要提供什么?

Kelf:内部有很多人在做RISC-V处理器,他们正在重新开始。他们正在学习如何进行处理器验证。像Codasip这样的公司从Arm、英特尔等公司引进了经验丰富、专业知识丰富的人才,他们确实知道该做什么。因此,我们看到一些公司现在正在生产流程,他们正在考虑诸如“处理器能否支持完全一致性”之类的问题。它是否适用于整个系统?安全指令,比如RISC-V内部的PMP(物理内存保护)指令,能否正确运行?”

Davidmann:当我们在五六年前开始研究RISC-V时,还没有针对RISC-V的具体内容。我们有Verilog模拟器,你有一些正式的东西,你可以写一些属性。有GCC,你可以运行和调试它。就是这样。在过去的五年里,我们看到人们已经发展出了许多工具和技术,这些工具和技术都是通过学习如何以专有的方式验证处理器而衍生出来的。我们一直在努力让它更公开。我们一直在试图了解英特尔和Arm是如何做到这一点的,以及它们使用的技术类型。我们一直在OpenHW中工作,在那里我负责验证任务。它是关于具有工业质量的开源硅。它不是关于使用开源工具。 What we’ve learned over the last few years is a lot of different techniques, a lot of different ways to do things, and we’ve evolved and built tools like this configurable reference model, like technology which does the verification for you, like functional coverage that we’ve been evolving into ways for trying to check how well Linux runs. People have been building test generators. Other companies have been building formal tools, like the OneSpin Technologies out of Siemens that are focused on RISC-V. There have been three or four other companies that have been involved in the formal side of things. What we’re seeing is there are some specific RISC-V technologies being built, there’s some verification IPs being built, and more and more, the EDA vendors are learning the methodologies people need, and they’re building the tools. But it’s early days. We are only five years into the real use of RISC-V, and probably a couple of years into the commercial bit of it. There was five years of academic stuff before. And companies like Codasip, and the other commercial vendors of silicon IP, are really evolving and building the technologies internally for verification. We’re trying to help build them as commercial tools, as are some of the EDA vendors. We’re at the beginning of this new age of RISC-V verification technologies.

Vittal主流处理器开发人员知道他们在做什么。他们之前做过x86和Arm。他们正在采用RISC-V,他们确切地知道该做什么。他们还利用了开源社区。对于主流来说,当你看到RISC-V时,它被主流设计师所采用。这就是他们需要方法论的地方。这就是我们所缺少的。Synopsys提供了进行验证和验证所需的一切软件和硬件。我们有vip,我们有正式的技术,我们有数据路径,但缺少的是方法论。该方法来自处理器验证工程师和其他专家的专业知识。

Eftimakis:这是IP供应商的秘密武器。这就是我们内部的工作。

DavidmannImperas等公司正试图让这一点更加公开。它以前可能是私有IP。我们给出了一个关于RISC-V处理器验证参考流程的90分钟教程。它列出了你需要的所有不同的部分,以及目前可用的技术和不可用的技术。我们讨论基于商业技术的测试生成器。

Vittal我们有一个类似的东西,叫做食谱,我们的客户可以从使用开源核心的门户网站下载。这可以让你完成整个验证过程。

拜尔:添加新工具是关键,但我们需要非常可配置的RISC-V参考模型,并使其对工具和流程可用。然后我们可以围绕它构建一些东西,这样没有深入经验的人也可以对RISC-V内核有相当好的验证经验。

Eftimakis:我们已经将工具集成到流程中,包括Imperas和OneSpin。这是我们认为成为RISC-V的一部分的好处,因为我们可以利用这些为生态系统构建的工具,并将它们集成到我们的验证流程中。我们可以将比较与模型、模拟、形式验证、断言等结合起来。这是我们作为这个生态系统的一部分所获得的好处。



留下回复


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

Baidu