中文 英语

确保RISC-V设计按预期工作

开源增长预测令人印象深刻,但验证过程可能比商业isa更难。

受欢迎程度

RISC-V指令集架构吸引了广泛的市场关注,但要确保基于RISC-V ISA的设备按预期工作,比其他商用的基于ISA的芯片更难。

普遍的共识是,开源缺乏商业可用IP和工具的安全网。描述倾向于泛化,而不是针对特定的应用程序,开源工具更难以使用,而且通常不太可靠。这为RISC-V ISA和专门针对RISC-V的工具的商业实现创造了一个市场,但它也为简化和增加RISC-V实现一致性的商业开发工具和IP打开了大门。

所有这一切都发生在整个RISC-V生态系统的快速增长中。Semico Research预测,到2025年,通信领域的复合年增长率将达到209%,从现在到2025年,RISC-V将占据该市场CPU核心业务的6%以上。该公司还预测,在此期间,汽车可用市场的复合年增长率将达到160%,到2025年,5G基础设施的总可用市场将达到1900万台,RISC-V在这两个市场中都发挥着重要作用。总体而言,在此期间,针对各种性能水平的器件,RISC-V的增长率预计将增长160%。

但与任何新的细分市场一样,没有什么事情像纸上看起来那么简单。可靠性始终是一个关注的问题,拥有能够在更深层次上跟踪潜在问题的方法和工具是至关重要的,例如正式验证和更广泛的模拟。

“在当今复杂的国际价值创造网络中,一个关键点是电子元件设计的可靠性,”罗兰德•扬克(Roland janke)表示弗劳恩霍夫IIS的自适应系统工程部。“像RISC-V这样的处理器内核的开源实现应该可以解决这个问题,假设一个大型开发人员社区将确保无错误的实现。尽管对于Linux内核等现成的批量产品,这似乎是一个有效的假设,但对于非常专业的处理器,这可能会失败。因此,这样的开源设计也需要正式的验证方法,以确保在实现中没有错误,也没有故意包含在开源核心中的后门。”

Joe hupsey,验证产品技术专家Mentor是西门子旗下的企业表示同意。”正式的验证它的优点是能够提供dut行为的详尽分析。考虑到开源硬件所带来的巨大创造力和硬件设计的广度,从项目的一开始,一直到硅后验证或快速找出任何漏洞的根本原因,将形式化包含在硬件开发人员的验证策略中是至关重要的。”

例如,在项目的最开始,当系统工程师将白板草图转换为指令行为和交互的电子表格模型时,可以使用正式的属性检查来验证指令之间的状态转换/切换的交互不会导致死锁。

hupsey说:“向开源isa添加指令的能力使其成为一个很好的正式候选,因为使用模拟完全验证所有变化的影响将是一个巨大的挑战。”“这项任务是双重的——验证添加的指令逻辑本身可以很好地与‘标准’指令和接口集一起工作,并且它本身没有错误。此外,详尽的形式分析对于发现可能是间歇性故障来源的极端情况漏洞至关重要,这将导致IP的最终客户对最终产品的质量提出质疑。”

无论硬件规范是基于开源还是商业供应商的产品,公司定制处理器核心和外设之间的接口以获得一些能力或区域优势都是很常见的。

hupsey说:“无论一个给定的接口是未经修改就使用的,还是为了帮助区分最终产品而定制的,集成即使是最成熟的IP/外围设备也会产生意想不到的问题。”“此外,即使是经验丰富的开发者也可能误解IP规范,或者不恰当地配置少量协议参数,从而导致令人困惑的结果和浪费时间。因此,形式证明断言当工程师修改IP时,基于验证的IP可能是部分重要的,因为这使他们能够详尽地证明标准协议实现的任何自定义或扩展都不会违反协议的核心和/或创建意想不到的极端情况。”

此外,当硬件错误出现在后硅实验室测试中,压力是尽快修复它,并确保在修复过程中没有其他问题被解决。最直接的挑战是可观察性。但是,即使立即怀疑某个集群或IP是罪魁祸首,设置特定的初始测试条件、探针和约束随机刺激以到达DUT的内部区域的能力也是一个真正的挑战,因为SoC处于完全实现的状态。

