广告

如何验证复杂的RISC-V设计

时间:2020-08-18 作者:Zibi Zalewski 阅读:
随着RISC-V处理器开发渐趋成熟,以及SoC和微控制器中RISC-V内核使用量的不断增加,工程团队面临着新的验证挑战。为使RISC-V内核标准化,业界的验证工作均集中在ISA的合规性上。但现在问题似乎演变成,如何随系统的不断发展进行验证?
广告

随着RISC-V处理器开发渐趋成熟,以及SoC和微控制器中RISC-V内核使用量的不断增加,工程团队面临着新的验证挑战;这些挑战与RISC-V内核本身无关,而与基于RISC-V内核或围绕RISC-V内核的系统有关。可以想象,其验证过程与基于Arm处理器的验证一样,复杂且耗时。

截至目前,为使RISC-V内核标准化,业界的验证工作均集中在ISA的合规性上。但现在问题似乎演变成,如何随系统的不断发展进行验证?

显然,随着内核的增多以及现有外设和定制硬件模块的增多,验证难度也不断增大。

我们面临两个验证挑战。首先,确保内核正确且符合ISA;其次,使用内核测试系统。在这两种情况下,事务级硬件仿真都是最佳选择,尤其当仿真基于Accellera SCE-MI标准时,因为这样可以在不同平台和供应商之间复用。再结合自动设计分区和广泛的调试功能,就可以构成一个完整的验证平台。

当处理器内核渐趋强大并具有更多功能时,寄存器传输级(RTL)的模拟就显得力不从心了,同时它也不能在一个合理的时间内覆盖完整的测试范围。对于仿真,测试速度要高得多(在MHz级),再加上周期精度,更增加了测试的长度和复杂性(因为运行速度非常快)。

进行仿真时,内核自身可能会自动与RISC-V ISS黄金模型进行比较,以确认其精确性且满足ISA合规性要求。图1显示了测试中的RISC-V CPU。

图1: 测试中的RISC-V CPU。该测试通过仿真器完成,而RISC-V ISS是高级UVM测试平台的一部分。

模拟所使用的测试平台可以在仿真阶段复用,因此即使在模拟阶段,也还是有必要确保测试平台是“仿真就绪”的。这将使模拟器和仿真器之间的平滑切换成为可能,而无需开发新的测试平台。

而且,若需要在RISC-V中增加定制指令(如在设计中用于加速算法的指令),这种策略也会很有效。因为相比纯模拟环境,硬件仿真可以根据所开发的算法更快地对这些指令进行测试和基准测验。

一旦检查完处理器或CPU子系统,就可以继续验证整个系统。幸运的是,我们可以使用相同的技术来验证SoC的其它硬件模块、定制硬件和外设。所有这些都可以在仿真器中实现,并使用与模拟过程相同的通用验证方法(UVM)或SystemC测试平台进行验证。如图2所示。

图2:包括RISC-V内核在内的所有SoC模块都可以在仿真器中运行,并可以使用与模拟过程中相同的UVM或SystemC测试平台进行验证。

这种方法允许采用较长的测试序列(例如,UVM受约束的随机序列)来构建复杂的测试场景,并加速SoC架构基准测试的模拟,以优化硬件结构和组件。

需要注意的是,现今的SoC开发项目不仅需要开发硬件,而且还需要开发复杂的多层软件代码。这意味着软件和硬件工程团队需要协同工作,因此验证需求更加复杂,并且在软硬接口上面临巨大挑战。软件团队通常使用软件ISS或虚拟平台/虚拟机进行独立开发,在不依赖于新硬件交互的情况下这样是可以的。

当系统随外设和自定义模块的增加而变得复杂时,软件不仅要支持RISC-V及其周边环境(可以在软件中建模),而且必须通过提供操作系统驱动程序、API或高级应用程序来支持其余的硬件模块。

那么,在开发和测试整个项目时,如何确保这两方面协同工作并保持同步?

事务级仿真再次成为可选解决方案。采用硬件仿真器时,我们可以使用灵活的调试功能以更高的速度测试所有RTL模块,不仅如此,仿真器主机接口API(通常基于C / C ++)可以连接软件团队使用的虚拟平台,从而为项目的软件和硬件创建一个集成的验证环境,如图3所示。

