Capital > SAINT: Behavior Modeling Language > Front Matter > Purpose, Terminology, Conventions
SAINT: Behavior Modeling Language — Overview
Purpose
This manual describes SAINT, the modeling language used to describe component behavior and provide Script Support within analysis tools used with the Capital™ software.
SAINT is used within Dependency Expressions and State Machines to describe the behavior of a component in relation to any inputs, and within the Script Tool to define the manner in which a script should perform an analysis of a design. This manual describes the syntax for actions, conditions, methods, triggers and variables available within SAINT.
Note: this manual, "SAINT: Behavior Modeling Language (Capital), 2512" (© 2025 Siemens, unpublished work), organizes 185 topics across the chapters listed in the table of contents below. Each chapter/topic in this knowledge base corresponds to one or more of these source topics; see
_agent-saint-extraction-index.mdin the parentcapital-docs-kbdirectory for the complete file-to-topic mapping and current extraction status.
Terminology Used in This Manual
The following are common terms used in this manual to describe parts of the behavioral language.
An Action is part of the behavior language that changes the current state or generates output, e.g. assigns a new value to the resistance of an arc.
A Condition is a part of the language that tests whether a statement is true or false, e.g. a test that current flow is above a specified threshold.
An Object is an element in the language that can be interrogated by conditions and manipulated by actions, e.g. arcs, nodes and properties.
A Method is a special operation for a particular object.
A Trigger is a special condition for a particular object.
Conventions Used in This Manual
Some paragraphs are headed Syntax, Examples, Notes, Methods, Triggers and Caution.
- Paragraphs marked Syntax highlight the syntactic structure of the statement.
- Paragraphs marked Examples show basic examples of the syntax of the statements.
- Paragraphs marked Notes highlight useful additional information.
- Paragraphs marked Methods show the use of various methods that objects in the language may have.
- Paragraphs marked Triggers show the use of various triggers that objects in the language may have.
- Paragraphs marked Caution highlight important information that will avoid problems using the language.
Note: The language for dependency expressions is a subset of the state machine language, therefore this document will focus on the state machine language. Actions are case sensitive. It is important to remember that the semantics of actions are not defined here.
Modeling Component Behavior
This guide is concerned with the language used to define a component's behavior. This language is only used in the Component Model Builder tool. This section is a reference to where and how the language is used within the Component Model Builder.
The source page includes "Figure 1: Component Behavior", a diagram showing a simple representation of the various aspects of a component model (image not reproduced here).
Sub-topics under Modeling Component Behavior: The Component Model Builder, Component Category, Behavior Modeling Type, Component Interface (see capital-saint-component-modeling.md).
Full Table of Contents (185 topics, in document order)
- Purpose
- Terminology Used in This Manual
- Conventions Used in This Manual
- Modeling Component Behavior
- The Component Model Builder
- Component Category
- Behavior Modeling Type
- Component Interface
- Input/Output Properties
- Properties of the Current Model
- Properties of Other Components (Broadcast Properties)
- Dependency Expressions
- State Machines
- Comments
- The Console and Print Action
- Console
- Print Action
- Scalar Declaration Actions
- Integer Actions
- Integer Object Declaration
- Methods for Integer Actions
- Triggers for Integer Actions
- Boolean Actions
- Boolean Object Declaration
- Methods for Boolean Actions
- Triggers for Boolean Actions
- Enumeration Actions
- Enumeration Object Declaration
- Methods for Enumeration Actions
- Triggers for Enumeration Actions
- Floating Point Actions
- Floating Point Object Declaration
- Methods for Floating Point Actions
- Triggers for Floating Point Actions
- String Actions
- String Object Declaration
- Methods for String Actions
- Triggers for String Actions
- Strong Type Checking
- Vector Declaration Actions
- Array Style Vectors
- Table Style Vectors
- Arbitrary Style Vectors
- Array Actions
- Array Object Declaration
- Methods for Array Actions
- Triggers for Array Actions
- Static Arrays
- Table Actions
- Table Object Declaration
- Methods for Table Actions
- Triggers for Table Actions
- Arbitrary Vector Actions
- Arbitrary Vector Object Declaration
- Methods for Arbitrary Vector Actions
- Triggers for Arbitrary Vector Actions
- Enumerations and Arrays
- Assign Actions
- Assignment
- Immediate Assignment
- Temporal Labels
- Coarse Time and Fine Time
- Conditions
- Boolean Operators
- Mathematical Operators
- Binary Operators
- Functions for Conditions
- Operator Priority
- Control Actions
- if Action
- for Action
- foreach Action
- while Action
- break and continue Actions
- after Action
- on Action
- only once Action
- when Action
- Functions for Control Actions
- Component Objects
- Node and Arc Declaration
- Methods for Component Objects
- Path Objects
- Methods for Path Objects
- Node Objects
- Properties for Node Objects
- Methods for Node Objects
- Triggers for Node Objects
- Arc Objects
- Properties for Arc Objects
- Methods for Arc Objects
- Triggers for Arc Objects
- Component Names and Special Characters
- Self Objects
- Methods for Self Objects
- Embedded Objects
- Methods for Embedded Objects
- Operation Object
- Methods for Operation Object
- Math Object
- Methods for Math Object
- Message Passing Via Nodes
- Ganged Failure Modes
- Physical Bus Failures
- Methods for Message Passing via Nodes
- Port Objects
- Port Object Declaration
- Methods for Port Objects
- Triggers for Port Objects
- Bus Objects
- Bus Object Declaration
- Bus Message Declaration
- Methods for Bus Message Declaration
- Triggers for Bus Message Declaration
- Bus Methods
- write()
- read()
- retry()
- acceptAddress()
- rejectAddress()
- isDataAvailable()
- isDataAvailableOfType()
- getUniquieIdOfDataSource()
- setReadBufferSize() and setWriteBufferSize()
- isReadBufferFull() and isWriteBufferFull()
- isReadBufferEmpty() and isWriteBufferEmpty()
- flushReadBuffer() and flushWriteBuffer()
- setLatency()
- setPriority()
- addFilter() and removeFilter()
- addGlobalFilter() and removeGlobalFilter()
- encode() and decode()
- getUniqueId()
- acceptId()
- rejectId()
- Bus Triggers
- hasDataAvailable()
- hasDetectedCollision()
- hasReceiptAcknowledge()
- hasNoReceiptAcknowledge()
- hasWriteBufferOverrun() and hasWriteBufferUnderrun()
- hasReadBufferOverrun() and hasReadBufferUnderrun()
- hasChanged()
- State Machine Objects
- Preconditions for State Machine Objects
- Actions for State Machine Objects
- Conditions for State/Event Referencing
- Rules and Actions for State Machine Objects
- Simulator Objects
- Methods for Simulator Objects
- Triggers for Simulator Objects
- Subsystem Object
- Methods for Subsystem Object
- ECAD Object Propeties and Attributes
- Constants
- Modeling Support
- Renaming Action
- Sharing Action
- Follows Action
- Scripting Support
- scenario
- after
- at
- Design Object Methods
- analyze
- hold
- setOutput
- reset
- resetAll
- setProperty
- override
- setFailure
- unsetFailure
- setStartTime
- setSampleTime
- setStopTime
- monitor
- consider
- Usage Example – Current Direction Critical Components
- Usage Example – Modeling Reactive Component Failures
- Methods for Modeling Reactive Component Failures
- Usage Example – Multicast Addressing
- Usage Example - Embedding a SPICE model within a Capital Analysis model
- Usage Example – SAINT Code to Calculate RToPwr and RToGnd for a Consumer Device
- Documentation Use and Trademarks (back matter, stub only)
Source: https://docs.sw.siemens.com/en-US/product/861057055/doc/202410078.capital_st_user?audience=external · retrieved Tue Jul 07 2026 00:00:00 GMT+0000 (Coordinated Universal Time)