中文 英语
德赢vwin
观点

内部人士对验证定制RISC-V处理器核心的看法

RISC-V验证生态系统如何支持自定义处理器设计的灵活性。

人气

由Shubhodeep Roy Choudhury,Valtrix Systems和Lee Moore,Imperas Software
支持图片由比尔麦普斯登(Seagate Technology)提供礼貌

本文始于2020年12月2020日的RISC-V峰会的谈话中,该验证工程师总体验证工程师希捷技术,给予他团队面临核实的挑战和经验两个定制的RISC-V处理器核心。虽然技术会议的技术演示可能并不完全出乎意料,但独特的部分是坦率的致谢,没有任何炒作或粉丝的团队在今天的行业中解决了一些最具挑战性的核查问题 - 如何经验丰富的SoC团队可以验证自定义RISC-V处理器。本文捕获了演示文稿的一些亮点,并包括来自工具供应商Valtrix和ImperAs的额外信息。

问题
挑战是提高HDD(硬盘驱动器)伺服控制器的性能,其中包含一个新的嵌入式处理器核心,超出可用IP提供商的主流产品。HDD伺服控制器的关键要求可以概括为:数学密集型应用程序工作负载,实时计算,以及固定的时间边界内。虽然某些方面可能与其他常规嵌入式应用程序类似,但很明显,当前处理器IP系列路线图不足以满足需求。结果,伺服处理器性能即将最大化,从而成为顶级特征和HDD性能的定义限制。

解决方案
解决方案在新的高性能核心(HPC)周围开发,具有以下高级技术细节摘要:RISC-V SPEC参考[1] RV32IMFCN;机器和用户模式;投机性超出管道;4宽的提取和派遣;8范围的问题(峰值),高性能指令获取,包括分支预测;返回地址堆栈;和循环缓冲区。此外,双端口装载单元;大L1紧密集成的记忆;多路L1缓存; decoupled high-performance FPU; PLIC (platform-level interrupt controller); native ECC support; and RISC-V debug and trace support. In short, an advanced processor design targeted at the key requirements for the HDD servo controller.

作为第一个核心的伴侣,项目范围扩大到也共同开发一个区域优化的总体控制器核心作为并行项目。区域优化核心技术细节的亮点包括:RISC-V SPEC参考[1] RV32 / 64IMCBN;机器;导师;用户模式,SV39 / SV32虚拟内存支持;5阶段,单一问题,有序管道;CLIC(核心局部中断控制器);增强的PMP;专注于可选的安全功能;本机ECC支持; and RISC-V debug. Clearly this companion project achieved many efficiencies and advantages overall, but also expanded the workload and pressure on the verification team.

验证问题
这些基于工程规范的解决方案也提出了一个新的问题。作为所有特性和配置选项的结果,验证任务将是重要的。为了满足跨多个设计的一系列需求和用例需求,配置选项包括:核心架构(32/64位,支持扩展)和核心架构的配置(机器/管理者/用户模式,支持的寻址,CSR位,实现等)。这导致了大量的排列,这给验证和验证工程师带来了一个非常严重的问题。

“我们怎么可能测试所有的配置/模式?”比尔·麦克斯帕登在他热情的开场白中问道。他接着解释说:“经验丰富的DV工程师至少知道一种解决这个问题的方法:受限随机验证环境(CRVEs)。”

因此,通过验证计划和围绕RISC-V处理器设计的DV挑战的一些深刻见解,为一个有趣的指南奠定了基础。

该试验台
测试台是测试计划的中心。这是基于验证IP (VIP)、指令退休监视器和UltraSoC(现在是西门子EDA的一部分)指令跟踪解码器。fabric VIP和调试端口VIP被设置为在执行代码时向DUT(被测设备)注入刺激,以便可以观察活动——例如程序缓冲区的执行、单步执行、寄存器读取、CSR读取、抽象调试命令、中断——直接与核心的执行交互,并测试它是否正确响应。参见图1中的框图。


图1:试验台件。

