中文 英语

开源组件验证

构建一个开源验证环境或廉价的任务并不容易。目前尚不清楚是谁愿意为此买单。

受欢迎程度

定义一个开源的验证方法是更加困难比开发一个开源模拟器。这是开源硬件如RISC-V面临的现实。有些人可能要求相应的开源的验证,但是这是一个更加强硬的问题,它是不会在短期内得到解决。

第一部分研究了开源的原因验证可能是有意义的和大量的商业软件,今天需要这样做。本文将研究各种组织中扮演的角色在创建或支持验证流的碎片被取得了一定的进展,成为开源。

它是有用的考虑这个的上下文中RISC-V分层的,因为周围的基础设施。每一层都有一个角色并添加解决方案的最终发展。顶部是RISC-V国际,它定义了ISA扩展,被认为是标准。组织一组特定的需要验证。此外,一些财团,包括lowRISC OpenHW, OpenTitan,和薯条联盟,构建开源扩展RISC-V或实现的满足特定设置的要求。

无数企业利用RISC-V或财团的输出创建自定义的实现人们融入他们的芯片。许多公司还希望开源组件总线接口,内存子系统,等等。一些公司,比如西部数据,开发了实现和助长了那些回联盟。

几乎整个结构目前使用专用工具进行验证。但芯片联盟计划改变这种状况。“芯片联盟一个纯开源的心态,他们试图使他们的开源工具,”Simon Davidmann说首席执行官为治之软件。“所以他们有一个开源Verilog模拟器,他们有一个开源的空间站。他们试图使用Python作为testbench语言。精神上,他们正试图建立一个开源EDA生态系统都是开放和自由的地方。”

但是这个行业不能等待开源工具可用。“我喜欢它如果有一个开源SystemVerilog模拟器,”迈克•汤普森表示,工程主管验证OpenHW集团的任务组。“我们真的支持的芯片联盟的推动使Verilator更能够SystemVerilog模拟器。但是你不能完成100%,从上到下,前面的验证RISC-V核心用Verilog 95。没有免费的午餐的验证。你支付钱为商业产品,或者你支付随着时间的推移,这基本上是钱的薪水。”

你也许会很惊讶额外的支持可能来自哪里。“总有一个地方开源工具在任何环境中,不管是EDA还是外面,”尼尔说,营销主管设计验证技术导师,西门子业务。“如果有足够的支持,它将帮助推动该行业向前发展。驱动因素可能是类似RISC-V合规测试,显然是一个需要的地方,显然是有需求,有很多开源提供者。如果我们能找到一种方法来帮助他们获得共性这将有利于世界。”

建立公司不是那些似乎推动。“一些相对较大的公司看看一些开源工具的一种方式来优化他们的成本,以及卓有成效的开源开发社区,”科林·麦克拉说,副总统的验证平台想象力的技术。”,但如果你做高端计算设备和大量的验证要求,和你有非常复杂的IP,我敢肯定你花足够的资源广告那些少量的投资工具是有道理的。”

一个视图从顶部
甚至一个组织像RISC-V层验证的需要。“我们看金字塔,”Mark Himelstein说RISC-V国际的首席技术官。“你有设备底部认证。然后就是合规测试,然后有各种各样的应用程序二进制接口(ABI)测试。有标准的性能可能是重要的行业,所以我们必须看看正确性正确执行,。最终,应用程序必须运行。你没有保证,即使你通过验证和遵从性,一切将会过去。世界不会这样。”

RISC-V国际关注验证与实现无关。一个完全不同的组所需测试的实现。”设备验证是留给自己的公司,或者该财团和系统组织,专注于这些东西,”Himelstein说。“像lowRISC OpenHW OpenTitan,芯片联盟,所有各部分工作。他们选择这些联盟成员间分享。然后有些人做的东西自己因为他们要么需要更及时,或他们的秘密武器是如此不同,他们真的不能表现出来。”

一个开源的担忧是责任和响应。“风险的一个重要部分是知道谁殴打当事情没有工作,“导师的手说。“他们可以容纳你的脚火和知道会得到固定的东西,它就会固定在他们的项目时间表。它将会固定在某种程度上,他们知道他们可以签署他们的设计。的原因之一,甚至对于开源硬件,你开始看到公司做商业支持。”

对另一些人来说,这是一个开源的优势。“开源,当它不工作你可以修理它,”蒂姆•萨克斯表示Quicklogic首席技术官。”诚然,有可能只是少数人有这样的能力,但是一旦它的开源工具启用很多研究人员和其他公司戳,开发他们的事情。最好是如果我们将它们移动到开源工具从长远来看,远离你的专利。”

