Previous Up Next

6  Using sf2lus with s2l and ss2lus

The ss2lus script is a simple program which allows Simulink models with Stateflow components to be translated into a monolithic Lustre program. The process is very simple, sf2lus is called to translate the Stateflow component into a temporary file, the name of which is then passed to s2l which translates the Simulink component generating calls to the sf2lus-generated nodes. The entire temporary Stateflow Lustre file is then appended to the translated Simulink. In practice, however, this interface is still in its infancy and only fairly simple and regular Simulink/Stateflow combinations are supported. For example, we do not handle callbacks from Stateflow to Simulink as yet, although this is possible and may be implemented in future.

6.1  ss2lus syntax

The sytax of the ss2lus command is very simple:
% ss2lus SetReset_r13.mdl --monoperiodic
This translates the given model file and combines the two components. Some of the options to sf2lus are mandatory and set by ss2lus. If you wish to pass options to s2l they can be passed on the ss2lus command line. Both s2l and sf2lus can receive additional arguments in the S2LOPTS and SF2LUSOPTS environment variables, respectively. Be careful with sf2lus options, however, since they may invalidate the interface between s2l and sf2lus. In particular, do not set -names or -states_visible, or any options which generate additional inputs or outputs. In fact, some of the features of sf2lus which allow management of Stateflow charts in isolation should also not be used. For instance, you need to ensure that all Stateflow components have at least one input and one output to ensure that the dummy arguments generated to allow legal Pollux output are not triggered.

6.2  Matlab workspace files

To assist in building the interface, a file describing sf2lus's view of the Matlab workspace is generated in a .mws file. This contains a list of Matlab workspace variables used by the sf2lus code and which have to be declared in the s2l output. It also contains information about any pseudo-variables generated by sf2lus (currently only the t time variable). Note that the .mws file is not deleted by either sf2lus or ss2lus since constants are read from this file. It is up to the programmer to maintain this file with respect to the current Matlab workspace. It may be possible, in future, to generate this file from Matlab automatically.


Previous Up Next