Esterel and Jazz : Two Synchronous Languages for Circuit Design
We survey two synchronous languages for circuit design. Esterel is dedicated to controllers implemented either in software or in hardware. Esterel programs are imperative, concurrent, and preemption based. Programs are translated into circuits that are optimized using specific sequential optimization algorithms. A verification system restricted to the pure control part of programs is available. Esterel is currently used by several CAD vendors and circuit design companies.
Jazz is a newer language designed for fancy arithmetic circuits. Jazz resembles ML but has a richer type-system that supports inheritance. The current environment comprises a compiler, simulators, and code generators for the Pamette Xilinx-based board. Both languages are not only formal but based on real mathematics. We discuss why this is essential for good language design.