这需要来自开源社区的承诺才能成功。“你不能保证你会想到所有可能的事情,但你必须保证你会回应,“Himelstein说。“这是你所能做的,希望你把事情所以你可以回应。”

当前的方法
通用处理器验证技术来测试复杂的状态和极端的角落用例是使用一个随机指令流发生器,如谷歌开源项目,RISCV-DV研究小组测试源码,可以发现GitHub。通过设置SystemVerilog测试环境中运行测试的配置,和DUT参考模型,step-and-compare方法可以启用,如图1所示。


图1:一个共同验证配置。来源:治之软件

在这种情况下,流发生器是开源和参考模型,虽然专有和规则,提供免费OpenHW集团核心可用。“我们让我们的模型自由,但你不能获得模拟器之类的内部,“Davidmann说。“我们做的模型非常可配置的,所以只要你坚持RISC-V ISA。然后他们所需的所有配置选项。如果你延长RTL,扩展模型,你扩展测试和编写新的测试。你有一个增量变化在两个或三个地方。”

更多的是需要的。“参考模型之间的比较结果和RTL模拟器是一个很好的起点,但你会很快达到速度墙由于大量的处理器配置需要验证——特别是通过添加自定义指令和寄存器,”路易De Luna说,营销主管Aldec。“一些应用程序和严格的时间要求,例如在汽车和航空电子设备,将模拟的时间大大增加。fpga仿真可以增加流。UVM的测试和环境中使用RTL模拟可以很容易地移植到一个模拟器的帮助下SCE-MI标准。模拟器提供旋精度设计与多个异步时钟信号电平精度和支持。”

这可以用于其他任务,。说:“我们也目标fpga OpenHW汤普森。“这些将在一个FPGA实现不久我们完成仿真和验证,或真正的硅。我们不希望,作为一个RTL验证技术。我们看,基本上是将帮助打开硬件、验证工具链,那种事情。”

有一定量的争论依赖专有的元素,特别是对参考模型。“我们提供许多不同的指令集模拟器的水平,“Himelstein说。“我要提醒说,每个模拟器是在不同层次和不同功能。如果你做RTL的水平。如果你做功能、指令级模拟另一个层面。然后如果你做我称之为功能操作系统级别不同级别。Qemu和飙升的功能操作系统级别。帆模型,我们提供的功能指令的水平。所以当你做一些复杂的事情像重型同步与虚拟机监控程序,你可能不想做帆模型。你可能想做的事,在飙升,因为它有内置的虚拟机监控程序支持。”

添加正式
有些人喜欢附带的穷尽性形式验证。“我们把帆模型和更新以匹配特定的核心,我们正在努力,”汤普森说。“美丽的航行模式是可扩展以同样的方式作为RISC-V ISA。然后我们执行的形式验证核心创建一组SystemVerilog断言可以用于做一个正式的RTL的验证。工具的形式验证比较RTL的断言是一个专有的工具,和技术将被用来做将每个供应商的专利。”

“任何正式的输入工具SystemVerilog断言,“Kiran Vittal说,验证产品营销主管Synopsys对此。“最小公分母应该一些基本设置和流程或方法可以扩展和开源硬件提供者可以这样做。有其他类型的静态检查,可以很快赶上角落案例问题或者问题,然后再编写功能测试,甚至做合成。这些都是简单的产品毛羽检查。”


图2:RISC-V核心的形式验证。来源:Synopsys对此

方法从正式证明工具包。”检查的一般策略依赖于观察所有指令的路径的问题点完成使用观测模型,在非确定性允许其他指令inter-leavings点缀之间的问题和完成的具体指令检查,“说阿施施Darbari, Axiomise CEO。“这确保我们能赶上所有类型的bug控制concurrency-dominated,并可能导致不正确的结果。”

当应用正式的一个实现,必须编写额外的属性。“断言是依赖于微体系结构,所以他们会很难重用,”汤普森说。“四级流水线,每个阶段可以拖延上游阶段,给定一组条件,这些条件是不同的,比他们会为核心,说,six-stage处理器。一旦你识别和写断言,他们现在特定的核心。断言可以用SystemVerilog写的,他们可以是开源的,但是他们只会用于核心。”

