TT Grendel SMC Board

Overview

The tt_grendel_smc “board” is a simulation target intended to be run within simulation/emulation environments. It represents a 4 core instance of the Berkeley RISC-V Rocket core, with tenstorrent specific peripherals. This core is used across several Tenstorrent chips. For instructions on running within specific simulation environments, see the Executing Applications section.

Hardware

  • Single instance of the RISC-V Rocket Chip. This is a simple RISC-V core with a 5-stage pipeline.

  • 64 KB of SRAM.

  • SiFive CLINT interrupt controller

  • SiFive E300 watchdog timer

  • SiFive PLIC interrupt controller

  • 4x Designware APB UART

  • 6x Cadence I3C controllers

System Clock

The system clock is configured to run at 1.6GHz. The CLINT timer ticks at 800KHz, yielding a rate of 800,000 ticks per second.

Executing Applications

Applications can be built as usual (see Building an Application for more details). See below for instructions

Running Within Mimir Emulation Environment

To execute within the Mimir emulation environment, first follow the instructions to setup the environment as described here: https://yyz-tensix-gitlab.local.tenstorrent.com/soc/mimir_soc/-/tree/main/emu?ref_type=heads

Next, upload the build emulation binary stored in <build-dir>/zephyr/zephyr.bin to the emulation system, using SCP or a similar tool.

Then, run the following command to start the emulation, from the <emu/tests> directory on a Zebu host: .. code-block:: console

./run-smc-test.sh <path_to_zephyr_bin> SMC_BINARY=<path_to_zephyr_bin> zrun –location U0.M0 – -svk test_smc_binary

For example, you could run the hello world application as follows: .. code-block:: console

west build -p always -b tt_grendel_smc ../zephyr/samples/hello_world scp build/zephyr/zephyr.bin user@emu-host:zephyr.bin ssh user@emu-host cd <mimir_soc_directory>/emu/tests # Setup env source /tools_soc/tt/bin/bashrc source ../bin/setup_env.sh # Run emulation ./run-smc-test.sh ~/zephyr.bin

The zrun process should include output like the following:

2025-06-23 16:31:00,759 INFO     pytest_plugin.dut                  Sim time = 204,008.22 ns, Real time = 0.60 s, Ratio = 337,660.34 ns/s
CONSOLE: *** Booting Zephyr OS build v4.1.0-rc2 ***
CONSOLE: Hello World!


TEST                       STATUS  SIM TIME (ns)  REAL TIME (s)  RATIO (ns/s)
-----------------------------------------------------------------------------
test_smc::test_smc_binary  PASSED     204,008.22           0.60    337,660.34
-----------------------------------------------------------------------------
TOTAL                                 204,008.22           0.60    337,660.34

Running Within SMC Simulation Environment

To run a built application within the SMC simulation environment, first build the application as usual (see Building an Application for more details).

Then, you can clone and setup SMC simulation environment repository: .. code-block:: console

git clone git@yyz-gitlab.local.tenstorrent.com:tensix/tensix-hw/tt_smc.git cd tt_smc source /tools_soc/tt/bin/bashrc source bin/setup_env.sh

Copy the built Zephyr bin file to the tt_smc directory.

cp <build-dir>/zephyr/zephyr.bin \
    tt_smc/firmware/zephyr/grendel_smc_hello_world_smp_zephyr/grendel_smc_hello_world_smp_zephyr.bin

Finally, run the simulation using the following command:

cd tt_smc
ttem yaml/regression_smc_chiplet.yaml smc_zephyr_hello_world_smp_test \
        --stack flist,cgen,compile_smc_chiplet,sim --wave --no-lsf --seed 1 --c compile_smc_chiplet

Running Within Renode Co-Simulation

The renode co-simulation environment should be considered experimental for development on the tt_grendel_smc board. The SMC simulation environment should be treated as the “ground truth” for simulation of this board.

To run within the Renode co-simulation environment, a prebuilt co-simulation package is available. The package is stored at the following location on internal SOC systems. Execution should be performed on soc-l* hosts.

/proj_syseng/user_dev/ddegrasse/public/grendel-renode-cosim-2025-12-11

To run co-simulation, the following scripts are provided in the package:

  • start-renode.sh: Script to start renode with a single argument, the path to the ELF binary to load.

  • start-renode-sip.sh: Script to start renode in SIP mode. Takes two arguments,

    the path to the ELF to load on the primary SMC core, and the path to the ELF to load on the remote core.

The Co-Simulation environment supports both single core and SIP mode execution. In single core execution, a single SMC is simulated. In SIP mode, two SMCs are simulated, with their peripherals interconnected.

For details on the specific peripherals present in the simulation, see the release-notes.md file included in the package.

Co-Simulation can be run as follows:

west build -p always -b tt_grendel_smc app/hello_world
/proj_syseng/user_dev/ddegrasse/public/grendel-renode-cosim-2025-12-11/start-renode.sh <build-dir>/zephyr/zephyr.elf
[INFO] Including script(s): /tmp/renode_cmds.S9DMFL
[INFO] sysbus: Loading block of 85880 bytes length at 0xC0060000.
[INFO] sysbus: Loading block of 1408 bytes length at 0xC0074F78.
[INFO] hart0: Setting PC value to 0xC0060000.
[INFO] hart1: Setting PC value to 0xC0060000.
[INFO] hart2: Setting PC value to 0xC0060000.
[INFO] hart3: Setting PC value to 0xC0060000.
(tt-smc) start
[INFO] tt-smc: Machine started.
[INFO] [no-name]: CONSOLE: *** Booting Zephyr OS build v4.1.0-rc2 ***
[INFO] [no-name]: CONSOLE: Hello World!
(tt-smc) quit
Renode is quitting
[INFO] tt-smc: Machine paused.
Renode connection closed
Simulation PASSED
$finish called from file "/proj_syseng/user_dev/ddegrasse/grendel/tt_smc/tb_uvm/sv/smc_renode_top.sv", line 445.
$finish at simulation time 0.876000800s
           V C S   S i m u l a t i o n   R e p o r t
Time: 876000800000000 fs
CPU Time:     65.130 seconds;       Data structure size:  25.9Mb
Fri Dec 12 14:12:03 2025
[INFO] tt-smc: Disposed.