Experience across a wide variety of projects has shown that a generic approach can be applied to all controller designs. The generic first-level Activity-chart presents a common starting point for all systems specifications. The main purpose of this chart is to depict the following:
After defining the external sources and sinks for the context diagram, the next job is to identify the main system blocks. The generic first-level Activity-chart consists of three common blocks that are found in every design (see the Generic Top-Chart Approach for Controller Designs figure.)
and some additional main system functions that vary from system to system.
The Input Function performs the transformation of electrical signals to physical/logical values. Examples of operations performed in this function include: filtering, debouncing, and conversion of electrical to logical values.
The Output function performs the opposite function of the Input Function. It converts logical / physical values to electrical signals.
Between the Input function and Output function there is a PROCESS_BUFFER data store. This is used to provide communication between the main system functions and can be interpreted either as in the classic SA approach or as an internal bus.
In addition to these three standard functions (Input Function, Output Function, and Process Buffer), this chart also shows the main system functions. These functions vary from system to system and potentially consist of all of the following:
Each system function connects to the PROCESS_BUFFER by two information flows. One information flow brings inputs into the function, the other takes outputs from the function. The reason for using the PROCESS BUFFER and information flows at this level is to keep the diagram clear and readable and avoid the “spaghetti-like” mess that normally appears in such diagrams.
From the Generic Top-Chart Approach for Controller Designs figure, the only part the engineers have not yet discussed is the control activity. A control activity does not always appear in this System Level 1. In a Functional Model all the functions can be active concurrently and therefore a control activity is not necessary. As the engineers move to an Implementation Model they must define the calling sequence of the functions, and control activities must be added or modified to represent this behavior. Effectively, the control activity corresponds to the software scheduler.
A rule, which is common to all parts of this System Level 1 structural description, is that there should be no further hierarchical decomposition on this diagram. The reason for this is to develop some consistency on how these charts look so the readers become familiar with the representation and to make the chart more readable by focusing on the main system functions.
The final role of this generic System Level 1 Activity-chart is to provide a visualization of the global variables. The global variables are the signals flowing to and from the external environment, and between the main system functions. Since these signals appear in or are defined in this top chart, the scoping rules of Rational Statemate make them visible globally throughout the design.
Another recommendation is to use this chart to define system constants whose values need to be empirically determined or whose values can be set from simulation run to simulation run (e.g., time constants) as variables in this chart. These variable constants can then be initialized by the testbench (refer to System Validation)