3. Usage

Once you have RISCV-CTG installed, executing riscv_ctg --help should print the following on the terminal.

Usage: riscv_ctg [OPTIONS]

Options:
  --version                       Show the version and exit.
  -v, --verbose [info|error|debug]
                                  Set verbose level
  -d, --out-dir PATH              Output directory path
  -r, --randomize                 Randomize Outputs.
  -cf, --cgf PATH                 Path to the cgf file(s). Multiple allowed.
  -p, --procs INTEGER             Max number of processes to spawn
  -bi, --base-isa [rv32e|rv32i|rv64i]
                                  Base ISA string for the tests.
  --help                          Show this message and exit.

To use RISC-V Compatibility Test Generator in a project:

import riscv_ctg

3.1. Running the Test generator

In order to generate the tests for RV32I the following command is used.

$ mkdir tests/
$ riscv_ctg -v debug -d ./tests/ -r -cf ./sample_cgfs/dataset.cgf -cf ./sample_cgfs/rv32i.cgf -bi rv32i -p2

3.2. Suite Characteristics

3.2.1. Directory structure

The various .S files are the tests themselves.

.
├── Addi.S
├── Add.S
├── Andi.S
├── And.S
├── Auipc.S
├── Beq.S
├── Bge.S
├── Bgeu.S
├── Blt.S
├── Bltu.S
├── Bne.S
├── env                             # Contains the necessary environment files
│   ├── arch_test.h                 # Header file containing the macros used in tests
│   └── encoding.h                  # Header file containing varios encodings required
├── Jalr.S
├── Jal.S
├── Lb-align.S
├── Lbu-align.S
├── Lh-align.S
├── Lhu-align.S
├── Lui.S
├── Lw-align.S
├── Ori.S
├── Or.S
├── Sb-align.S
├── Sh-align.S
├── Slli.S
├── Sll.S
├── Slti.S
├── Sltiu.S
├── Slt.S
├── Sltu.S
├── Srai.S
├── Sra.S
├── Srli.S
├── Srl.S
├── Sub.S
├── Sw-align.S
├── Xori.S
└── Xor.S

3.2.2. Test Structure

All tests follow the test-spec format available here: Test Spec Format