中文 英语

开源的验证

理清开源验证的含义并不容易,但它为新方法敞开了大门

受欢迎程度

问不同的人开源验证意味着什么,你会得到很多不同的答案。它们的范围从开源硬件的验证,到提供开源验证基础设施,到提供开源流生成器或参考模型,再到开源模拟器和正式验证引擎。

验证是为了降低风险。“需要验证来回答这个问题,‘你信任你收到的硬件吗?的设计验证技术营销总监尼尔·汉德(Neil Hand)说Mentor是西门子旗下的企业.“这与开源硬件无关,不管它是你自己做的东西,还是一个商业IP。现在,当你也依赖开源验证时,问题就变成了,‘你对这种验证环境有多信任?’”

但这不仅仅是开源硬件的问题。“对于用于集成电路(IC)的开源硬件,面临着与商业授权IP或内部设计工作相同的问题,”公司高级营销总监Roddy Urquhart说Codasip.“当你在制造集成电路时,任何导致硅失效或重新旋转的错误都会导致相当大的成本,从而导致额外的成本和上市时间的损失。无论是否开源,设计都需要严格的验证。”

开源社区一直处于劣势,因为主流IP没有完全解决这个问题。现有的方法依赖于合作伙伴之间的信任。“当你购买IP时,你通常会得到一个非常简单的验证环境,”该公司高级验证经理奥利维拉•斯托亚诺维奇(Olivera Stojanovic)表示Vtool.这使您能够运行一些演示测试或检查配置。您通常不会得到整个验证环境。对于复杂的ip,他们不想为你提供验证环境,因为这太复杂了,可能会提供他们不想让你知道的信息。”

知识产权行业也不容易将验证成果集成到系统验证环境中。Vtool的验证主管Darko Tomusilovic补充道:“每当我们整合IP时,我们通常会发现在将IP与其他验证环境顺利集成时存在很多挑战。”尽管他们都在用UVM方法,我们仍然没有一个清晰的,定义良好的方法来整合它们。例如,他们可能使用不同的概念来同步测试平台和软件。”

当您将处理器引入到图像中时,还必须指定您谈论的是对指定ISA定义的一致性测试还是对实现的验证。考虑到RISC-V规范被设计为可扩展的,并允许在实现过程中进行许多架构扩展,使验证框架具有同样的可扩展性和可移植性可能具有挑战性。

半导体行业越来越倾向于依赖标准语言和接口。“我一直在处理芯片设计,同样的问题可以在这里找到,”克里斯奥尔蒂斯说,首席应用工程师有限元分析软件.“标准是由CDX或ODSA等组织定义的,我发现验证似乎是最不被理解的,也是最有争议的。你如何进入并验证这些硬件是否正常工作?”

虽然开源在软件社区已经取得了成功,但它在硬件世界的吸收却慢得多。Quicklogic的CTO Tim Saxe说:“不同之处在于,软件世界更加努力地使抽象更加清晰。”“他们能做到这一点的部分原因是,他们比硬件行业拥有更多资源。硬件人员总是试图节省资源,这损害了他们做出清晰抽象的能力。”

有很多挑战需要解决。“开源市场在验证方面确实有点超前,”微软验证平台副总裁科林·麦凯勒(Colin McKellar)说想象力的技术.“随着一些设备的复杂性不断增加,以及软件社区在芯片开发世界中更平等的合作伙伴的推动,开源和开放的咒语开始进入某些领域。会有开源没有意义的领域,然后会有人说开源社区会因为各种各样的原因而失败,他们可能有也可能没有完整的情况,或者可能没有诚实地谈论。”

今天我们能用开源工具来做吗?微软设计验证产品经理Sven Beyer说:“开源硬件必须根据其目标用例进行验证。OneSpin解决方案.“如果你想在大学项目中使用开源IP,你不需要对功能正确性有太多信心。但如果你想在大容量芯片中使用RISC-V核心,高质量、最先进的预硅验证是基本要求。拥有一个完整的开源验证流程将是非常好的,但这在今天是不可能的。你需要商业模拟器、正式工具、vip和EDA合作伙伴提供高质量的支持。”

多只眼睛有助于更好地验证
当谈到安全性时,越多的眼睛看到某样东西,它就可能越安全。谷歌项目负责人、OpenTitan项目总监Dominic Rizzo表示:“我们希望能够进入市场并购买soc,在那里我们拥有与内部专有硅相同的透明度和可见性。”“我们正在寻找一个高质量的实现,为我们提供一组特定的安全属性。开放它比封闭它更能让我们获益。我们试图做一些正确的事情——绝对正确——然后向所有人证明这是正确的。”

OpenHW集团将同样的心态应用于验证。OpenHW集团验证任务组工程总监迈克·汤普森(Mike Thompson)说:“有一整个社区的人都在四处张望,戳着石头,掀开地毯,看看我们做了什么。”“我收到来自地球遥远角落的电子邮件,询问我为什么选择在测试台上做某件事。它迫使我思考我们所做的事情的基本原理。这些问题每次都能让核查变得更好。”

