是否存在用于 RISC-V 验证的必要工具?
Semiconductor Engineering 与 Cadence 产品管理集团总监 Pete Hardee 坐下来讨论 RISC-V 处理器的验证;参与讨论的还有 Codasip 战略和生态系统副总裁 Mike Eftimakis ;Simon Davidmann,Imperas Software 创始人兼首席执行官;Sven Beyer,西门子 EDA 处理器验证项目经理;Synopsys 联盟合作伙伴营销高级总监 Kiran Vittal ;Breker Verification 首席执行官 Dave Kelf 和 Viosoft Corporation 总裁兼首席技术官 Hieu Tran。
本文引用地址:http://www.amcfsurvey.com/article/202304/445325.htmSE:RISC-V 验证流程是什么样的?
Kelf: 我们将处理器的验证看作是一堆活动,但在那个堆栈中有很多环回。许多公司将遵守 ISA 视为一项单独的活动。他们将执行「Hello World」测试作为第一个堆栈,以确保一切正常运行,然后他们将运行尽可能多的一致性测试。他们尝试匹配 ISA,然后开始测试微架构。我们看到发生的事情是,当他们运行一致性测试时,他们可能看起来获得了一致性,然后他们开始编写微架构测试,当他们在堆栈中走得更远时,他们会提出一些问题,我们可以验证核心与系统其余部分的关系吗?我们可以在上面启动操作系统吗?它是否具有必要的性能?他们能否分析设计以确保性能正确并启动这些验证活动以揭示验证中的更多错误?当我们测试常规 ASIC 或常规核心时,你可以运行所有验证活动,获得非常好的覆盖率,然后在最后进行验证。通常不必返回验证。有了这些处理器,你就可以做到。你必须始终通过该验证堆栈来回移动。这真的会减慢你的速度,以及该架构的整个验证过程。黄金参考模型变得至关重要。Imperas 模型被许多人公认为最先进的行业标准模型。我们一直在使用这些模型。引入一个你可以依赖的真正可靠的核心参考模型正变得至关重要。你可以测试微架构,你可以针对该核心模型测试与系统其余部分的一些交互,并真正更清楚地了解实际处理器中发生的事情。
Tran:对于 RISC-V,黄金参考模型的想法是否可行我有些怀疑。如果回到 Unix 出现的那一天,就会有少数供应商拥有自己的实现。有 Solaris、SVR4、IBM 的 AIX 等等选择。从所有这些不同的 Unix/Linux 实现中实现一个可以跨平台运行的通用可执行文件的想法是不可能的。每个供应商都受到激励来构建增值和自定义扩展,这将使他们与其他供应商脱颖而出。我们在这里看到了 RISC-V。与 x86 和 Arm 不同的是,大多数实现都在 Intel 或 Arm 的保护伞下,实际上有数百个不同的机构和组织在构建他们自己的 RISC-V 实现。当你谈论矢量扩展之类的东西时,在规范如此之大的情况下,许多实施者决定只实施该扩展的一个子集。你将如何创建一个通用的黄金参考模型来验证针对这种实施方式的执行情况?其次,当我们谈论执行的验证和验证时,你必须更深入地了解工具链和操作系统。以矢量扩展为例。我接触过并与之合作的每个供应商都有自己的编译器,他们自己的 LLVM 实现来支持他们的矢量扩展。而且它们中没有一个与其他的兼容。因此,你可以从供应商 A 那里获取 LLVM 编译器,生成代码,但对于供应商 B 的实施来说,它的效率不会很高。
Davidmann: 我显然不同意这个评论。RISC-V 完全是一场噩梦,因为有太多选择。这是兼容性和合规性的挑战之一。有这么多配置选项,都是合法的,但最大的问题是,如何创建参考模型?但它比那更糟。每三个月,每个扩展都会有一个新版本。在我们的模拟器中,它是一个完整的参考。它对于任何独立的子集都是完全可配置的,而且对于版本也是如此。我们有 11 个版本的向量,其中 4 个已经进入硅片。我不认为这有什么问题,只要它的设计和架构是正确的。RISC-V 提供了将事情做得更好的机会。我们不能接受只有一个 Arm 或一个 Intel 的旧方式。那是行不通的。如果旧世界是你可以有一个做一件事的参考模型,那么新世界是你有一个可以做 100 件事的参考模型。这就是我们要去的地方。否则,RISC-V 将永远无法完成它的使命。我们必须解决这些问题。
Hardee:我们知道处理器的实现,细节决定成败。我们当然同意你的看法,即 SystemVerilog,Verilog,在捕获这些实现细节方面要好得多。但是你必须根据捕获意图的更高级别模型来验证该实现。那不是一个单一的参考模型。它可以是很多,也可以是为我们正在谈论的许多变体创建参考模型的标准化方法。
Davidmann:五六年前,我是 RISC-V 国际组织的一员,该组织研究了形式化并最终选择 SAIL 作为构建黄金参考模型的语言。我们弄错的是 SAIL 不是很容易配置。它非常适合一种架构。对于 Arm,这太棒了。他们拥有从定义开始的整个流程,一直到构造正确,一直到正式描述,这非常棒。RISC-V 的挑战在于它在设计上具有无限的可配置性。因此,在 SAIL 中对其进行建模是一个真正的挑战。这就是 Imperas 选择动态模型的原因。
Vittal:几乎每家公司都在采用 RISC-V。甚至领先的半导体供应商也在进行 RISC-V 设计,许多初创公司也是如此。但关键是能够有一个成功的验证计划,你有非常高质量的刺激来实现你的覆盖目标。验证和调试齐头并进。硬件/软件调试,逐步执行代码以同时查看问题。回到架构的灵活性,这带来了挑战——同时也为我们所有人带来了机遇。正在开发创新的解决方案。RISC-V 供应商和 EDA 工具公司以及其他 EDA 合作伙伴等之间正在进行大量协作。
Kelf:有些公司已经在一定程度上解决了这个问题。RISC-V 的无限可配置性,所有这些都是真的。但归根结底,Arm 和 Intel 已经解决了他们的可配置性稍差的处理器的验证问题。他们有一个流程,或一系列复杂的流程,这些流程包括一系列不同的活动。Arm 使用很多正式工具,做很多不同的事情。一个好的起点可能是查看其中一些人在他们的流程中正在做什么,并尝试将其中的一些自动化。你需要一些可以被所有试图做 RISC-V 处理器并一起合作的人使用的东西——合作提出这些更通用的流程,看看我们是否可以标准化其中的一些东西。而不是在适当的标准意义上,
SE:你们提到我们确实需要新工具、新流程。如今缺少什么呢?我们如何确定某人需要提供的东西是什么?
Kelf:有很多人在内部做 RISC-V 处理器,他们正在重新开始。他们正在学习如何进行处理器验证。像 Codasip 这样的公司从 Arm 和 Intel 等公司引进了具有丰富经验和专业知识的人,他们确实知道该做什么。因此,我们看到其中一些公司现在正在生产流程,他们正在考虑诸如「处理器能否支持完全一致性?」之类的问题。它是否适用于系统的其余部分?RISC-V 内部的安全指令,如 PMP(物理内存保护)指令能否正确运行?
Davidmann:当我们在五六年前开始使用 RISC-V 时,RISC-V 没有什么特别的东西。我们有 Verilog 模拟器,你有一些正式的东西,你可以写一些属性。有 GCC,你可以运行它并调试它。就是这样。我们在过去五年中看到的是,人们通过学习如何以专有方式验证处理器而衍生出许多工具和技术。我们一直在努力让它更加公开。我们一直在努力了解英特尔和 Arm 是如何做到的,以及所使用的技术类型。我们一直在 OpenHW 内工作,我负责验证任务。它是关于具有工业质量的开源硅。这与使用开源工具无关。我们在过去几年学到的是很多不同的技术,很多不同的做事方式,我们已经发展并构建了像这个可配置的参考模型这样的工具,比如为你做验证的技术,比如我们一直在发展的功能覆盖,以试图检查 Linux 有多好运行。人们一直在构建测试生成器。其他公司一直在构建正式工具,例如西门子的 OneSpin Technologies,它们专注于 RISC-V。已经有三四家其他公司参与了正式方面的工作。我们看到的是正在构建一些特定的 RISC-V 技术,正在构建一些验证 IP,越来越多的 EDA 供应商正在学习人们需要的方法,并且他们正在构建工具。但现在还为时尚早。我们距离真正使用 RISC-V 仅五年时间,并且可能需要几年的时间才能进入商业领域。之前有五年的学术工作。像 Codasip 这样的公司,以及硅 IP 的其他商业供应商,确实在内部发展和构建技术以进行验证。我们正在努力帮助将它们构建为商业工具,一些 EDA 供应商也是如此。我们正处于 RISC-V 验证技术新时代的开端。
Vittal:主流处理器开发人员知道他们在做什么。他们以前做过 x86 和 Arm。他们正在采用 RISC-V,而且他们确切地知道该做什么。他们还利用开源社区。对于主流,当你查看 RISC-V 时,它正在被主流设计师采用,这就是他们需要方法的地方,那也就是缺少的东西。Synopsys 提供验证和验证所需的一切,包括软件和硬件。我们有 VIP,我们有正式的技术,我们有数据路径,但缺少的是一种方法论。并且该方法具有处理器验证工程师和其他专家的专业知识。
Eftimakis:这是 IP 供应商的秘密武器。这就是我们内部所做的。
Davidmann:像 Imperas 这样的公司正在努力使它更加公开。它以前可能是专有 IP。我们提供了一个关于 RISC-V 处理器验证参考流程的 90 分钟教程。它列出了你需要的所有不同部分,以及当今可用的技术和不可用的技术。我们谈论基于商业技术的测试生成器。
Vittal:我们有类似的东西,我们的客户可以从使用开源核心的门户网站下载。这可以带你完成整个验证过程。
Beyer:添加新工具是关键,但我们需要高度可配置的 RISC-V 参考模型,并使其可用于工具和流程。然后我们可以围绕它构建一些东西,以便没有深厚经验的人可以达到对 RISC-V 内核拥有体面验证经验的地步。
Eftimakis:我们已经将工具集成到我们的流程中,包括 Imperas 和 OneSpin。这是我们认为成为 RISC-V 一部分的好处,因为我们可以利用这些为生态系统构建的工具,并将它们集成到我们的验证流程中。我们可以将比较与模型、模拟、形式验证、断言等结合起来。这是我们从成为这个生态系统的一部分中获得的好处。
评论