standard-pcie-switch static_link_connector
Simics Reference Manual  /  5 Classes  / 

state-assertion

Description

The state-assertion extension provides the possibility to record the state of various devices at regular interval, to be able to compare it to a later run.
When creating trace assertion information, the general scheme is the following:
- use state-assertion-create-file to open the file where the data will be saved. This will also create a state-assertion object.
- use <state-assertion>.add to specify the objects to assert as well as the amount of steps between each assertion.
- use <state-assertion>.start to begin the assertion. From now on, continuing the simulation will record information into the file.
- use <state-assertion>.stop to empty the buffers and close the file.
When using state-assertion information to compare against the current run, you should:
- use state-assertion-open-file to open the file containing the state information you want to use.
- use <state-assertion>.start when you want to begin the comparison. The comparison is stopped automatically when no data is available. If states differ, the simulation is stopped and the differences are displayed.
It is also possible to connect directly two Simics instead of using a file, with the functions state-assertion-receive and state-assertion-connect. The recording/comparison is then executed directly.

Interfaces Implemented

conf_object, log_object, snoop_memory, timing_model

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for this class

Attributes

create
Pseudo attribute; write-only access; type: [sisiii]
This is a pseudo-attribute that should not be used directly. It creates a state assertion file for recording.
open
Pseudo attribute; write-only access; type: [siii]
This is a pseudo-attribute that should not be used directly. It creates a state assertion file for recording.
add
Pseudo attribute; write-only access; type: [oiiso|n]
This is a pseudo-attribute that should not be used directly. It adds an object to the state assertion queue.
addmemlis
Pseudo attribute; write-only access; type: [s]
This is a pseudo-attribute that should not be used directly. It adds a memory listener in the state-assertion queue.
start
Pseudo attribute; write-only access; type: i
This is a pseudo-attribute that should not be used directly. It starts the state assertion.
fforward
Pseudo attribute; write-only access; type: [si]
This is a pseudo-attribute that should not be used directly. It fast-forwards the assertion process.
stop
Pseudo attribute; write-only access; type: i
This is a pseudo-attribute that should not be used directly. It stops the assertion process.
flush
Pseudo attribute; write-only access; type: i
Set attribute to flush buffered output (value should be 1).
info
Pseudo attribute; write-only access; type: i
This is a pseudo-attribute that should not be used directly. It provides information on the objects asserted.
status
Pseudo attribute; write-only access; type: i
This is a pseudo-attribute that should not be used directly. It provides runtime information on the assertion process.
lsize
Pseudo attribute; read-only access; type: i
This is a fake line size for the memory hierarchy system.
manual_handler
Pseudo attribute; write-only access; type: o
When this attribute is set, state-assertion reacts as if an event had occur for a specific object.
object_remap
Pseudo attribute; read/write access; type: [[so]*]
This attribute controls remapping of objects. Each sublist contains one string with the name of an object in the trace we are asserting against and the other element is the corresponding object in the current configuration.

Provided By

state-assertion
standard-pcie-switch static_link_connector