Using
Esterel for System-Level Design
Stephen
A. Edwards, Columbia University
Satnam
Singh, Microsoft Corporation
Gérard
Berry, Esterel Technology
Abstract
Synchronous languages such as Esterel, Lustre, Signal, and others were originally developed
for safety-critical embedded software and compiled into C. They
have recently been extended to hardware with new language features and
compilers to RTL. Contrary to traditional HDL languages (Verilog,
VHDL) and recent system-level languages (SystemC, System Verilog), they
have well defined formal semantics, which facilitate bug
avoidance using correct-by-construction compilation and verification
techniques.
The tutorial
will demonstrate what the synchronous language offers for the modeling, design,
analysis and implementation of systems that comprise hardware and
software. It will be centered on Esterel. Esterel
models have proved to be useful for rapid design space exploration and
verification at system level, without resorting to detailed
implementation and slow bit-level event-based simulation. We begin with a
tutorial on coding in Esterel, then show how to model control-dominated IP
blocks at a higher level of abstraction and how to use the target C
code or RTL in conjunction with other system-level tools. Case
studies include examples of design space exploration by synthesizing
equivalent hardware or software from the same Esterel description, with
formal verification of safety properties such as bus protocol conformance.
Plan
- Introduction
to the Esterel Langauge
- Some basic
Esterel programming problems and how to solve them
- How to
compile Esterel into hardware and software
- UART case
study
- The future
of Esterel
Audience
System-level designers
Synchronous
approach enthusiasts
Language and
model-of-computation researchers