他说:“幸运的是,有基于形式的验证工作流,可以与模拟或硬件辅助验证流程一起使用,以快速彻底地查找错误的根本原因,并彻底验证RTL是否有效地修复并完全解决了故障。”他补充说,考虑到开源硬件项目固有的新颖性,IP及其接口中不可避免地会出现无法预见的极端情况,只有详尽的正式分析才能发现这些问题。

其他人也同意。的成员Tom Anderson说:“只有正式的设计才能详尽地分析设计,并确保没有bug。OneSpin解决方案”技术营销团队。形式等价检查还可以验证实现流程,并确保没有硬件木马被插入到设计中。由于供应商和设计变化的多样性,人们对使用形式化来验证开源RISC-V内核有强烈的兴趣。这种验证应该使用第三方工具进行,这样核心集成商就可以像核心提供商一样重新运行相同的分析。”

使用所有可用的工具
但并不是每个工具都能很好地完成所有任务,随着芯片变得越来越复杂,使用所有可用的工具就变得至关重要。例如,在理解设计的不同部分之间的复杂交互和依赖关系,以及确定什么是合法的,什么可能会导致问题方面,模拟仍然发挥着关键作用。

“现在有开源模拟工具,但它们缺乏UVM的营销总监路易•德•卢纳表示Aldec.“在SoC验证方面,UVM非常有帮助。这是一个挑战,因为用户也想使用开源工具。但归根结底,他们仍在使用商业级别的模拟工具。”

然而,开源增加了一个独特的转折,因为这些设计从一开始就是可执行的。这就是为什么正式成为如此重要的组成部分。

“在开源设计中,想法是提供一些可执行的东西,带有文档,这样当有人选择这个设计并将其集成到他们的设计中时,在接口层面就会有一些契约说,‘就界面和功能而言,这个设计应该是这样使用的,’”拉文德拉·安内贾(Ravindra Aneja)说,他是微软正式解决方案应用工程主管Synopsys对此.“你提供给设计师一些可以使用和执行的东西,以确保他们以预期的方式使用这个设计。在过去,工程师得到的是一个最小的测试向量集,可以用来在集成时进行模拟。但是现在工程团队看到了正式验证的很多价值,因为它是详尽的,需要最小的设置,并且这些团队被提供了对正式验证至关重要的断言——基本上是关于设计所期望的合法刺激以及设计如何响应该刺激的可执行规范。如果代码连接不正确,正式的验证可以减少获得快速反馈的时间,以判断它是否正确使用了这种设计。”

对一些人来说,这一切都是在RISC-V的背景下实现的梦想。“我们曾经梦想过它,但现在它成为了现实,”Aneja说。“你可以去[核心提供商的网站],你可以提供你需要的指令集,然后基本上他们会根据你需要的指令集配置他们的CPU内核。你不必使用整个指令集,但你可以使用你需要的RTL可以根据您的需求自行配置。你可以想象使用这些代码的人。每个人都有自己的需求,每个人都有自己的定制RTL,出于所有实际目的。在那里,可测试性变得更加困难,因为设计可能有很多你没有考虑到的迭代。”

理解设计的可配置性并对其进行验证是至关重要的。“形式验证将自己很好地扩展到那个环境中,因为您可能有一个迭代,您不仅为其配置RTL,而且还可以配置与RTL一起使用的断言集。当设计团队使用该RTL时,他们可以根据与该配置相关的属性集验证RTL的迭代。”

正式模型应该开放吗?
在任何关于开源的讨论中,开放性的问题都会延伸到相关领域,而在RISC-V中,其中一个问题就是正式的验证模型是否应该开放。

