Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Tools

Thew following tools are installed locally in /home/esterel/bin/

IDE

Compiler

Managing Traces

Traces of Esterel programs are usually given as ESI  or ESO files. The following tools to work with esi and eso files are installed in /home/esterel/bin

Additional tools

Semantic differences between v5 / v7 (incomplete)

Modules

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.

Example:

Code Block
	    main module main_mod:
        input i, env_i; output o; run sub;
        loop await i do
            emit o
        end await end loop;
    end module
    module sub:
        input i,env_i; output i; change input i to output and it works fine sustain {
            i <= env_i
        }
    end module

Similar, reading outputs does not work:

Code Block
        main module M:
            input I; output O:int init 0; signal S: int init 0 in
                every I do
                    run Count[S/C]; emit O(?S);
                end every
            end signal
        end module
        module Count:
            output C : int; emit C(sat<32>(pre(?C)+1));
        end module

 

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;

New statements

The O will be present in the instant after the third I occurred.

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.