3 Simulated Machines 5 Miscellaneous Notes
RISC-V* Simple Board Target Guide  / 

4 Supported Components

The following sections list components that are supported for the RISC-V architecture. There also exist other components in Simics, such as various PCI devices, that may work for RISC-V but that have not been tested.

The default machines are constructed from components in the -system.include files in [simics]/targets/risc-v-simple/. See the Configuration and Checkpointing chapter in the Simics User's Guide for information on how to define your own machine, or make modifications to an existing machine.

4.1 RISC-V* Simple System Components

risc_v_simple_comp

Description
RISC-V Simple Board Component
Commands

create-risc-v-simple-comp ["name"] ["core_class"] ["disk0_image"] [disk0_size] ["disk1_image"] [disk1_size] ["disk2_image"] [disk2_size] [entropy_seed] [freq_mhz] ["mac_address"] [memory_megs] [num_cores] [timebase_freq_mhz]

new-risc-v-simple-comp ["name"] ["core_class"] ["disk0_image"] [disk0_size] ["disk1_image"] [disk1_size] ["disk2_image"] [disk2_size] [entropy_seed] [freq_mhz] ["mac_address"] [memory_megs] [num_cores] [timebase_freq_mhz]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
core_class
Classname of primary core, default is riscv-rv64
cpu_list
disk0_image
disk0 image file.
disk0_size
disk0 size, used if no disk image is provided. If set to zero no disk will be created.
disk1_image
disk1 image file.
disk1_size
disk1 size, used if no disk image is provided. If set to zero no disk will be created.
disk2_image
disk2 image file.
disk2_size
disk2 size, used if no disk image is provided. If set to zero no disk will be created.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
entropy_seed
Seed for virtio entropy device.
freq_mhz
Frequency in MHz of each core, default is 100 MHz
instantiated
Set to TRUE if the component has been instantiated.
mac_address
The MAC address of the virtual Ethernet card.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
memory_megs
Size in MB of RAM memory, default is 2048
num_cores
Number cores, default is 4
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
timebase_freq_mhz
Frequency in MHz of the timebase, i.e. 'mtime', default is 1MHz
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level

Connectors
NameTypeDirection
ethethernet-linkdown
serial0serialdown

4.2 Standard Components

ethernet_cable

Description
Ethernet cable: this component represents a two-points Ethernet cable, allowing two devices to connect to each other.
Commands

create-ethernet-cable ["name"] ["global_id"] [goal_latency] [immediate_delivery]

new-ethernet-cable ["name"] ["global_id"] [goal_latency] [immediate_delivery]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
connector_count
Total number of occupied connectors
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
global_id
Global identifier for use in distributed simulation or NIL if the link is not distributed.
goal_latency
Goal latency in seconds for this link. See also the set-min-latency command.
immediate_delivery
Immediate delivery instead of using the specified latency. Implies nondeterminism for multi cell messaging.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
device0ethernet-linkany

ethernet_hub

Description
Ethernet hub: this component represents a simple broadcasting Ethernet link allowing any number of devices to connect.
Commands

create-ethernet-hub ["name"] ["global_id"] [goal_latency] [immediate_delivery]

new-ethernet-hub ["name"] ["global_id"] [goal_latency] [immediate_delivery]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
global_id
Global identifier for use in distributed simulation or NIL if the link is not distributed.
goal_latency
Goal latency in seconds for this link. See also the set-min-latency command.
immediate_delivery
Immediate delivery instead of using the specified latency. Implies nondeterminism for multi cell messaging.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
device0ethernet-linkany

ethernet_switch

Description
Ethernet switch: this component represents a switched Ethernet network, allowing any number of devices to connect and optimizing the packet routing according to what is learned about the MAC addresses talking on the link.
Commands

create-ethernet-switch ["name"] ["global_id"] [goal_latency] [immediate_delivery]

new-ethernet-switch ["name"] ["global_id"] [goal_latency] [immediate_delivery]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
global_id
Global identifier for use in distributed simulation or NIL if the link is not distributed.
goal_latency
Goal latency in seconds for this link. See also the set-min-latency command.
immediate_delivery
Immediate delivery instead of using the specified latency. Implies nondeterminism for multi cell messaging.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
device0ethernet-linkany

ethernet_vlan_switch

Description
Ethernet VLAN switch: this component represents a switched Ethernet network with VLAN support. Any number of devices is allowed to connect to various ports of the switch. Each port can be configured with its own VLAN information, in order to create sub-networks in the switch.
Commands

create-ethernet-vlan-switch ["name"] ["global_id"] [goal_latency] [immediate_delivery]

new-ethernet-vlan-switch ["name"] ["global_id"] [goal_latency] [immediate_delivery]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
global_id
Global identifier for use in distributed simulation or NIL if the link is not distributed.
goal_latency
Goal latency in seconds for this link. See also the set-min-latency command.
immediate_delivery
Immediate delivery instead of using the specified latency. Implies nondeterminism for multi cell messaging.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
trunk_dev0ethernet-linkany

std-service-node

Description
The "std-service-node" component represents a network service node that can be connected to Ethernet links to provide services such as DNS, DHCP/BOOTP, RARP and TFTP. A service node component does not have any connectors by default. Instead, connectors have to be added using the <std-service-node>.add-connector command.
Commands