图3:在虚拟平台中采用基于SCE-MI宏的仿真器API和TLM接口,以创建一个“协同仿真”环境。

现在,我们可以MHz的速度运行整个系统,从而将操作系统的启动时间大大缩短,比如从几小时缩短到几分钟,并且可以对处理器和硬件子系统进行并行调试。

混合协同仿真平台的优势在于,当设计的RTL代码比较成熟时,软件工程师不必迁移到完全不同的环境中去。他们的主要开发工具仍是相同的虚拟平台,而且由于有了协同仿真,这个平台现在代表着完整的SoC,包括定制硬件在内。这样,软件和硬件团队就可以对项目进行同时修订,并且无需互相等待就可以验证设计的正确性和性能。

您也许会问,为什么不直接采用FPGA原型呢?原因很简单,原型设计需要为所有系统模块准备好完整的RTL源代码并将其综合到FPGA,这需要花费大量时间,因此软件团队需要单独采用虚拟模型。

即使已准备好整个RTL设计,向所有软件开发人员提供原型硬件也可能成本高昂。因此,使用协同仿真方法不仅使我们能够验证整个系统,在项目开发周期的更早阶段发现潜在问题,而且还可以尽量降低验证工具的成本。

此外,由于仿真中使用了更加全面的硬件调试工具,因此可以轻松诊断RTL代码中的任何缺陷或错误(这是早期硬件-软件协同验证的另一个优势),而无需回溯至模拟阶段。一旦仿真完成,FPGA原型对于最终的高速测试无疑将非常有用。

责编:Amy Guan

本文为《电子工程专辑》2020年8月刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅  

本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 系统级芯片(SoC)的复杂设计选择:EDA和IP 在做系统级芯片(SoC)的设计规划时,需要考虑哪些主要因素?目前主流的SoC一般包括哪些功能模块或IP?有什么新的技术趋势值得关注?为SoC选择IP时主要基于什么标准或要求?如何实现差异化设计?当前SoC在设计验证方面遇到哪些挑战?有什么应对解决方案?AI在复杂的高性能SoC设计中能够发挥什么作用?未来设计趋势如何?
  • 地平线计划C轮融资总额超7亿美金,已完成C1轮融资 2020年12月22日,地平线公告已启动总额预计超过7亿美金的C轮融资,目前已完成由五源资本(原晨兴资本)、高瓴创投、今日资本联合领投的C1轮1.5亿美金融资,参与本轮融资的其他机构包括……
  • ICCAD 2020:本土EDA崛起,必须走巨头没走过的路 有人说EDA是一个神奇的行业,参与的公司不多,却凝聚了人类在电子工业领域最多的智慧结晶,被称作“芯片之母”、“芯片产业皇冠上的明珠”。此前人们普遍认为芯片是中国科技行业中最被卡脖子的一个环节,但在美国对中兴、华为的制裁中我们发现,一旦EDA工具被限制,整个芯片产业都可能停摆。
  • 2021年1月起,Mentor将更名为Siemens EDA 日前,西门子(Siemens)EDA IC-EDA执行副总裁Joe Sawicki在其一篇博客中透露,从2021年1月起,Mentor将正式更名为Siemens EDA(西门子EDA)。此次更名,将EDA软件、仿真、机械设计、制造、云、物联网和低代码技术带入到工业软件的统一旗帜下……
  • 系统级芯片(SoC)的复杂设计选择:片上网络(NoC) 什么是片上网络(NoC)?为什么系统级芯片(SoC)设计需要NoC?片上网络(NoC)相比传统的总线接口通信有什么优点和缺点?高性能的SoC设计在性能、功耗和尺寸方面面临哪些挑战? 5G、AI和自动驾驶等新兴应用对SoC设计提出了什么特别要求?
  • 第三季全球前十大IC设计公司营收排名出炉 根据TrendForce集邦咨询旗下拓墣产业研究院最新统计,2020年第三季全球前十大IC设计业者营收排名出炉。受惠于苹果发表新机iPhone12系列,且广受消费市场青睐,使高通(Qualcomm)5G Modem与无线射频芯片需求大幅上升,第三季营收再度超越博通,跃升全球第一。
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了