4. Config.ini Spec

This chapter will discuss the syntax and structure of the config.ini file used by river_core. A sample config-file is present in the examples directory of the Git Repository.


RiVer Core can automatically detect the configuration file present in the current directory.

4.1. General Configuration Options

Table 4.1 General Configuration Options




The workdir where all of the files, reports and logs are generated.


Name of Target or the Device under Test(DUT) that is to be verified.


Name of the the golden reference model to be used for verification.


The test program generator to be used to generate tests.


Absolute path to the generator plugin.


Absolute path to the target/DUT plugin.


Absolute path to the reference plugin.


ISA string supported by the target. This is supplied to all plugins for any due processing/configuration that is required.


[Boolean] Opens the final report automatically in your default browser


[Boolean] This feature can be used by DUT and Ref plugins to remove unwanted artifacts (like dumps, disassembly files, etc) after the tests have been run


Enable Coverage mode. There are two boolean options available under this: Code and Functional


The standard delimiter for options having multiple values is , (comma) .

4.2. Plugin Specific Options

Apart from the above general parameters, the user can also specify some of the plugin specific parameters in the same config.ini file. A typical syntax to do this would be:

config-1: value
config-2: value-2

param-1: val1
param-2: val2

The interpretation and side-effects of these plugin specific parameters is completely left to the plugin. RiVer Core simply forwards them to the respective plugin via the hooks.


A plugins parameters cannot be sent to another plugin. However each plugin will receive its parameters and also the general configuration parameters

Some of the recommended configuration options for generators would be:

Table 4.2 Recommended Configuration options




Number of jobs to use while generating the tests


This option is to select tests.


A seed for generating the programs (Can be random)


The number of times the test needs to be run

4.3. Sample Config INI

# ',' is the delimiter
# Main directory for all files generated by river_core
work_dir = test

# Target is the DuT plugin
target = chromite_verilator

# Reference is the reference model plugin
reference = modspike

# Generator options for the compiler
# Should ideally be aapg, microtesk, generic and if something else comes along
generator = aapg
# ISA for the tests
isa = rv64imafdc

# Set paths for each plugin
path_to_target = /scratch/git-repo/github/incoresemi/river_core_plugins/dut_plugins
path_to_ref = /scratch/git-repo/github/incoresemi/river_core_plugins/reference_plugins
path_to_suite = /scratch/git-repo/github/incoresemi/river_core_plugins/generator_plugins

# To open the report automatically in the browser
open_browser = True

# Enable Space Saver
space_saver = True

# Coverage Options
# Enable via True/False
code = False
functional = False

seed = random
count = 1
filter =
config_yaml = /scratch/git-repo/github/incoresemi/river_core_plugins/generator_plugins/testfloat_plugin/testfloat_gen_config.yaml

# Number of jobs to use to generate the tests
jobs = 8
# Filter for your tests
filter = rv64imafdc_hazards_s
seed = random
count = 2
# some_specific_yaml
config_yaml = /scratch/git-repo/incoresemi/river-framework/core-verification/river_core_plugins/generator_plugins/aapg_plugin/aapg_gen_config.yaml

jobs = 1
filter = uentry_fmv_x_d or uentry_fcvt_s_lu
seed = random
count = 1

jobs = 8
filter =
count = 1
# src dir: Verilog Dir, BSC Path, Wrapper path
src_dir = /scratch/git-repo/incoresemi/core-generators/chromite/build/hw/verilog/,/software/open-bsc/lib/Verilog,/scratch/git-repo/incoresemi/core-generators/chromite/bsvwrappers/common_lib
# Top Module for simulation
top_module = mkTbSoc

# Number of jobs to use to generate the tests
jobs = 1
filter =
# some_specific_yaml
count = 1

jobs = 8
count = 1
seed = random