带有随机指令序列和记分板的测试台
为了在测试台框架内锻炼核心,Seagate团队开发了一种软件流程,如图2所示。通过Valtrix系统提供指令发生器[2],它会产生数万个文件的测试。这些在RTL仿真上运行,因此这将基于指令退休监视器和Ultroc跟踪输出产生两个日志文件。这允许将两种选项与在ImperAs RISC-V Golden参考模型上运行的相同的输入刺激进行比较[3],这是团队的转移模型,以便任何“GO / NO-GO”的磁带决策。此跟踪比较方法在检查指令序列时支持记分速度,CSR在异常边界和过滤陷阱处理程序执行时。


图2:随机指令序列和记分绘制。

试验计划的亮点
对于每个核心,希捷计划利用许多类似的组件和结构:

  1. 使用织物VIP构建测试台,加上调试和跟踪VIP
  2. 使用VALTRIX STING随机指令序列生成作为公共来源
  3. 注入随机刺激(如调试端口上的调试抽象命令、程序缓冲区执行、单步执行、中断)
  4. 比较在核心RTL和架构IMACTERAS GUNDER参考模型上运行的相同的指令序列,以直接比较正确的行为

该团队遵循此方法,并使用大量的模拟周期流,每晚运行数千个数万个测试,然后仔细审查和分析结果日志文件比较报告。

RISC-V验证生态系统
跨越EDA和工具生态系统,可以帮助验证工作提供许多选项。这些工具包括:

用于该项目的受约束随机指令序列发生器是由VALTRIX系统提供的。刺痛被约束以允许测试聚焦围绕特定序列。测试序列可以基于代码片段或Valtrix提供的片段,新代码段添加到地址覆盖范围。这是覆盖驱动验证的经典示例,这是衡量完成处理器核心DV任务的进展的极其有用的方法。

Golden RISC-V参考模型用作“GO / No-Go”模型,以确定具有和差异的RTL正确行为,错误的行为,错误或问题与设计,测试,规格或测试台。

Valtrix指令序列生成器和ImperAs Golden Risc-V参考模型的组合成为支持验证任务的基本伙伴关系。首先将意外情况报告给Valtrix,该valtrix将解决有限因素的解决程序,包括在多个时区的定期更新和良好的响应时间进行双周度进展。

“这种关系运作得非常好,”麦克斯帕登说。“STING发生器提供了出色的功能覆盖,我们用它在我们的测试平台环境中进行测量。”

“AlipAs Golden Risc-V参考模式帮助我们在核心中找到了许多错误,”他说。“然而,RISC-V架构测试不会产生任何错误,这是预期的,因为架构测试是完全验证的子集。”

结果
“我们在硅抵达的几周内搭配伺服固件,”McSpadden指出。“实际应用软件运行在实际硬件上进行实际磁盘访问。摘要“按预期的工作”最终归结为我们专门团队的所有努力以及RISC-V验证生态系统的Valtrix,ImperAs和其他成员的支持。“

结论
RISC-V的开放标准ISA允许所有设计团队探索接近定制处理器设计方面的显着灵活性。从最初的概念和特征权衡讨论,考虑和对处理器验证的影响应包括在内。越来越多的RISC-V验证生态系统 - 包括VALTRIX,AMERAS和许多其他人可以帮助并支持RISC-V规范的全部灵活性。

参考文献
[1]请参阅RISC-V规格https://riscv.org/technical/specifications/
[2] Valtrix系统https://www.valtrix.in.
[3] ImperAs软件https://www.imperas.com.
[4] RISCVOVPSIMPLUS,免费RISC-V参考模型可用https://www.ovpworld.org/riscvovpsimplus/

Lee Moore是RISC-V处理器模型和仿真工具的铅工程师。在AmperAs之前,Moore曾担任EDA供应商的高级咨询工程师,如共同设计自动化和AMIT,以及ASIC供应商NEC电子产品。摩尔也是私人飞行员,最近开发了Pilotaware,一个低成本的空中交通意识装置,帮助飞机看到并被看到。



留下一个回复


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