Thew following tools are installed locally in /home/esterel/bin/
- eso2esi: removes all outputs from an eso file
- esoDiff: compares two eso files and gives the first trace they differ in, if they do
- esoPrint: pretty printer for eso Files
- v5tov7 is a script based on the CEC to convert Esterel V5 programs into Esterel V7
Semantic differences between v5 / v7 (incomplete)
In the Esterel v5, the semantic of the instantiation of modules is simply a textual copy and paste, with renaming of signals. In Esterel v7, the behavior is more subtle.
- emitting inputs across modules does not work in v7: define that input as output with the same name
Similar, reading outputs does not work:
The global initialization does not reach C, hence it is not initialized when I occurs for the first time. Hence C is a local signal, when it is read, but it is a global signal when it is written. So you have to declare C as inputoutput;
Esterel v7 allows the use of expressions as conditions for strong aborts, but this is somehow tricky. The expression is evaluated before the abort body is executed. When a variable is changed inside the body, making the abort condition true, no abort takes place, not even a weak one.
The O will be present in the instant after the third I occurred.
It is now possible to emit signals in the next instant. Unfortunately, this will be silently omitted, if the module terminates in the current instant: main module M:
If possible, you can simply add a pause at the end of the module, but of course this can change the overall behavior of the model.