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)
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
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>
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.