Full System Instruction Set Simulation

And instruction set simulation (ISS) is a high-level simulation intended to capture the behavior of the full system. It is useful for testing software and ideas before running a complete cycle-accurate simulator which can have low host performance and before actual hardware is available for testing. Since it can exist before hardware is implemented in an RTL it also allows hardware/software co-development, taking what can be a serial process into a parallel workflow.

Shodan ISS Environment

Shodan ISS is developed in Renode. Renode provides the ability to simulate a full system including custom peripherals and a heterogenous core configuration as is present in the Shodan SoC design.

Simulating the Secure Core

Before beginning a simulation make sure to setup your workstation environment as described in the Getting Started document.

The scripts set up an alias to launch renode:

renode

This will launch the renode console. To launch a simulation of the shodan secure core run the following command in the Renode console:

i @sim/config/shodan_secure.resc

Execute the simualtion with that following command:

start

It is possible to debug the running program with the following command at the console:

riscv64-unknown-elf-gdb --command=sim/config/gdbinit out/opentitan/build-bin/sw/device/boot_rom/boot_rom_sim_verilator.elf