| # 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 |
| ``` |
| |