正式的当然是首选方法去一些公司。"鉴于开源硬件的实现透明,更容易采用白盒验证使用财产证明或等价等形式验证检查,“说Bipul Talukdar,应用工程主任SmartDV在北美。“正式的方法从EDA公司会授权并发症,但这些工具可能比较开放资源更有用,因为货币化这样一个模型将是一个挑战和限制广泛采用。解决方案可能是开放正式工具授权第三方正式的方法开发的机制。”

流发电机
关注的一个领域看到很多来自开源社区的指令流发电机。“任何RISC-V产生或使可用的开源,“Himelstein说。“所以,例如,功能合规测试套件将是开源的。功能性合规测试套件将完成测试生成器和容易修改的。”

可配置性是关键。“虽然开源账户的出现像RISC-V支持自定义扩展处理器设计者提供了大量的自由,它提出了一个非常有趣的验证的挑战确保所有的设计都是兼容的,功能正确,”罗伊Choudhury说,首席执行官和创始人之一Valtrix系统。“这要求测试生成器的设计方式的转变。他们需要高度可配置允许验证的自定义特性以及遗产/基线特征。”

最著名的就是从谷歌流发生器。“当你构建一个处理器,你要产生很多很多的测试,和指令序列,“Davidmann说。“传统上,人们使用约束随机测试序列。RISC-V世界每个人都需要一个指令流发生器,其中有大约七、八。都是用SystemVerilog约束和功能覆盖率。他们会使用商业工具进行模拟,但是他们会写一个开源随机测试生成器。”

覆盖的实现
有更多的处理器的指令。“验证是人们严重低估了我的内疚低估了CPU验证工作,”格雷格•Tumbush说EM微电子的工程师。“这是一个巨大的工作,multi-man-year努力。如果你只是担心指令,您可以生成一系列的指令。与RISC-V你扔在调试、异常和中断,所以问题是超出的范围是否执行指令。”

与任何验证项目,它已经开始计划。“你必须有一个非常全面的验证计划,”麦克拉说。“我们已经变得太专注于自动覆盖。所有这一切都归结到复习你所做的努力,问,“这就足够了吗?”,如果这还不够扔掉芯片的风险,你需要一点资金投资于工具,或有人独立审查或验证你。”

这不是简单的。“我们已经完成验证计划和我们执行这些计划和构建验证环境”汤普森说。“我们应用技术约束随机刺激生成、功能覆盖率跟踪完整性、代码覆盖率,清单,以确保我们所做的,我们说我们所做的一切,并检查代码以确保在正确的水平的质量。这是试验台的代码和RTL代码”。

覆盖率仍然可以是一个弱点。“这个行业非常非常进化的刺激,“达尔科Tomusilovic说验证主管Vtool。跳棋”也,我们有明确的标准,参考模型等。我们还有很长的路要去达到类似水平的质量领域的报道。功能覆盖率的概念UVM SystemVerilog是面向任何容易覆盖。我们看到很多讨论点插入,因为他们容易增加,他们不提供任何有意义的价值。另一方面,我们有一个更大的问题。有很多时候真正的角落里不存在的情况下仅仅因为它是在功能覆盖语言很难表达他们。”

结论
今天没有开源验证流可用,而一些您正在处理的,这将是很长一段时间我们可以预见开源验证工具甚至接近相同的功能或性能水平的商业工具。虽然有些可能希望工具,只有所需的能力验证RISC-V核心,大多数人然后想整合到一个更大的系统中,突然验证工具的成本就变得不那么重要。

身体像RISC-V国际是现实的。“我们试图确保生态系统,让人们从设备验证向编译器和调试器优化或中间件数据库,运行时,翻译等等,他们都很重要。我们的工作是在开源,在实现独立的块。我们做的东西是必要的,但不充分,客户或会员成功为客户创建一个解决方案。”

到目前为止,很少有公司愿意提供必要的资金,它将创建一套开源的验证工具。最好的办法芯片内的行业已经是联盟,和很多人都祝愿他们成功。EDA行业,与此同时,仍保持中立。

“如果你投资于技术,需要创新,需要收费,“说Synopsys对此Vittal。“我怎么能给你一个开源工具,不收费,还想出创新技术吗?”

麦凯乐表示同意。“每个人都需要给出一个合理的赚钱能力,合理的标记,或将会崩溃。”



2的评论

西奥多·威尔逊 说:

另一个优秀的文章布莱恩。谢谢你!

Gaurav道路 说:

布莱恩非常全面的信息!

留下一个回复


(注意:这个名字会显示公开)

Baidu