这需要时间。“我听说,在像QEMU这样的开源技术的背景下,验证实际上被认为是更好的,因为你可以自己修复,而且由于它是开源的,你有更多的人在研究它,”Frank Schirrmeister说,他是微软解决方案营销的高级集团总监节奏.“我听说过这种说法,但我必须承认,我没有看到有关质量的真实数据,比如随着时间的推移而产生的bug或勘误表,来支持这种说法。这将是一个有趣的实验。”

不过,社区正在开始形成。Imperas Software的首席执行官Simon Davidmann说:“OpenHW的客户正试图获得高质量的芯片,他们准备分享和贡献测试平台。”“这一切都是关于使用测试平台构建高质量的RISC-V核心,人们可以克隆并自行运行以获得信心。从动态模拟的角度来看,他们正在使测试台和一切可用。还有其他正规领域的公司,如OneSpin和Axiomize,他们正试图提供帮助。其中一些不是开源的,但他们正在努力提高核心的质量。”

它是约束事物的框架。OneSpin的Beyer说:“利用开源验证基础设施是可能的,它允许来自多个供应商的开源和商业工具。”“集成或定制核心的OpenHW core - v用户将有一个平稳的过程来利用最好的EDA工具,并为他们的芯片实现严格的验证。形式化是这一流程的关键部分,因为核心和其他控制密集型ip都有许多极端情况,即使是微小的修改也会创造出无数新的极端情况,即使是最好的约束随机也无法预见或触及这些情况testbenches.”

