Glossary of Rational Statemate Terminology
Refers to any flow line found in an activity chart (either control-flow or data-flow). This term is used by the properties, Documentor, and Dataport.
A mask that protects configuration items within the databank according to your preferences.
The possible values are as follows:
● None - The item cannot be checked out.
●
● Update - The item can be checked out with a lock (which guarantees that other users cannot change it while you are working on it) and checked in.You can assign an access level to the following groups:
● Owner - The project member who first created the configuration item in the databank.
● Group - Project members who belong to the same group as the owner (according to the definitions set by the operating system).
● Others - All project members.The databank directory structure is created with “world read/write” access, but specific items within the structure can be protected according to your preferences. All versions of a configuration item belong to the same owner and have the same access level.
See also read-only editing mode.
Any task done as a result of one of the following:
●
●
●A single action can consist of making an assignment, generating an event, invoking a defined (named) action, or several special types of expressions (starting, stopping, or suspending activities; clearing history; and so on).
One or more actions executed on the same transition, static reaction, or mini-spec. The actions can be listed sequentially, in which case they are separated by semicolons, or nested, as the required logic dictates. All actions on the same transition/static reaction/mini-spec occur simultaneously.
In addition, special context variables are available to enable the definition of actions that are executed sequentially instead of simultaneously. These context variables are prefaced by a dollar sign ($).
A subroutine written using the standard Statemate action statements. Normally, action statements are executed within the context of Statemate semantics (for multiple action statements within a single step, all the assignments occur at the same time). Within an action language subroutine, all the assignments occur in the order the statements are written.
The primary graphical object in an activity chart that represent a function in the functional view of the system. An activity represents something that transforms input into output.
There are three types of activities:
Activities can be allocated to modules (structure) and can contain statecharts. You can specify the behavior of an activity by connecting it to a subroutine, as follows:
● Procedure-like activities can be connected to procedures within any of the supported languages.
● Internal primitive activities (reactive-controlled and reactive-self) can be connected to tasks (no mini-specs or decomposition is allowed).Applies only when Activity Style is set to Software style. This means that activities in your model can be started and stopped. The alternative is Hardware style, in which activities are always active. This affects simulation, code generation, and Check Model.
There are three possible activity termination types:
● Procedure-like - When started, the activity will run to completion in a single step. This type can contain only mini-specs.
● Reactive-controlled - The activity will be stopped by the control activity that started it. This type can contain either mini-specs or control activities.
● Reactive-self - The activity self-terminates at an appropriate time. This type can contain either mini-specs or control activities.All three types of activities are started by their respective control activity.
Describes the functional view of the system using activities as the primary building block. A system description can contain one or more activity charts. Activity charts, which may be connected to module-charts, describe the functionality of individual modules. Activity charts can be hierarchically connected to other activity charts.
In addition, activity charts can be connected to statecharts. Statecharts either define the behavior of individual activities or control groups of activities like a control activity.
See also activity chart graphic editor (AGE).
The graphical editing tool used to create and edit activity charts. Statemate graphic editors (GEs) are more than simple drawing packages; they are language-sensitive graphic editors.
The element or constant, defined in the scope of an instance of a generic chart, that is mapped into a formal parameter of the generic chart during instantiation. The type of the actual parameter must match the type of the formal parameter.
An array, queue, union, or record.
A named reference to a slice of a bit-array or to a slice of a bit-array that is a member of an array of bit-arrays. In addition, aliases can be slices of other aliases.
Aliases can be sensed or written. Writing to an alias changes only the bits of the bit-array that the alias refers to. A bit or a bit-array can be an alias.
Events and conditions cannot be specified as an alias. Integers and reals can be defined as an alias only if the definition specifies a single bit. (In this case, an automatic conversion is applied.) Arrays, queues, records, and unions cannot be aliases.
(bit-array) ADDR => WORD(4..15)
(bit-array) DATA1 => PACKET(1)(16..31)
Represent parallel behavior. And-states are sometimes called concurrent or orthogonal states. When a statechart enters one And-state, it simultaneously enters all other And-states at that level of the state hierarchy. And-states can be subdivided into smaller states (decomposition).
A one-dimensional (vector) grouping of data-items, events, or conditions under a single name whose individual elements are addressed through a reference index.
An individual data-item, event, or condition in an array. The element is referenced by the syntax
A(i)
, whereA
is the array andi
is the index to the array.A reference to a consecutive group of individual array elements. The slice is referenced by the syntax
A(i..j)
, whereA
is the array andi
andj
are indices into the array.In Statemate models, transitions are made on a step, but the step does not consume any time. This is typically used with software or system-level design.
User-defined information stored with an element’s properties entry. Each attribute has a name and can have a value. For example, an attribute can represent a security classification level or the name of a requirements document.
You can define attributes using the Attributes dialog box in the property sheet. The dialog box displays an editable list of attributes and contains a button that loads attribute definition files.
● You can list the attributes of all the elements in your workarea using the reports tool. The Property and Attribute reports include information about attributes.
● You can use the Check Model tool to check for inconsistencies between the attributes defined in an attributes definition file and those stored in the properties. The checks report enforced attributes that are missing, attributes without a value, and values that are inconsistent with type definitions.A text file containing predefined attributes that you can apply to an element using the Load Attributes button in the Attributes dialog box in the property sheet. Before using the Load Attributes button, you must first specify the directory containing attribute definition files as a preference in Statemate.
An activity with no descendants; the most primitive activity.
Holds a single, binary value. Its literals are
0b1
and0b0
.An array of bits. The length and indices are specified when the element is defined. The defaults values are: length 32 bits long, right index (most significant bit) 31, and left index (least significant bit) 0.
Bit-arrays are treated as unsigned numbers by Statemate. Both implicit and explicit conversion to other Statemate types is supported.
A mechanism that associates a subroutine with an element.
A general term for one of the graphical editors within Statemate.
Tests all or selected charts in the model for violations in syntax and semantics. It also checks the relation between charts.
● Correctness - detects inconsistencies in the model, such as an Or-state without a default entrance.
● Completeness - detects redundancy and incompleteness in the model, such as unresolved elements.Statemate can create code from a model via a code profile editor. The resulting code can be compiled and executed on the development host.
The expression used to assign a value to a combinational element. The syntax is as follows:
X = Y1 when C1 else
Y2 when C2 else
...
YnIn the syntax,
X
is a variable condition or data-item,Y1
toYn
are expressions, andC1
toCn
are condition expressions.Represents asynchronous behavior, that is, an element whose value is “continuously” assigned (rather than evaluated once each step).
Enables you to model asynchronous logic in your designs. The flexible syntax for combinational elements enables you to specify asynchronous functions, from simple combinational logic gates to multiplexors, transparent latches, and so on.
An element contained in a library. A component root is a generic activity-chart. The definition of a component includes the following parts:
● Top-level name and input/output
The top-level design contains information on the component’s name and input/output. If you change the top-level design, all charts that contain instances of that component must be modified by you. Use the Check Model tool to detect instances that are not up-to-date.
● Behavior
The behavior of the component is reflected in all the versions of charts that use the component. If the behavior is changed, the graphic editors that contain instances of that component do not have to be modified by you. Analysis tools automatically sense the new behavior as well.
● Icon
The icon is a pixel map used to represent the component in the component browser. A one-line text label is attached to the pix map to enable you to attach a description to the component. The system then automatically attaches this description of the top-level activity of the generic chart as the description of the component.
If the icon is changed, the graphic editors that contain instances of that icon’s component do not have to be modified by you. Analysis tools do not sense the modification, but the component browser is refreshed with the new icon.
Note: Global definition sets can be part of a component. When you create a component, the related GDSs are automatically added to the component’s configuration. (A GDS is related if it contains user-defined types or constants that are part of a component definition.)A connector that can be used only with a record or union data-item. The composition connector directs the components of a record to two different target activities. For example, a data-store called RANGE has a record type of data-item with two components called LOW_LIMIT and HIGH_LIMIT. If the flow is going out from the data-store, the composition connector splits the record into the two components.
The composition connector can also go in the other direction, where multiple flow lines labeled with the record’s components enter the connector and the single flow line denoting the record flow emanates from it.
An element defined as an expression in terms of other elements. The type of the expression must match the type of the element.
Compounds can only be sensed; they cannot be written or changed directly. To change a compound, you must change the value of the elements used to define the compound.
Events, conditions, and simple data-items (integer, real, string, bit, or bit-array) can be specified to be compounds. Array, queues, records, and unions cannot be compounds.
The following examples are valid:
(real) VOLUME => (4.0/3.0) * PI * R**2.0
(condition) BOOL1 => CON1 or CON2 and not in(STATE1)The following example is invalid:
(condition) BOOL2 => 2 * PI * R
A mechanism consisting of multiple flows and connectors that transfers information between activities. This reduces the number of arrows and makes the charts easier to read and understand.
A persistent signal whose value is either TRUE or FALSE that indicates something occurring over a span of time. For example, the light is on. All conditions are enclosed in square brackets (for example,
[C]
).The action
tr! (C)
has the effect of setting the truth value of conditionC
to true, and the corresponding actionfs! (C)
sets it to false.Used in statecharts, this emphasizes a choice based on a condition (for example,
x>1, x<1, x=1
). The triggers must be mutually exclusive.A compound expression that can contain variables and context variables.
A version “snapshot” of the workarea. Typically, configuration files are saved to the databank where they can be retrieved and executed at a later time to reload the snapshot of the design to the current workarea.
See also configuration management and configuration item.
Elements stored in the databank as ASCII files. Multiple versions of the same configuration item can exist in the databank. All versions of a configuration item belong to the same owner and have the same access permissions.
See also configuration file and configuration management.
Also called CM, change management, revision management, and source control. Each Statemate project has a common repository area called the databank. The databank is both centralized and permanent. That is, information in the databank belongs to the entire project and represents the current working design.
As you rework your charts, each modification is made to your workarea. When you want to permanently store a new version of your changes to allow others to share them, you save the modified charts to the databank. And, through a locking mechanism, you are ensured that your work will not conflict with the interests of the other project members.
While working on a project, you can perform configuration management operations such as check-ins and checkouts using the workarea browser and the databank browser. Statemate provides a built-in CM tool similar to those found in products designed specifically for the task of configuration management. In addition, Statemate allows you to transparently substitute a different CM tool when you create a project.
See also configuration file, configuration item, and configuration management tool.
The tool used to perform configuration management. When you create a new project, you can choose Statemate’s built-in CM tool or one of several widely-used, third-party CM tools. If you prefer a different tool, templates are available so you can create your own simple, script-based interface to your tool of choice.
See also configuration file, configuration item, and configuration management.
A circular or oval graphical object used in charts to join and divide arrows or to allow an arrow to exist on multiple pages. Its purpose is to reduce the number of arrows in, and to clarify, a specification.
A value that does not change. A constant must be defined in terms of a literal of the corresponding type or expression of literals. It cannot be defined in terms of an expression of other elements even if the other elements are constants.
Constants can only be sensed. They cannot be changed or written. Conditions and simple data-items (integer, real, string, bit, and bit-array) can be specified as constants. Arrays, queues, records, unions, and events cannot be constants.
An alphanumeric expression assigned to a constant element. For example:
X= ’Hello’A variable that is evaluated and updated sequentially within an action expression. A context variable is preceded by a dollar sign ($).
A reference to a statechart or a flowchart that controls the activities within the same activity chart. A control activity cannot have any subactivities and is specified by an off-page statechart. An at-sign symbol (@) precedes the title of control activities.
Carry information or signals used in making control decisions (for example, commands or synchronization messages).Two types of flow lines are allowed in activity charts: data flow lines (drawn as solid arrows) and control flow lines (drawn as dashed arrows).
Carry information used in computations and data-processing operations. Two types of flow lines are allowed in activity charts: data flow lines (drawn as solid arrows) and control flow lines, drawn as dashed arrows.
A unit of information that can be one of the following:
●
●
●Stores information on activities for later use. Data-stores can be used to total large volumes of data, continuously accumulating over time. Data-stores are always basic; they cannot contain other data-stores or activities.
Statemate supports the following data types:
●
●
●
●
●
●
●The directory structure in which project data is stored. The databank contains several subdirectories that hold different types of Statemate objects, such as charts, panels, and configuration files. Objects in the databank are stored as ASCII files.
A project databank can be placed in any directory to which you have read and write access. Many sites designate a special location for project data; check with your system administrator.
See also configuration management.
Enables you to navigate through your project’s databank. The window displays a complete or partial list of the configuration items in the databank, along with detailed information about the selected item (if any). The information includes a list of all existing versions of the item from which you can choose specific versions on which to apply configuration menu operations.
A Statemate utility that enables you to extract information from the Statemate database. You can use this information to create plots, generate reports, and analyze data.
A set of conditions that remain true forever.
Indicates an entrance to the most recently visited state or configuration at the lowest level in the hierarchy. This type of history connector has an asterisk after it (H*).
Specifies the starting point at each hierarchical level within a statechart (assuming that an explicit transition was not taken).
Each element in a model belongs to a specific chart and is defined in that chart via the properties. Elements defined in one chart can be used in another chart. A textual element is clearly “visible” in the chart where it is defined; it is also visible in all the descendant charts in the chart hierarchy.
A chart that has a parent. The terms descendants and ancestors denote subactivities and parent activities, respectively, on any level of nesting. Activities that have no descendants are called basic.
Connects a target and a source that are far from each other. Using this type of connector eliminates the need for long arrows.
In the Documentor, you use DGL to write a program that designs how your documents will appear and what information they will contain.
A Statemate tool used to design and produce documentation of the system you are designing. The documents can include textual and graphical information from a variety of sources, including your project database and information outside your workarea.
A statement used to include files from outside the project database within your documents. Such include files consist of textual information, diagrams, plots, and so on.
A design program that you write using Document Generation Language (DGL). The template contains instructions as to what information to include in the report and how to format it.
Provides access to the DOORS requirements tracing tool, if available.
A model is made up of elements, which can be:
●
● Chart - Activity charts, control activitys, global definition set (GDS), module-charts, and statechartsThe properties contains information about each element in the model.
A type of constant. You can define a user-defined type (UDT) to be an enumerated type, then define a set of constant values for this type. For example, you can define an enumerated type
COLOR
, then defineCOLOR
as{RED,
YELLOW,
BLUE,
GREEN,
ORANGE}
. You can use these enumerated values in expressions. For example:A special type of external activity defined through the DDE to be external to all levels of the chart hierarchy. This type of external activity is external to the entire system being developed.
Instantaneous signals used for synchronization purposes. They indicate that something has happened.
Events occur in a precise instant in time, and if not immediately sensed they are lost. Events “live” for the duration of one step only, and that step is in the one following in which they occur.
Any activity outside the scope of the top-most activity in a particular activity chart. Because activity charts are hierarchical, an external activity is usually resolved to a box in a chart higher in the chart hierarchy.
However, an external activity might be resolved to a box that is an internal activity at a higher level. In this case, it remains an external activity when referenced in the lower chart.
In addition to basic types, a data-item can be a composition of named components, referred to as fields, each of which can be a data-item of any type or a condition.
Statemate supports two kinds of compositions: records and unions. The entire construct is referenced by its name (for example, on a flow line), whereas a particular field is referenced using dot notation, as follows:
<record/union reference>.<field reference>
Transfers information between activities and modules. They can be single pieces of information called data-flows, or groups of information called information flows.
See also a-flow line, compound flow, information-flow, and m-flow.
A flowchart represents a process graphically. It includes the entire process from start to finish, showing inputs, pathways and circuits, and action or decision points.
A labeled arrow that visually represents a flow. The label on a flow line denotes either a single information element that flows along the line or a group of such elements (an information-flow).
An iterative action that makes it possible to access the individual array components in successive order. The syntax is as follows:
for $I in N1 to N2 loop
A
end loopA type of connector that represents a single information element flowing from one source to several targets. A joint connector is the opposite type of connector.
An element defined (via the properties) in the generic chart with a type and mode. The formal parameter is a placeholder for the actual element being mapped to it. It is used to connect a generic instance to its scope or to define the special characteristics of the particular instance.
A subroutine that returns a value and can have multiple parameters. All function parameters are inputs.
See graphical back animation (GBA).
See global definition set (GDS).
Enables you to create a new global definition set (GDS) or access an existing one.
Enable you to reuse parts of a specification. Using a generic chart, you can represent common portions of the model as a single chart that can be instantiated in many places (similar to a procedure in a conventional programming language).
Generic charts are linked to the rest of the model via parameters; no other elements (besides the definitions in global definition sets) are recognized by both generic charts and other portions of the model.
An instance of a generic chart used for a specific portion of a model. The “<“ notation indicates that a box is an instance of a generic chart. For example, a box named
I<G
denotes that the boxI
is an instance of the generic chartG
.Instances must be basic and truly generic. They cannot contain descendants, behavioral information, static reactions, or combinational assignments.
A type of component that contains definitions of user-defined types as well as constant data-items and conditions. The elements that appear in a GDS are visible in the entire model. Data types defined in a chart or inherited from a parent chart take precedence over data types defined in a GDS.
A GDS is similar to a chart in that both are configuration items of the model. That is, both charts and GDSs contain parts of the model and can be saved and loaded separately from other parts. A GDS cannot contain any other graphical or non-graphical information.
There can be several GDSs in one model, but there is no hierarchical relationship between them, nor between them and the charts in the model.
The graphic editors enable you to create and modify statecharts, procedural statecharts, module-charts, and activity charts.
The Simulator highlights the charts as they are executed. However, once you generate code, you lose that graphical feedback. GBA provides graphical highlighting similar to Simulation, but from generated code.
A behavior pattern where the activities’ components are always active. In these cases, the activity does not need a control activity, and all of the subactivities start and stop when the parent does.
A connector (H) that indicates an entrance to the last state visited residing at the same hierarchical level as the connector.
See also deep history connector.
A software code generator mechanism that enables you to “hook” user-actions or procedures to any change in the specification during execution. This is useful to tie your external environment to the behavior represented by the generated code. Unlike stubs, which simply serve as placeholders, hooks generate callback functions and actually communicate with external code.
For combinational elements that model latching behavior, the Infer Transparent Latches For option can be used to generate code that will cause the synthesis tool to infer a transparent latch instead of combinational feedback.
Represents a container for other elements (conditions, events, data-items, and other information flows). They reduce the number of flow lines, which makes the chart more readable and easier to understand.
A repetition of a generic chart. It can be repeated multiple times in a model, but it must be a primitive box that does not contain static reactions or mini-specs.
The act of creating an instance of a generic chart. Each instance has its own actual-to-formal parameter binding.
Any natural number, 0, or the negative of any natural number. The maximum value of integers allowed is dependent on the architecture of the machine on which Statemate is being executed. On a 32-bit machine, it is
(2**31)-1
.Graphical representation of an input/output device in the panel graphic editor that has a predefined behavior. The following types of interactors are available: push buttons, menu buttons, radio buttons, sliders, displays, lamps, meters, and knobs.
Establishes a connection between a panel graphical object and elements in the simulated model. The three possible modes of binding used for interactors are IN, OUT, and IN/ OUT. For animation of user-defined graphical objects, only the OUT binding is allowed.
A report that graphically presents the input and output of a module or state. You can generate this type of report using the reports tool or Documentor.
Any activity within the scope of the top-most activity in a particular activity chart.
A type of connector that represents a single information element flowing from several sources to one target. A fork connector is the opposite type of connector.
A type of connector that reduces the number of lengthy flow lines by connecting different elements together. These elements then form a single flow line that emanates from or enters a common box or connector.
The name on a flow line that denotes either a single information element that flows along the line or a group of such elements.
A container for model components. Any Statemate project, new or existing, can be designated as a library.
Together, libraries and components offer a means to speed the process of design specification and to help you create more consistent specifications. Reusing previously created Statemate model elements is more efficient and makes for more consistent designs.
A report that presents either:
You can generate this type of report using either the reports tool or the Documentor.
● Character literal - A quoted sequence of characters.
● Numeric literal - A sequence of digits, an optional decimal point, and an optional negation sign.real - 3.1234
integer - 5
string - ‘abcdefg’Also called a literal constant.
Subroutines that are implemented in the Statemate action language, or a procedural statechart that uses local data elements. These elements are like local variables in any programming language, and can have name and type definitions.
Guarantees that other users cannot change the item in the databank while you are working on it. After your changes are complete, you can check it into the databank and either release or continue to hold the lock. No configuration item can be locked by two or more users simultaneously.
When you create a new configuration item (a chart or file that you have created but not yet stored in the databank), it is implicitly locked by you. You can, therefore, always save such a configuration item into the databank.
See also configuration management.
Refers to a flow line in a module-chart. This term used by the properties, Documentor, and the Dataport.
A definition of an activity’s behavior entered into the properties. The mini-spec is activated when the associated activity is active and stops when the associated activity stops.
You define mini-specs in the property sheet. The syntax is similar to static reactions (a list of reactions of the form
trigger/action
, separated by a double semicolon (;;).States that have mini-specs are distinguished by a “>” symbol after the chart name (for example,
ALARM>
).Represents the system under design.
The heart of the specification stage is the construction of the system model. Statemate modeling is especially effective for reactive systems, whose behavior can be very complex, causing the specification problem to be notoriously elusive and error-prone. Most real-time systems, for example, are reactive in nature.
A system model constitutes a tangible representation of the system’s conceptual and physical properties, and serves as a vehicle for the specifier and designer to capture their thoughts. In some ways, it is like the set of plans drawn by an architect to describe a house. It is used mainly for communication, but should also facilitate inspection and analysis. The modeling process involves conceiving of the elements relevant to the system and the relationships between them, and representing them using specific, well-defined languages. When the model reflects some pre-existing descriptions (for example, requirements written in natural language), it is useful to keep track of how the components of the developing model are derived from the earlier descriptions.
The primary graphical object used in module-charts. Modules are used to represent the structure of the system. There are two types of modules: internal (shown as a solid rectangle) and external (shown as a dashed rectangle).
The functionality of a module is shown by describing it by an activity chart.
● The primary structural building block of Verilog code. This term also refers to structural components when defining Verilog Code Generation Profiles in Statemate.
● The term used to see structural components when defining C or Ada code generation profiles in Statemate.Describes the structural view of the system using modules as the primary building block. A system description can contain one or more module-charts. They are located at the top of the chart hierarchy in a system model.
Module-charts can be connected to activity charts, which describe the functionality of individual modules.
The graphical editing tool used to create and edit module-charts. Statemate graphical editors (GEs) are more than simple drawing packages; they are language-sensitive graphical editors.
A simulation debugging tool that displays a table of the textual and graphical element status during a simulation. The monitor can be used as an output device to display element status and an input device that accepts input stimuli during simulation. The various characteristics of a monitor window can be saved in a simulation profile, which enables you to reuse the monitor in other simulation sessions.
An HDL option that provides the capability to do extensive behavioral simulation. Using graphical testbenches, along with the multi-value logic constructs, enables you to test design functionality in a true hardware environment.
Multi-value logic makes it easier to model multiple logic drivers, bus contention, resolution problems, and many other real-world situations.
A report that presents the flow of information between activities and modules. You can generate this type or report using the reports tool or the Documentor.
Occurs when there are multiple, legal exits from a single state. If more than one state is true, the system does not know which transition to take.
A decluttering mechanism that decomposes a chart into several pages. The contents of the box element (activity, state, or module) can be drawn in a separate chart. The box element is called an instance box and the associated chart is called an off-page chart.
A box refers to its off-page chart by using the @ sign in its name. For example, a box named
P@C
denotes that the boxP
is decomposed into chartC
. If you want to use the same name for the box and the off-page chart, omit the first name. Thus,P@C
becomes@C
.Connects arrows that appear on separate pages. You can use an alphanumeric string to label these connectors. A useful convention is to label the connector with the name of the source or target of the arrow in the instance chart.
Allows a single storage element to represent each state. This option significantly reduces the amount of decode logic in the resulting circuit, which improves circuit performance.
Eliminates unnecessary levels by assigning the minimum number of storage elements while maintaining the hierarchy. However, this option will not eliminate all levels in all cases. For example, it cannot eliminate a level that contains a static reaction.
Enables you to represent sequential behavior. The Or-state is similar to the states used in traditional state diagrams or finite state machines.
The statechart can be in one, and only one, Or-state at any one time (at a particular level of the state hierarchy). Or-states can be subdivided into smaller states (decomposition).
Makes the generated HDL code perform faster than when you do not overload, but it takes up more space. Overload when your design requires more speed; do not overload when your design requires less area.
Provides a visual interface to the simulated model or generated code for debugging and prototyping purposes. It is built of predefined interactors and user-defined shapes. Dynamic behavior of these graphical objects is defined through their binding to elements of the model.
Typically, panels represent the user interface to a system. However, it is also quite common for the panels to show a logical representation of a system. For example, a panel could show the routing of packets through a communications network, or the failure states of valves and pumps in an aircraft fuel system.
Enables you to create a realistic mock-up that represents the system you are designing. The panel is associated with a model and is animated during model execution.
An element that links a generic chart to the rest of the model. No other elements (besides the definitions in global definition sets) are recognized by both generic charts and other portions of the model.
The way that an instance of a generic chart is connected to the scope of the instance during instantiation. It involves the binding of actual parameters to formal parameters of the generic chart.
See also actual parameter and formal parameter.
A chart that has descendants or subactivities. Parent charts are sometimes called ancestors.
During a simulation, you can record the commands and save them in the form of a simulation control language (SCL) program, which can be run like a normal SCP.
See also simulation control playback (SCP).
Five primitive types of data-items are predefined in the language of Statemate: integer, real, bit, bit-array, and string.
Customizations applied to the Statemate work environment. You can set preferences individually or by loading preestablished settings.
Project managers and system managers can set preferences that are enforced for users at your site. When you set your own preferences in a specific area, you can obtain information on which preferences have been enforced at your site.
A specialized derivative of a statechart. Procedural statecharts, which is used as a possible implementation of a Subroutine:
● When called, run from the default to the termination connector (including any loops) within a single step.A subroutine that has no return value but can have multiple parameters. Each parameter can be INPUT, OUTPUT, or INPUT/OUTPUT.
A type of activity that is started by the contro at the next higher level in the activity chart hierarchy. Once started, it runs to completion in a single step. This type of activity can contain a mini-spec, but cannot contain a control-activity.
See also activity termination type and procedure.
The main unit of work organization in Statemate. A project consists of data and users who can access that data. In general, project members have access to all data in a project, but any objects can be protected from write or read access.
A project includes the following:
●
● library (optional)A project is intended to be accessed by multiple users; a workarea is intended to be accessed by a single user.
A Statemate user who controls access to a project (can add or remove members from the project).
Each project can only have one project manager associated with it. By default, the project manager is also a project member. The project manager does not need to be an SMAN.
A Statemate user who has access to a particular project. A user can belong to many projects simultaneously.
Having access to a project means that the project member can view the list of objects stored in the databank. Read or write access to individual objects within the databank is granted on a per-object basis, according to user preferences.
Only the project manager can add or remove project members.
The name of the project. Project names must be unique at your site. Project names must begin with a letter, and can consist of letters, numbers, and underscores. Lowercase letters are automatically converted to uppercase. Names in Statemate, including project names, are not case-sensitive and cannot contain spaces.
Leaving the CAPS LOCK key off is the preferred setting.
Store textual information for the Statemate element, such as a description, attributes, and relationships with other elements. The element information can be formal (possessing some semantics that is relevant to the model and its behavior) or informal.
Some kinds of textual information are relevant to all types of elements, such as a one-line short description and an unlimited, textual, long description. These narrative additions, especially the long description, can be used to provide information about the element in an informal language, for the record.
In addition, the general mechanism of an attribute pair, name, and value can be used to associate special characteristics with the element. The properties can also be used to associate a synonym with the element, usually a shorter name that is easier to incorporate into a detailed chart.
A type of report that extracts basic element information from the properties. You can produce a property report for all element types. The reports tool and the Documentor can generate this type of report.
Provides a mechanism to search the properties to create lists of elements so you can examine and modify listed elements using the property sheet.
The properties includes a set of pre-programmed queries that represent specific relationships between specification elements or elements with a specific attribute. The output of the query is a pending list, which can be passed, as input, to subsequent queries.
You can perform three types of queries:
● Search the entire workarea. These queries search for element names and synonyms.
● Use the pending list as input. Once used as input, the subsequent query produces another pending list that replaces the original.An ordered, unlimited collection of data-items, all of the same data type. This data type can be any predefined or user-defined type (UDT). A queue is essentially a single structure that holds many elements. You can add elements to either the front or the back, but can retrieve them only from the front of the queue.
The following actions affect queues:
●fl!
- Clears the queue.
●get!
- gets information about an element.get
actions are performed when they are encountered.
●peek!
- copies the queue’s head element without removing it.
●
●q_length
- Returns the length of the queue.
●uput!
- adds the value of the expression to the front of the queue.Occurs when a condition or data-item is:
A typical reactive system exhibits the following distinctive characteristics:
● It continuously interacts with its environment, using inputs and outputs that are either continuous in time or discrete. The inputs and outputs are often asynchronous, meaning that they can arrive or change values unpredictably at any point in time.
● It must be able to respond to interrupts (high-priority events), even when it is busy doing something else.
● It has many possible scenarios of operation, depending on the current mode of operation and the current values of its data, as well as its past behavior.Examples of reactive systems include on-line interactive systems, such as automatic teller machines (ATMs) and flight reservation systems; computer embedded systems, such as avionics, automotive and telecommunication systems; and control systems, such as chemical and manufacturing systems.
A type of activity started by the control at the next higher level in the activity chart hierarchy. Once started, it remains active for one or more steps until it is stopped by the same control activity. This type of activity can contain a control activity or mini-spec.
See also activity termination type.
A type of activity started by the control at the next higher level in the activity chart hierarchy. Once started, it remains active for one or more steps until it terminates itself by entering a termination connector in its control activity or executing a stop action in its mini-spec. This type of activity can contain a control activity or mini-spec.
See also activity termination type.
An access level that allows a configuration item to be checked out without a lock. The checked out item is automatically placed in read-only editing mode.
A mode in which all graphic editor viewing and tool launch features are active, but editing features and drawing icons are disabled. This is the only available mode when you are using read-only access and a chart is opened more than once in the same session.
In the property sheet, you can make changes, but the changes cannot be saved (unless you lock the item).
See also configuration management.
A floating-point number. In Statemate, you can see values using either the form
nnn.mmm
orn.mmm E+ee
. The values allowed are dependent on the architecture of the machine on which Statemate is being executed. This is usually in the range-1.0
E+38
to1.0E
+38
.The low-level operating system that controls basic system functions such as memory management, interrupt management, and disk access. In an RTOS, the assumption is that all tasks will be executed in such a way that they are (essentially) happening in “real time,” with no artificial delay between the initiation and execution of an action. For example, a real-time control system will appear to process inputs in virtually the same moment that they are made, so any output action required as a consequence of the input will happen immediately thereafter with no detectable delay.
In actuality, delays are inescapable in the sequential nature of digital control systems and software execution. However, the delays are kept to less than a “critical time” period that is short enough to be imperceptible to the system user. Guaranteeing that this “virtual real-time execution” occurs in a consistent and predictable manner is the job of the RTOS. Simulation model code must be compiled specifically to function in the hardware and software environment provided by the RTOS.
A data type that consists of several fields of possibly different predefined or user-defined types. When a data-item is declared to be a record, it is defined to contain all of its fields. A record is analogous to a
structure
in C and arecord
in Ada. To access a field in a record, use both the record name and field name separated by a period. For example:A code style that can be both simulated and synthesized.
Provides access to the RTM requirements tracing tool, if available.
See simulation control language (SCL).
See simulation control playback (SCP).
Enables you to execute a graphical model. You can verify the behavior of your design by examining the animation of the graphical elements in your design. You can also modify and examine the values of the textual elements in your design.
An optional file that can be recorded (like a trace file) when you are simulating a statechart. It is a record of the keystrokes you pressed during a simulation and is sometimes called a playback.
A program of simulation control language (SCL) commands, created by recording a simulation. You can then use the SCP to control a simulation in batch mode. An SCP animates the statecharts and activity charts in the simulation scope in the same manner as interactive simulation. You can use SCPs to facilitate the entry of large amounts of data and to automate scenario-based executions.
A data-item that is neither an array nor a queue.
A user does not need to have special system capabilities to be a SMAN (that is, they do not need to be “root”). SMAN activities do not modify system files.
The primary graphical object used in statecharts. States represent behavior of the system or part of the system. States in a statechart differ from states shown in more traditional state diagrams or finite state machines (FSM) in two ways:
There are two types of states:
●
● Or-states - Similar to states in traditional FSM. The statechart can be in only one Or-state at the same level of hierarchy at one time. Or-states are represented by a rounded rectangle.See also And-state and Or-state.
Describes the system’s behavior over time, including:
In addition, it provides answers to questions about causality, concurrency, and synchronization.
Statecharts constitute an extensive generalization of state-transition diagrams. They allow for multi-level states, decomposed in an and/or fashion, and therefore support economical specification of concurrency and encapsulation. They incorporate a broadcast communication mechanism, timeout and delay operators for specifying synchronization and timing information, and a means for specifying transitions that depend on the history of the system’s behavior.
Each element in the statechart has an entry in the properties, which can contain additional information. For example, an event entity can be used to define a compound event by an expression involving other events and conditions.
The graphical editing tool used to create and edit statecharts. Statemate graphical editors (GEs) are more than simple drawing packages; they are language-sensitive graphical editors.
Describe the behavior that takes place within a specific state. For example:
While in (S1) DO
[POWER_ON]/tr! (LIGHT_ON);
COUNTER:=0Static reactions also describe actions that occur when there’s a transition to enter or exit the associated state. For example:
On entering (S1) DO
/st! (activity_warm_up)
On exiting (S1) DO
/sp! (activity_warm_up)You define static reactions in the Reaction field in the property sheet (DDE). Separate multiple reactions in the DDE with a double semicolon (;;). States that have static reactions include a “>” symbol after the chart name (for example,
ALARM>
).During simulation, the status consists of the following information:
● The set of states the system is in (the configuration)
●
●Context variables (whose names begin with a dollar sign), are not part of the status of the system. They do not retain their value from one step to another.
When restoring a status, the simulation tool checks the consistency between the current simulation scope and the one in which the status was saved. When the two scopes are coincident, all saved values are restored.
The values of compound elements are not saved. In addition, because you might want to use different global or local clocks during the restoration, the Show Future command might show different times than when the status was saved.
To effectively use the restore status facility when the stored status is a subset of the restored status or vice versa, the following points apply:
● Changes in the hierarchies of activities’ and/or states cause the saved status to become unrestoreable. This includes cases when a state or activity is added, removed, or when it changes its location in the hierarchy.
● When a textual element is deleted, its saved value is ignored at the time of restoration. When a new textual element is added, its current value remains unchanged after the restoration.Records the status of the simulation in a non-text file for future reference. This is useful to:
A change in the system status in response to external stimuli or internal changes. A step can be triggered by an action (internal or external) or by a timeout event occurring as a result of incrementing time.
A simulation step is a two-stage process:
When the simulation execution begins, and before the first step is performed, the default initial status of the system is as follows:
● When using software style activities, the activities in the top-level hierarchy in the scope are active.
● All primitive conditions are false. All primitive numeric data-items are zero and string data-items are blank.After the first simulation step is taken, the system status is as follows:
● The state configuration includes the default states of the statecharts connected to any active control activity, or defined to be a testbench.
● All other elements of the system status are modified in accordance with actions performed on default connectors or by static reactions on entrances into these states.Stores information on modules for later use. It is analogous to a data-store in an activity except it is used in a module. Data-stores can be used to total large volumes of data, continuously accumulating over time. Data-stores are always basic; they cannot contain other data-stores or modules.
Holds any number of characters up to its defined length. The default length for a string is 80 characters.
The structure of a data-item can be one of the following:
●
●
●An empty entity where you can place handwritten or vendor-supplied code.
You can define function, procedure, and task subroutines using:
●
●
●
●You can use subroutines in the following ways:
In addition, any C code that has been used to describe subroutines within a model can automatically be included within the generated code.
Subroutines have textual information like any other Statemate element, including long descriptions, attributes, short descriptions, and so on.
Subroutines can have parameters, which are analogous to formal parameters in any other programming language. Parameters have a type, name, and mode.
Sometimes, as a reaction to external changes, the system is able to perform more than one step without additional external stimuli. Each step in such a series of steps, except for the initial one, is triggered by changes the system itself produced in the previous step. This chain of steps continues until the system reaches a status from which it cannot advance without further external input or without advancing the clock. Such a status is called a stable status. The progression from one stable status to another is called a superstep.
Emphasizes a choice based on events (for example,
input_1
,input_2
, andinput_3
). The triggers must be mutually exclusive.Typically used in conjunction with hardware circuit design. In Statemate models, transitions are made on a clock. Every transition consumes one clock period and every step consumes one clock cycle.
A special form of procedure connected to activities for C and Ada only. Task parameters can be inputs, outputs, or I/Os.
A connector that denotes the termination of a statechart. This connector can appear anywhere in the statechart, and is considered a final state with no exits. If the statechart is the definition chart for a control, the activity associated with the control activity will be stopped.
The simulation tool enables you to record input and output elements into files. The input file can be used as a test vector for the simulation. In other words, you can record an input file and then run the simulation again while reading inputs from that file.
The output file can be used as a benchmark for the simulation. In other words, you can create (record and edit) an output file that represents some expected or desired result. That file can then be compared to output files generated during subsequent simulations, including those that read from a (test vector) input file.
Only textual elements can be recorded.
A separate statechart created outside the specification of the system being developed. Testbenches can see any element in the model because the scoping rules do not apply to them. This enables a testbench to trap a specific behavior to test a design’s inputs and outputs. It can be thought of as a “snapshot of a scenario.”
Testbenches serve as debuggers and are visible to all signals in the design (discrete flows are not necessary). However, testbenches cannot test generics.
Triggers a transition based on the passage of time since a specified event occurred. The syntax is as follows:
In this syntax,
E
is an event andT
is an integer expression. This expression defines a new event, which will occurT
time units after the latest occurrence of the eventE
.A connector that connects only to the control activity. Using this type of connector eliminates the need for long arrows.
An optional file that can be recorded when you are simulating a statechart. It captures the raw data of a simulation, which you can present in the following ways:
In batch mode, simulation uses the commands
set
trace
andcancel
trace
to toggle the tracing facility. The trace file is closed when one of the following commands is entered: Exit, Restart Simulation, or Rebuild Simulation.An event that makes the model leave one state and enter another. Label each transition with the trigger that causes it to be taken and, optionally, with an action. Separate the trigger from the action with a slash, as follows:
Causes the movement from one state to another.
One signal that can be driven by many sources, one source at a time. The syntax for a tristated signal is as follows:
output:=signal1
when enable1
else signal2
when enable2
else 0bZA tabular representation of inputs, resulting outputs, and actions. A truth table can also represent the behavior of an activity and the definition of a named action. It is similar to a mini-spec.
A data type that consists of several fields of possibly different predefined types or user-defined types. When a data-item is declared to be a union, it is not defined to contain all of its fields. Rather, it is defined to contain one of its possible fields at any point in time. A union is analogous to a
union
in C and avariant
record
in Ada.You access a field in a union using both the union name and field name separated by a period. For example:
Often, it is useful to be able to see elements that have not yet been defined in the properties. Such a situation might occur in intermediate stages of the specification process. A simple example is the use of an external event as a trigger in a statechart before the activity chart that defines that event is constructed.
When you define an unresolved element, the properties make a preliminary suggestion, based on the appropriate choices. For textual elements, the type defaults to textual.
Graphical elements that have unresolved references to them do not have property entries and cannot be defined.
A Statemate information element can have one of four usages: variable, constant, alias, and compound. Certain usages are restricted based on how the element is referred to in the model and on the type of the element.
A data-type that consists of several fields of possibly different types. A user-defined type is analogous to the
typedef
statement in C or thetype
is
statement in Ada.User-defined types are often required to be visible throughout the entire model, so they are usually defined in a global definition set.
Holds a value. A variable is not defined in terms of any other element or expression. Variables can be both written and sensed. A variable is the default usage for any Statemate information element. Any Statemate textual element except for information-flows can be a variable: events, conditions, data-items (integer, real, string, bit, bit-array, record, union, array, and queue).
A tool that provides access to the hardware code generation tool. This tool automatically generates source code that is optimized for target Electronic Design Automation (EDA) tools downstream. The generated code reflects the same behavior as the original model and can be used as input to a Verilog simulator.
The Rational Statemate built-in configuration management (CM) tool tracks versions using whole numbers (positive integers). When you create a new item and check it into the databank, Statemate assigns it a version number of 1. Each time someone checks the item in, Statemate increments the highest existing version number.
Third-party CM tools might use other systems of version numbering, in which case the version numbers displayed by Statemate conform to the format of the third-party tool.
See also configuration management.
A simulation tool that enables you to communicate with a simulation and display changes as they occur.
An iterative action that iterates until some condition becomes false. The
break
action can be used to “jump out” of the loop without completing the iteration.A private directory structure associated with a user and a project that enables each project member to work independently. You can design and redesign without making irrevocable changes to the current working or released design. As you rework your charts, modifications are made to your workarea.
To permanently store your changes and allow others to share them, save the modified charts to the databank. Through a locking mechanism, you are ensured that your work will not conflict with that of the other project members.
A user can have multiple workareas associated with any project, but any one workarea can be associated with only one project.
Displays the charts and other files in the workarea and provides an easy way to open and edit them. In addition, it provides support for project configuration management.