VIRTUTECH CONFIDENTIAL Previous - Up - Next
state-assertion
- Provided by
-
state-assertion
- Class Hierarchy
-
conf-object → log-object → state-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
-
add | add an object to be asserted |
add-mem-lis | add a memory listener on the specified memory space |
fforward | fast-forward a state assertion file when comparing |
info | provide information about the state assertion |
start | start trace asserting/comparing |
status | provide the status of the current state assertion |
stop | stop 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