它并不一定都是开源的。“所有的刺激方案都是开源的,”OpenHW集团总裁兼首席执行官里克·奥康纳(Rick O 'Connor)说。“你需要在自己的广告中投放广告SystemVerilog模拟器。我们正在构建与任何大型SoC公司自己所做的相同质量的基于SystemVerilog UVM的验证基础设施。他们看到的好处是他们不需要自己去做。它的开发方式是,我们将许多不同贡献者的最佳和最聪明的方法整合在一起。在他们的验证测试平台上,没有任何一个组织的覆盖范围和能力能超过我们。”

Imagination的麦凯勒对此表示赞同。“将会有一些组件得到非常好的测试,因为很多专家都在关注它。它们将成为你得到的最好的验证作品之一。被验证的人越多,被验证的方式越多。所以,如果你能让更多的人来测试、审查并提供反馈,那么你的质量就会更高。”

遵从与验证
表明你服从于ISA规范与完全验证的核心有很大不同。“当人们从信誉良好的公司购买产品时,他们如何感到自信?”Imperas的Davdimann问道。Arm的理由是,他们已经涉足硅行业5000次了。目前可能有大约50或60个开源RISC-V内核可用。你要问自己的第一件事是,我要送的是不是RISC-V。你应该验证核心是你所期望的,供应商应该给你他们的模拟器、RTL和一个相当全面的测试,以及合规套件。”

这是一项正在进行的工作。RISC-V国际公司的首席技术官Mark Himelstein说:“RISC-V打算提供功能合规测试,包括验证模拟器、模拟器、软核和硅的测试。”“最初的测试将包括一个测试生成器,这些测试可以在SAIL的正式模型中运行,以获得最佳结果。我们正在制定计划,为大多数非特权基础ISA提供这些测试,并随着时间的推移将其扩展到包括复杂指令序列、特权规范和扩展。”

除此之外,还需要一个用于实现的验证环境。OpenHW的汤普森说:“我们必须在验证环境的架构中做一些具体的事情,允许人们引入的不仅仅是core - v核心,而是任何符合RISC-V的核心。”“不仅是一个符合RISC-V ISA的RISC-V兼容核心,而且还支持一些特定的指令扩展或一些他们可能想要添加的特定协处理器。我不能说我们已经解决了这个问题。我想说,我们意识到这是我们需要解决的问题。”

最小化验证成本
当财团试图解决这些验证问题时,采用者应该听取那些最重要的事情的建议。Vtool公司的斯托亚诺维奇说:“如果我们谈论的是RISC-V核心,现在很少有人对它进行验证。“IP的质量与Arm的IP不同。在计算项目成本时,你需要考虑RISC-V IP本身验证所需的额外时间,因为它没有投入同样多的资金。”

这将有所改善。“你可以从货架上买到很多,”麦凯勒说。“如果你得到了必要的测试结构,就很容易在上面添加随机和结构化框架。所以你可以很便宜很快地得到一个相当好的框架来建立一个验证和验证框架。以一个完整的验证框架和基础设施来完成所有事情是昂贵的,需要大量的时间,但如果你正在构建并愿意接受迭代计划,那么你只需要相应地进行计划。”

这可能意味着对自己做出的改变的严重性有现实的期望。EM Microelectronics的工程师格雷格·图姆布什(Greg Tumbush)说:“当你在构思RISC-V核心的设计时,它越接近已经被验证的OpenHW核心,或至少正在被验证的过程中,就有很多优势。”“第一,国际空间站的模型可能是正确的。第二,他们所做的验证也适用于你。第三,你开发的任何东西,包括bug修复,都是可以直接贡献的。如果你的核心完全不同,你的公司和OpenHW之间就没有协同作用,或者这种协同作用开始迅速消散。每次你拉下最新的核心,它有最新的bug修复,你就会面临一个巨大的合并问题。”

从标准开始
EDA行业在创建一套驱动该行业的标准方面投入了大量资金。大多数行业使用的语言和方法都是由Accellera定义的,然后成为完整的IEEE标准。这包括Verilog和SystemVerilog、SystemC、通用验证方法(UVM)、用于规范功率意图的统一功率格式(UPF)以及最近的便携式刺激。

开源社区正在进行的大多数验证工作都是基于这些,因为他们投入了大量的专业知识。“我们的大部分验证环境都是用SystemVerilog编写的,”Thompson说。“有一些组件是用C或c++开发的,但它们有一个SystemVerilog包装器,所以对于其余的测试台来说,它们看起来像SystemVerilog。我们使用UVM是因为它是一条很陈旧的路径。如果你与拥有UVM专业知识的人交谈,你可以就架构和结构、验证环境的使用进行对话,对方会自动理解你在说什么。”

不幸的是,这还不足以确保测试台的可移植性。“我们经常听到客户想要改变他们的验证环境,从一个供应商转移到另一个,”Mentor的汉德说。“要做到这一点,工作量是不小的。因此,创建一个统一的环境是有挑战的,你可以在供应商之间轻松切换,或者你可以在开源和闭源工具之间轻松切换。”

SystemVerilog和UVM的复杂性在社区中产生了分歧。“开源工具对SystemVerilog测试平台结构的支持还没有达到商业工具的水平,”Daniel Schostak说,他是微软中心工程组的架构师和研究员手臂.“有一些开源的替代方案可以以不同的方式做同样的事情——例如,用Python编写测试平台代码的Python框架,而不是SystemVerilog。这减少了模拟器需要支持的功能。然而,这导致了各种权衡,例如,在使用标准商业工具时,能够雇用经验丰富的硬件工程师的好处,与能够提供开源验证IP来配合开源设计IP的好处相比,开源设计IP可以在对特定工具的依赖最小的情况下构建。”

其他人则认为这是一种干扰。汤普森说:“让我感到苦恼的一件事是,有人呼吁放弃这种语言,而不是提出一个真正有效的开源SystemVerilog模拟器。”“我们的努力不应该放弃SystemVerilog,而尝试用其他语言进行验证。现在最流行的是Python。仅仅因为它是开源的并不能使它成为一种好的验证语言。在我看来,这与行业的发展方向完全相反。向一个复杂的问题引入新的语言并不能使问题变得更简单。”

新开发的标准语言也被缓慢采用。Stojanovic说:“便携式刺激(PSS)将允许我使用硬件附带的验证IP,并在SoC级别上重新使用它。”“这将非常有帮助,能够更快、更容易地验证使用该IP的系统。”

业内的其他人希望在验证环境中看到这种类型的进展。“我们正在从核心转向MCU子系统,”Quicklogic的Saxe说。“现在的问题是,要验证所有这些外围设备是否都能与核心一起工作。人们知道如何验证核心,但当它们开始与外围设备交互时,生活就变得更令人兴奋了,这就是您实际需要工作的地方。Antmicro有一个名为ReNode的联合模拟环境。虽然RISC-V社区将提供一组测试向量,让你测试你的RISC-V核心是否符合isa,但像ReNode这样的人会让你测试,以确保你的核心与围绕它的所有外围设备兼容。”

为验证提供点工具可能会产生其他问题。“你需要考虑完整的验证方法,”公司验证产品营销总监基兰•维塔尔(Kiran Vittal)表示Synopsys对此.“你是否考虑了核查的每个方面?您是否希望确保它们形成一个完整的验证平台?如果您在一个环境中进行调试,那么您应该能够在另一个环境中快速调试相同的问题,因此您可以使用通用的调试方法。他们还必须在开发流程中表现良好。你不会想要等到最后一刻才意识到有些事情趟车后端位置和路由工具不能接受。UPF的更改意味着你必须在RTL重新验证设计,然后重新合成,放置和路线。它只是涓涓细流,没有尽头。”

第二部分将介绍开源验证环境所必需的组件,以及将它们集成到商业框架中的方式。

相关的
越来越普通的RISC-V验证任务
将一个开源核心集成到一个复杂的SoC中看起来非常熟悉。
RISC-V正在获得吸引力
可扩展指令集架构正引起整个行业和供应链的关注。
简化和加速验证
与会专家:人工智能、芯片和更精确互连的影响。
RISC-V的挑战和机遇
谁能从开源ISA中赚钱,RISC-V生态系统的当前状态,以及供应商之间的区别。
开源硬件发展势头
RISC-V推动了对这个市场的新关注,但开源硬件的成本/收益等式与软件不同。



1评论

史蒂夫·胡佛 说:

随着可移植性成为越来越重要的目标,验证模型的重用也在增加,验证工具(将验证模型连接到硬件模型)的作用也变得越来越重要。虽然验证模型可以重用,但这些线束是特定于每个硬件实现的,以信号级连接。

留下回复


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

Baidu