VIRTUTECH CONFIDENTIAL    Previous - Up - Next

state-assertion

Provided by
state-assertion
Class Hierarchy
conf-objectlog-objectstate-assertion
Interfaces Implemented
log_object, timing_model, snoop_memory, event_poster
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.

Attributes

Attributes inherited from class conf-object
attributes, classname, component, iface, name, object_id, queue
Attributes inherited from class log-object
access_count, log_buffer, log_buffer_last, log_buffer_size, log_group_mask, log_groups, log_level, log_type_mask
Attribute List
add
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It adds an object to the state assertion queue.

addmemlis
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It adds a memory listener in the state-assertion queue.

create
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It creates a state assertion file for recording.

fforward
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It fast-forwards the assertion process.

flush
Pseudo attribute; read/write access; type: unknown type.

Set attribute to flush buffered output (value should be 1).

info
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It provides information on the objects asserted.

lsize
Pseudo attribute; read-only access; type: Integer.

This is a fake line size for the memory hierarchy system.

manual_handler
Pseudo attribute; read/write access; type: unknown type.

When this attribute is set, state-assertion reacts as if an event had occur for a specific object.

open
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It creates a state assertion file for recording.

start
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It starts the state assertion.

status
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It provides runtime information on the assertion process.

stop
Pseudo attribute; read/write access; type: unknown type.

This is a pseudo-attribute that should not be used directly. It stops the assertion process.

Command List

Commands defined by interface log_object
log, log-group, log-level, log-size, log-type
Commands
addadd an object to be asserted
add-mem-lisadd a memory listener on the specified memory space
fforwardfast-forward a state assertion file when comparing
infoprovide information about the state assertion
startstart trace asserting/comparing
statusprovide the status of the current state assertion
stopstop trace asserting/comparing and close the file

Command Descriptions

<state-assertion>.add
Synopsis
<state-assertion>.add "object-name" steps [type] ["attribute"]
Description
Add an object to a state assertion file so its state will be recorded.
- obj is the name of the object to be added.
- steps is the number of steps between each save.
- type is the type of state saved in the file (for devices that provide several, the most complete state is saved by default). IA64 cpus have two states, 1 is system-level, 2 is user-level (without CR, PSR, RR)
- attribute is the attribute to save. If specified, the save_state interface is not used and the attribute is saved instead. This is useful for object having no save_state interface.
<state-assertion>.add-mem-lis
Synopsis
<state-assertion>.add-mem-lis "memory_space"
Description
Add a memory listener to a memory space so that all memory transactions will be recorded in the file.
- memory_space is the name of the memory space to listen to.
- -o allows state-assertion to take over an existing memory hierarchy.
<state-assertion>.fforward
Synopsis
<state-assertion>.fforward "object-name" steps
Description
Fast-forward a state assertion file. The contents of the file are ignored until the object obj has skipped steps steps. The simulation is not fast-forwarded. Other objects in the file are fast-forwarded along.
<state-assertion>.info
Synopsis
<state-assertion>.info
Description
Describe the state assertion performed by the current object.
<state-assertion>.start
Synopsis
<state-assertion>.start
Description
Start the recording/comparison.
<state-assertion>.status
Synopsis
<state-assertion>.status
Description
Describe the status of the state assertion performed by the current object.
<state-assertion>.stop
Synopsis
<state-assertion>.stop
Description
Stop the recording/comparison, flush the buffers and close the file.

VIRTUTECH CONFIDENTIAL    Previous - Up - Next