create-std-service-node ["name"]

new-std-service-node ["name"]

Attributes
component_queue
The overriding queue object for this component.
connections
This attribute should not be used anymore. Each component has connector objects that contain all connector functionality. List of connections for the component. The format is a list of lists, each containing the name of the connector, the connected component, and the name of the connector on the other component.
dynamic_slots
Dictionary with dynamic slots.
instantiated
Set to TRUE if the component has been instantiated.
object_list
Dictionary with objects that the component consists of.
object_prefix
Object prefix string used by the component. The prefix is typically set by the set-component-prefix command before the component is created.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
top_component
The top level component. Attribute is not valid until the component has been instantiated.

ser_link

Description
Serial link connecting two serial devices
Commands

create-ser-link ["name"] [buffer_size] ["global_id"] [goal_latency] [immediate_delivery]

new-ser-link ["name"] [buffer_size] ["global_id"] [goal_latency] [immediate_delivery]

Attributes
buffer_size
The number of characters the link may buffer. Must be at least 1.
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
global_id
Global identifier for use in distributed simulation or NIL if the link is not distributed.
goal_latency
Goal latency in seconds for this link. See also the set-min-latency command.
immediate_delivery
Immediate delivery instead of using the specified latency. Implies nondeterminism for multi cell messaging.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
device[0-1]serialany

server_console_comp

Description
Deprecated class - do not use
Commands

create-server-console-comp ["name"] [telnet_port]

new-server-console-comp ["name"] [telnet_port]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
telnet_port
TCP/IP port to connect the telnet service of the console to.
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
serialserialup

text_console_comp

Description
The "text_console_comp" component represents a serial text console.
Commands

create-text-console-comp ["name"] ["bg_color"] ["fg_color"] [height] ["title"] [width] ["win32_font"] [window] ["x11_font"]

new-text-console-comp ["name"] ["bg_color"] ["fg_color"] [height] ["title"] [width] ["win32_font"] [window] ["x11_font"]

Attributes
bg_color
The background color.
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
fg_color
The foreground color.
has_user_defined_title
return True if current title is set by users.
height
The height of the console window.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
title
The Window title.
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.
width
The width of the console window.
win32_font
Font to use in the console on Windows host.
window
Try to open window if TRUE (default). FALSE disables the window.
x11_font
Font to use in the console when using X11 (Linux/Solaris host).

Connectors
NameTypeDirection
serialserialup

server_console_comp

Description
Deprecated class - do not use
Commands

create-server-console-comp ["name"] [telnet_port]

new-server-console-comp ["name"] [telnet_port]

Attributes
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
telnet_port
TCP/IP port to connect the telnet service of the console to.
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.

Connectors
NameTypeDirection
serialserialup

text_console_comp

Description
The "text_console_comp" component represents a serial text console.
Commands

create-text-console-comp ["name"] ["bg_color"] ["fg_color"] [height] ["title"] [width] ["win32_font"] [window] ["x11_font"]

new-text-console-comp ["name"] ["bg_color"] ["fg_color"] [height] ["title"] [width] ["win32_font"] [window] ["x11_font"]

Attributes
bg_color
The background color.
component_queue
The queue object for this component. It is only used as a placeholder for the real queue object before the component is instantiated. It can point to an instantiated cycle object or a pre_conf object.
components
This attribute is only valid for top-level components. List of components below the top-level component. This attribute is not valid until the object has been instantiated.
cpu_list
A list of all processors that belong to the component. This attribute is not valid until the object has been instantiated. This attribute is only used in top-level components and other components that are used as software domains.
domain
This attribute is only valid for top-level components. Domain to put the component in.
dynamic_slots
Do not use. Kept for checkpoint compatibility.
fg_color
The foreground color.
has_user_defined_title
return True if current title is set by users.
height
The height of the console window.
instantiated
Set to TRUE if the component has been instantiated.
machine_icon
This attribute is only valid for top-level components. An instance of a top-level component may override the default system_icon with its own icon. This attribute is the name of an 80x80 pixel large icon in PNG format that should reside in the [host]/lib/images/ directory of the Simics installation or the project.
object_list
Dictionary with the instantiated objects that the component consists of.
object_prefix
Object prefix string used by the component.
pending_cell_object_factories
Internal attribute for pending cell objects factories.
static_slots
Do not use. Kept for checkpoint compatibility.
system_info
This attribute is only valid for top-level components. A short single-line description of the current configuration of the system that the component is a top-level of. The line may include the Linux name of the simulated machine, the installed operating system, or similar information. For example Tango - Fedora Core 5 Linux
title
The Window title.
top_component
The top level component. Attribute is not valid until the component has been instantiated.
top_level
Set to TRUE for top-level components, i.e. the root of a hierarchy.
width
The width of the console window.
win32_font
Font to use in the console on Windows host.
window
Try to open window if TRUE (default). FALSE disables the window.
x11_font
Font to use in the console when using X11 (Linux/Solaris host).

Connectors
NameTypeDirection
serialserialup

3 Simulated Machines 5 Miscellaneous Notes