A new method for compiling schizophrenic synchronous programs
CASES '01 Proceedings of the 2001 international conference on Compilers, architecture, and synthesis for embedded systems
Making cyclic circuits acyclic
Proceedings of the 40th annual Design Automation Conference
Formal analysis of synchronous circuits
Formal analysis of synchronous circuits
ACM Transactions on Embedded Computing Systems (TECS)
A deterministic logical semantics for pure Esterel
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling Esterel
Separate compilation for synchronous programs
Proceedings of th 12th International Workshop on Software and Compilers for Embedded Systems
Circuit design and verication with Esterel v7 and Esterel Studio
HLDVT '07 Proceedings of the 2007 IEEE International High Level Design Validation and Test Workshop
A Verified Compiler for Synchronous Programs with Local Declarations
Electronic Notes in Theoretical Computer Science (ENTCS)
Refining schizophrenia via graph reachability in esterel
MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
Separate compilation and execution of imperative synchronous modules
Proceedings of the Conference on Design, Automation and Test in Europe
Argos: an automaton-based synchronous language
Computer Languages
Discrete Applied Mathematics
Hi-index | 0.00 |
In imperative synchronous languages, a statement is called schizophrenic if it is executed more than once in a single clock. When a schizophrenic statement is translated into a circuit, the circuit can behave abnormally because of the multiple executions. To solve the problems caused by schizophrenic statements, compilers duplicate the statements to avoid multiple executions. Esterel is an imperative synchronous language. Schizophrenic statements in Esterel are considered to occur due to the instantaneous reentrance of local signal declarations or parallel statements. However, if the corresponding circuit of a schizophrenic statement behaves normally, it is harmless and thus curing is not necessary. In this paper, we identify the conditions under which a schizophrenic statement of the Esterel program must be cured during circuit translation. We also propose an algorithm to detect schizophrenic statements that have to be cured on the control flow graphs (CFGs) of source codes. Our algorithm detects all schizophrenic statements that have to be cured and results in fewer false alarms on the benchmark programs used in the previous work. It is simple and based on the CFG of a program, implying that it can be merged into existing compilers easily.