Skip to content
STIMSMITH

architecturally unspecified behaviour avoidance

Concept

In OpenTitan's OTBN random instruction generator (`otbn-rig`), architecturally unspecified behaviour avoidance is a generation constraint: produced random programs are constructed so execution does not depend on unspecified architectural state such as the initial register file contents or uninitialised memories, although generated programs may still trigger errors.

First seen 5/31/2026
Last seen 6/1/2026
Evidence 2 chunks
Wiki v2

WIKI

Overview

Architecturally unspecified behaviour avoidance is a design constraint in otbn-rig's random program generation. The generated program is designed never to trigger architecturally unspecified behaviour. It may still trigger errors, but its execution will not depend on things like the initial contents of the register file or uninitialised memories.

How otbn-rig avoids it

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

2 connections
random program generation ← uses 1e
Random program generation applies architecturally unspecified behaviour avoidance.
otbn-rig ← uses 100% 1e
otbn-rig is designed to never trigger architecturally unspecified behaviour

CITATIONS

4 sources
4 citations — click to collapse
[1] `otbn-rig` generated programs are designed never to trigger architecturally unspecified behaviour and may still trigger errors, but their execution will not depend on the initial contents of the register file or uninitialised memories. Random Instruction Generator - OpenTitan Documentation
[2] `otbn-rig` generated programs are designed never to trigger architecturally unspecified behaviour and may still trigger errors, but their execution will not depend on the initial contents of the register file or uninitialised memories. OTBN Random Instruction Generator - OpenTitan
[3] `otbn-rig` includes a few words of randomly initialised data scattered around dmem so it can generate load instructions even near the start of execution. Random Instruction Generator - OpenTitan Documentation
[4] The `gen` command produces random programs, while the `asm` command is a deterministic translation step from JSON to assembly and linker-script output. Random Instruction Generator - OpenTitan Documentation