我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1070|回复: 1

[零组件/半导体] 如何验证复杂的RISC-V设计

[复制链接]
  • TA的每日心情

    2024-9-29 10:35
  • 签到天数: 68 天

    [LV.6]常住居民II

    1万

    主题

    8193

    回帖

    5万

    积分

    三级逆天

    积分
    53625

    终身成就奖特殊贡献奖原创先锋奖金点子奖优秀斑竹奖宣传大使奖

    发表于 2020-8-18 09:08:02 | 显示全部楼层 |阅读模式
    随着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原型对于最终的高速测试无疑将非常有用。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-9-27 09:10
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    4

    主题

    2235

    回帖

    1760

    积分

    二级逆天

    积分
    1760

    终身成就奖特殊贡献奖优秀斑竹奖

    QQ
    发表于 2020-8-18 09:11:23 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表