Aneja说:“对于各种协议的断言ip,通常所有供应商都将它们集成在一起,因为他们的想法是,你想要从你的努力中获利,因为编写这些检查器需要付出相当多的努力。”“但对于那些正在开发基于isa的开源内核的人来说,无论是RISC-V还是其他方式,他们的目标是一个非常大的客户群,他们可能想要扩大这个客户群。他们可以做到这一点,如果他们可以很容易地融入他们的环境。如果他们限制太多,就不会有很多人能使用它。人们想要尽可能容易地集成它,他们想要灵活性,他们想要可读性。所以在扩大使用方面,有一个很好的论点,那就是人们在使用它的时候应该能够看到那些断言。当人们编写这些属性时,他们不仅是在接口级别上编写,而且还在为设计的一些内部功能编写属性。如果你没有对这些模型的可见性,这可能会阻碍他们预期的使用,这就是为什么对正式模型的可见性的讨论开始出现。”

这取决于创造这种模式的公司是否以及如何将其货币化。他说:“如果有人正在编写核心,并且他们提供了正式的模型或正式的断言,他们可以以某种方式将其货币化。”“如果他们打算把ip卖给5000个客户,并且它是经过授权的,或者有其他赚钱的方式,这可能只是小钱,他们可能不会在意。但如果这是一个了解架构的第三方,并且他们正在提供正式的检查器或正式的IP,他们可能希望为此获得报酬。这可能会把他们带到一个他们想要加密的方向。看看谁在写,谁在卖,这将决定它是否开放。但是对于将要消费它的社区来说,他们当然希望它是开放的。”

对于这种设计的用户,验证团队将利用正式的断言IP,因为它允许他们更快地调试它。例如,如果指令集没有像预期的那样工作,设计者可以提取信号并调试它们。但他们并不知道它是如何编码的,因为他们看不见。

Aneja说:“当我们称某些东西为开源时,人们就会期望他们应该能够看到他们需要的东西。”“在调试方面,它肯定有帮助。但还是要视情况而定。这有技术上的原因,也有商业上的原因。从技术上讲,对于使用它的工程师来说,他们希望看到它打开。但对于开发者来说,他们有一个不同的衡量标准来衡量如何将游戏盈利,这意味着他们必须让一些游戏变得可见。”

如果没有这种可见性,任何变化都需要由开源技术的消费者跟踪。如果进行了更改,则需要在上下文中理解它,如果在此之后进行商业销售,则需要某种方法来跟踪这些更改。

“作为一个社区,开源是一个好主意,”Aneja说。“但与此同时,必须有人承担起责任,当某些东西发生更改时,所有信息都需要刷新,这取决于代码是如何更改的。就像开源社区中的任何代码一样,必须有一些共同的责任来确保没有后勤问题。”

由于这些原因,由于开源设计的开放性质,利用每种类型的验证技术(包括正式验证和模拟)以确保没有任何偏离轨道变得比以往任何时候都更加关键。

结论
开源设计,包括RISC-V ISA,只是需要集成到SoC中的另一个组件。但是因为它是开源的,工程师们有能力做出改变。这使得理解所做的更改非常重要,并使用任何必要的工具来验证它在使用的环境中是否有效。

正式的模型、正式的验证、模拟和其他任何可以用来确保一切都在设计上下文中按照规格工作的东西都是至关重要的,这包括任何已经更改的东西。与商业isa或IP不同的是,开发人员对未来的任何问题负责,开源代码不存在这样的安全网。开源的商业工具和实现可以提供帮助,但通常都不是免费的。

有关的故事
开源硬件风险
要实现开源硬件生态系统,还有很多工作要做。
开源处理器会导致验证的转变吗?
工具和方法是存在的,但谁将实际进行验证尚不清楚。
RISC-V市场,安全和增长前景
专家:为什么RISC-V受到如此多的关注,还需要做什么,以及它可能在哪里取得最大的成功。
开源RISC-V硬件和安全
专家在桌前,第1部分:一种新的指令集架构的优点和局限性。
RISC-V的挑战和机遇
谁能从开源ISA中赚钱,RISC-V生态系统的当前状态,以及供应商之间的区别。
开源EDA会起作用吗?
DARPA计划推动更便宜和更简单的工具,但这可能不是那么容易。
在RISC-V系统中构建安全性
与会专家,第2部分:重点转移到固件、系统级架构以及工业界、学术界和政府之间的合作。
开放式isa越来越受欢迎
强调灵活性、上市时间和异质性需要更多的处理选项。



留下回复


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

Baidu