Riscv 指令集和架构的合规测试

在这里插入图片描述

为什么要进行RISC-V core的compliance test

RISC-V core的compliance test就是确保RISC-V core的设计符合RISC-V的标准。但要注意,RISC-V compliance test不是RTL的verification,它关注的点在指令集而不是RTL的功能是否正确。
因为RISC-V属于开源指令集架构且变得越来越流行,现在全球几十个国家都在基于RISC-V做RISC-V core的开发,所以需要有compliance test来确保不同国家或者不同公司设计的RISC-V core都符合RISC-V的标准。

如果不同的RISC-V core "non-compliance"会发生什么情况?

会导致RISC-V生态的碎片化,通俗来讲就是不同的公司设计的RISC-V core很难从RISC-V生态中受益,像它们很难或者根本不能使用通用的GCC,LLVM,GDB等软件工具,而且每家公司开发的系统和软件也几乎只能在自家的core上运行,这对RISC-V生态的建设来讲是一场灾难。

两种不同的合规测试

riscv-tests riscv-arch-test
riscv-tests 和 riscv-arch-test 是两个针对 RISC-V 架构的测试工具,它们在功能和定位上有一些区别。

  1. riscv-tests:
  • 功能:riscv-tests 是一个用于测试 RISC-V 指令集的工具集。它包含了一系列的汇编和 C 语言编写的测试程序,用于验证处理器对 RISC-V 指令集的支持是否正确。
  • 目的:主要用于测试指令集的正确性,覆盖了整数指令、浮点指令、原子操作、异常处理等方面。
  • 测试方式:riscv-tests 的测试主要是针对指令级别的,通过执行一系列的测试程序来验证处理器是否正确支持相应的指令集功能。
  • 实现语言:主要使用汇编语言和 C 语言编写。
  1. riscv-arch-test:
  • 功能:riscv-arch-test 是一个用于测试 RISC-V 架构兼容性的工具。它不仅包含了对指令集的测试,还包括了对架构规范的测试,如对特权级别切换、内存访问模型等方面的测试。
  • 目的:主要用于测试处理器对 RISC-V 架构规范的支持是否正确,涵盖了架构的各个方面。
  • 测试方式:riscv-arch-test 的测试更全面,不仅仅是指令级别的测试,还包括对特权级别、内存模型、异常处理等方面的测试。
  • 实现语言:riscv-arch-test 的测试框架一般使用 Python 编写,而测试用例可以使用汇编语言、C 语言等。
    总的来说,riscv-tests 更侧重于测试指令级别的正确性,而 riscv-arch-test 则更侧重于测试处理器对整个 RISC-V 架构规范的支持和兼容性。通常,在开发和验证 RISC-V 处理器时,这两个测试工具会一起使用,以确保处理器在指令级别和架构级别都能正确地运行。

架构测试套件的意图

RISC-V架构测试是一组不断发展的测试,旨在帮助确保为给定的RISC-V配置文件/规范编写的软件将在符合该配置文件的所有实现上运行。
这些测试还有助于确保实现者正确理解和实现规范。
RISC-V架构测试套件是一个最小的过滤器。通过测试并获得RISC-V International批准的许可与设计相关的RISC-V商标的先决条件。通过RISC-V架构测试并不意味着设计符合RISC-V架构。这些只是一组基本的测试,检查规范的重要方面,而不关注细节。
RISC-V架构测试不能替代严格的设计验证。
架构测试提供给用户的结果是保证规范已被正确解释,并且被测实现 (DUT) 可以声明为符合 RISC-V 架构测试。

合规测试和验证的关系

由于 RISC-V 是一个开放的 ISA,因此一致性测试对于确认基本操作是否符合规范至关重要。虽然这是软件社区和工具/操作系统生态系统的关键要求,但合规性并不等同于验证。合规性要求是基本结构和一些基本行为在允许的规范功能范围内;它不会详尽地测试处理器的所有功能方面——它确认 RTL 实现者已阅读并理解 ISA 规范。根据定义,处理器是一种具有动态中断和多种操作模式和权限级别的复杂的状态机,这些状态机呈现出许多未包含在合规测试范围中的场景,因此不应被视为等同于验证测试套件。合规性测试只是完整 DV 计划的一个方面。
对于 RISC-V 合规测试中包含的这些测试程序,其做法都是采用 Signature 检测验证法,即测试程序在运行过程中会向内存中写入某些标记。在程序运行结束后, 再将内存中的这些数据读取出来,并与标准结果做比对。这个方法不对处理器运行 的中间状态做监测,可以看作是一种黑盒验证法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值