Renode - documentation
Introduction
Installing Renode
Using Renode
Running your first demo
Supported boards
Supported peripherals
Troubleshooting
Testing with Renode
Basic usage
Working with machines
Describing platforms
Monitor and script syntax
Basic execution control
Using the logger
State saving and loading
Sensors and virtual environment
Metrics analyzer
Running Renode in different modes
Using Python in Renode
Debugging
Debugging with GDB
Networking
Setting up a wired network
Setting up a wireless network
Connecting to the host network
Inspecting the traffic with Wireshark
Machine to machine connections
Host integration
UART integration
Arduino IDE/CLI integration
Sharing files between host and simulated platform
Advanced topics
Co-simulating with Verilator
Building Renode from source
Platform description format
Execution tracing in Renode
Time framework
Peripheral modeling guide
Tutorials
Microsemi Mi-V example
Testing Zephyr PTP support
Renode, Fomu and EtherBone bridge example
USB/IP support
Co-simulating your custom HDL
Bluetooth Low Energy simulation in Renode
v latest
Renode - documentation
Docs
»
Renode - documentation
Edit on GitHub
Renode - documentation
¶
Introduction
Installing Renode
Using Renode
Running and quitting Renode
Monitor (Renode CLI)
Basic interactive workflow
.resc scripts
Configuring the user interface
Running your first demo
Supported boards
Supported peripherals
Troubleshooting
Testing with Renode
Renode’s testing capabilities
Running the robot test script
Creating the test file
Advanced usage
Basic usage
Working with machines
Creating machines
Switching between machines
Loading platforms
Accessing and manipulating peripherals
Loading binaries
Clearing the emulation
Describing platforms
Defining peripherals
Connecting peripherals
Including files
Monitor and script syntax
Using built-in commands
Accessing emulation objects
Accessing attributes of an object
Supported data types
Monitor variable types
File paths
Renode Script syntax
Basic execution control
Starting and pausing the execution
Executing instruction-by-instruction
Blocking and non-blocking stepping
Inspecting the current location
Using the logger
Logging level
Logging to file
Logging access to peripherals
Hushing excessive unhandled access logs
State saving and loading
State saving in tests
Sensors and virtual environment
Controlling individual sensors
Controlling sensors globally
Metrics analyzer
Profiling
Visualizing
Running Renode in different modes
Telnet mode
Headless mode
Console mode
UART interactions in the Monitor
Using Python in Renode
Why use Python in Renode?
Direct Python execution in the Monitor
Providing Python scripts from the Monitor
Creating Monitor commands in Python
Python peripherals in a platform description
Python hooks in Renode
RISC-V extensions
Debugging
Debugging with GDB
Connecting to GDB
Starting emulation
Complex scenarios
Networking
Setting up a wired network
Creating a switch
Connecting interfaces
Disconnecting interfaces
Starting the interface
Controlling the traffic
Setting up a wireless network
Creating a wireless medium
Connecting interfaces
Disconnecting interfaces
Positioning the nodes
Controlling the traffic
Connecting to the host network
Regarding time flow
Opening a TAP interface
Using TAP interface on Windows
Connecting TAP interface switch
Starting the interface
Transferring files from host
Inspecting the traffic with Wireshark
Logging the whole traffic
Observing a specific interface
Machine to machine connections
Symmetrical connections
Asymmetrical connections
Modeling the timing of the events
Host integration
UART integration
UART pty terminal
Socket terminal
Arduino IDE/CLI integration
Installing TensorFlow examples
Configuring Renode
Loading from Arduino IDE
Loading from Arduino CLI
Starting the simulation
Sharing files between host and simulated platform
Sharing files using TFTP
Sharing files using Virtio
Advanced topics
Co-simulating with Verilator
Integration layer
Supported buses
Using pre-compiled HDL models
Building your own verilated peripheral models
Building Renode from source
Prerequisites
Downloading the source code
Building Renode
Creating packages
Platform description format
Indentation
Comments
Basic structure
Depending on other files
Values
Registration info
Attributes
Inline objects
Execution tracing in Renode
Logging executed function names
Logging peripheral accesses
Execution tracing
Execution metrics
Guest application profiling
Opcode counting
Time framework
Time and performance units
Time sources and sinks
Synchronization
Time domain
Configuration and monitoring
CPU pausing vs. halting
Peripheral modeling guide
How does access to the system bus work?
What if there is no peripheral mapped at given offset?
What happens when the peripheral does not implement the given access width?
Writing a peripheral model in C#
Register modeling guidelines
Bus peripheral size
Testing guidelines
Example peripherals
Tutorials
Microsemi Mi-V example
Installation
Starting Renode
Scripts
Loading our setup
Simple commands
Debugging and inspection
SoftConsole integration
Testing Zephyr PTP support
Prerequisites
The test suite
Running the test
Renode, Fomu and EtherBone bridge example
System architecture
Prerequisites
Verifying the device
Loading the bitstream (optional)
Running the demo
USB/IP support
USB/IP protocol
Creating a USB/IP server
Exporting devices
Attaching exported device to host
Real life scenario: Foboot
Co-simulating your custom HDL
Creating a verilated peripheral
Building a verilated peripheral
Running a verilated peripheral
Using Renode Verilator sample peripherals
Performance of the simulation
Verilator Trace
Core-v-mcu “Hello World” example with verilated UART
Bluetooth Low Energy simulation in Renode
Running a precompiled demo
Building your own Zephyr samples
Looking into the script
Packet interception hooks with BLE
Read the Docs
v: latest
Versions
latest
Downloads
html
On Read the Docs
Project Home
Builds
Free document hosting provided by
Read the Docs
.