ESO to core ESO transformation
ESO files
ESO tracelists are mainly used to test SCCharts. They have a very simple format. see the following figure.
A
%Output : A B O1
;
%Output : O1
;
B
%Output : B O2
;
!reset ;
%Output :
;
A
%Output :A B O2
;
An ESO trace is devided into ticks, a tick is seperated with semicolon (;)
After a reset statement, which resets the whole automaton, the inputs are listed and these are followed bythe outputs.The inputs tell the simulator when to set which signal. The outputs show what signals are expected after the inputs where applied.
The normal ESO tracelist carries pure and valued signals. Pure and valued signals are only for extended SCCharts. In this Thesis Hardware Synthesis from SCCharts, the SCCharts are in a core version. Core SCCharts only contain variables, no signals. When we want to use the ESO file to test the synthesized hardware, we need also a core variant from ESO.
From ESO to core ESO
This transformation is quite easy. We must transform pure and valued signals into variables. For detailed information see emsoft13 paper.
The following table shows the transformation principle:
example | pure signals | valued signals |
---|---|---|
ESO | A | B(10) |
core ESO | boolean A | boolean B integer B_value = 10 |
Pure signals are transformed to an boolean varaible and valued signals must transform in a present variable (B) and a variable which carries the value (B_value).
For example:
ESO | core ESO |
---|---|
!reset; A B(5) C(false) %Output: D E(3) F(false) ; A %Output:F(false) ; | !reset ; %% A : true %% B : true %% B_value : 5 %% C : true %% C_value : false %% D :true %% E : true %% E_value : 3 %% F : true %% F_value : false ; %% A : true %% F : true %% F_value : false ; |
No new core ESO grammer is needed, because the %%-construct already exists in the ESo-Grammer. This construct is called extraInfos. These extraInfos are used to create variables.The main problem is here, that the information about which signal was an input and which signal was an output is get lost.
If we want to know which signal was an input or an output, we must have the proper SCL-Model. It holds this information.
Technical View
This transformation is a M2M transformation from an ESO Model to a new ESO Model. The transformation iterates through all traces an all ticks and for every pure Signals it generates a boolean variable and add it to the new ESO trace to the corresponding tick. And for each valued signal a boolean variable for the present status is created and a boolean or integer variabel for the value.