ShadowFI commands
Create projects
- create [options] <arguments>
- create:
Create a shadowfi project.
- options:
--project-dir<path>: Specifies the absolute path of the project: default: <shadowfi-root>/projects.--design-config<config-file>: Specifies a yaml file with the project configuration. For more details regarding the configuration parameters, please refer to the configuration options in section Configuration Details.- arguments:
--name <name-project>: Defines the name of the project.- examples:
create --name Projectv1create --name Projectv1 --project-dir /home/user/projectscreate --name Projectv1 --design-config /home/user/config/proj_config.yml
Load project
- load <arguments>
- load:
Loads a shadowfi project.
- arguments:
--project-dir <path-to-project>: Specifies the absolute path of the project.- examples:
load --project-dir /home/user/projects/Projectv1
Elaborate HDL
- elaborate <>
- elaborate:
Reads the HDL design and transforms it into a Hierarchical RTL netlist
- examples:
elaborate
SBTR place & routes
- pnr [options] <>
- pnr:
Places and routes the saboteur circuits in the desgn
- options:
--cmp-sel<opt>: Indicates the insertion mode of saboteurs: opts = [random, top, hierarchy]; default=randomrandom: random selection of components across the design hierarchy top: fatten the complete design and select the top component as fault insertion target hierarchy: explicit component selection provided by the user
--max-sel-cmp<num>: Maximum number of intrumented components, default: 4--user-cmp-sel<config yaml file>: A yaml file containing the selected target components for fault instrumentation, For more details regarding the configuration parameters, please refer to the configuration options in section Configuration Details.--fault-model<opt>: Indicates the fault model. opts = [S@, SET, SEU, MEU], default: S@S@: stuck-at fault model SET: Single Event Transient SEU: Single Event Upset MEU: Multibit Even Upsets
--fault-sampling<opt>: Indicates the fault insertion sampling. opts=[Full, Statistical]Full: inserts saboteurs in all nets of selected components Statistical: inserts saboteurs on a subset of nets using statitical samplig
- examples:
pnrpnr --cmp-sel randompnr --fault-model SEUpnr --fault-sampling Statistical
TestBench Setup
- tb_setup [options] <>
- tb_setup:
Testebench configuration and compile. This command can be used when the CUT is instantiated directly on the top testbench designs. For more complex design and simulation structures, please refer to the configuration options in section Configuration Details.
- options:
--tb-config<config-file>: configuration file in yaml format, please refer to the documentation to obtain further information regarding the condifuration details, please refer to the configuration options in section Configuration Details.--kwargs<key1=val key2=val ..>: custom configuration values in the form key:val, it support nested key-value pairs, e.g. a.b.c=val- examples:
tb_setup --tb-config <path-to-tb-config-file.yaml>tb_setup --kwargs testbench_config.external_tb_build=True
Fault Simulation Setup
- fsim_setup [options] <>
- fsim_setup:
Configures the simulation parameters. Be sure the simulation has been properly compiled and there is a valid verilator executable.
- options:
--fsim-config<config-file>: configuration file in yaml format, please refer to the documentation to obtain further information regarding the condifuration details.--kwargs<key1=val key2=val ..>: custom configuration values in the form key:val, it support nested key-value pairs, e.g. a.b.c=val--noset-run-scripts: This flag enables or disables the run scripts configuration, when used the user must manually copy the scripts to the project. For more details please refer to the configuration options in section Configuration Details.--run-script<path-to-run.sh>: run.sh script to be added to the project--sdc-check-script<path-to-sdc-check.sh>: sdc-check.sh script to be added to the project- examples:
fsim_setup --fsim-config <config-file>fsim_setup --kwargs sim_config.jobs=10 sim_config.sim_runtime=2000 --noset-run-scriptsfsim_setup --fsim-config <config-file> --run-script <path-to-run.sh> --sdc-check-script <path-to-sdc-check.sh>
Fault Simulation Execution
- fsim_exec [options] <>
- fsim_exec:
launch a fault injection campaing.
- options:
--hpc: enables distributed computing engines on HPC systems, for running this option it is necesary to create a paralell world first, please check the section Quick Start Guide.- examples:
fsim_execfsim_exec --hpc