AutoSoC Benchmark Suite - an Open-source Automotive Benchmark

Quick Start

Run a Simulation

AutoSoC - Run a Simulation

1. Go to the Simulation folder

> cd <autosoc_folder>/Simulation

2. Configure the environment variables

> source tools/set_env_variables.csh

3. Use the Makefile to start the simulation

> make sim

*Pre Requisites:

  • Xcelium Simulator should be installed and the command xrun must be available on the terminal environment

  • libelf should be installed and listed in the environment variable ($LD_LIBRARY_PATH)


Makefile Options

AutoSoC - Makefile description

The Makefile can be executed with the following options:

  • Environment variables and target ${SIM_FOLDER} should be sourced in './tools/set_env_variable file'

'make elab': Elaborate design according with setup files inside of ${SIM_FOLDER}

'make sim': Execute batch simulation

  • Testbench configuration parameters should be set in $(SIM_FOLDER}/xrunPlusArgs.f

'make debug': Start simulation environment with GUI

'make good_sim': Good simulation (required for Fault Injection)

  • Strobes should be configured in file $(SIM_FOLDER}/strobes.list

'make fault_sim': Fault Injection simulation

  • Fault Injection campaign is controlled by $(SIM_FOLDER}//fault_inj_control.csh

'make clean' - Delete build directory

Add a new AutoSoC Configurations

1. Create a new AutoSoC configurations folder. Copy one of the existing folders to <new_config>.

> cp -r basicSafeConfig <new_config>

2. Edit the configuration files inside <new_config>

  • xrunElab.f: List of all Hardware files deployed for elaboration

  • xrunPlusArgs.f: Configurations for the AutoSoC Testbench. The available options are:

    • "+elf_load=<SW binary>": ELF file to be load into memory for Simulation.

    • "+clean_ram": Write zeros to RAM memories on the start of the Simulation.

    • "+jtag_vpi_enable": Enable connection of JTAG Debug tool (OpenOCD).

    • "+enable_jtag_vpi": Should be used together with +jtag_vpi_enable.

    • Safety Mechanisms Configuration (Hardware):

      • "+define+LOCKSTEP": Enable Lockstep SM (Redundancy of Main CPU with time diversity).

      • "+define+MEMECC": Enable ECC correction on main Memory.

      • "+define+PARITY": Enable BUS Parity (Parity check on data exchanges CPU <-> Memory).

    • Safety Mechanisms Configuration (Hardware/Software):

      • "+define+CHECKPOINT": Enable SW Control Flow Verification (Monitor bus for signatures from the SW tasks).

        • Checkpoint requires a compatible SW application. It expects a periodic signature in a specific memory address (Signatures, Memory Address and Timeouts are configurable).

        • Default configuration is compatible with the application '$SW_DIR/RTEMS/sample_apps/autosoc.exe'.

  • fault_inj_control.csh and fault_inj_dispatch.csh: Control scripts for Fault Injection campaigns. The scripts should be adapted for each simulation environment.

  • strobes.list: List of Strobes for Fault Injection Campaigns

  • faultTarget.spec: List of Fault Targets for Fault Injection Campaigns.

3. Edit the variable SIM_FOLDER inside the file 'tools/set_env_variables.csh' to point to the new folder <new_config>:

> setenv SIM_FOLDER <new_config>


Cadence Academic Network - AutoSoC Partner

The execution environment included in the AutoSoC is based on Cadence Xcelium Fault Simulator (XFS) .

Academic Partners can have access to academic Cadence Licenses via Cadence Academic Network.

Other tools can be integrated by modifying the Makefiles.