In this paper we propose a high-level description of the behavior of digital systems. Behaviors are specified with a graphical synchronous model: “SyncCharts”. SyncCharts supports hierarchical descriptions, concurrency and preemption. It is fully compatible with the programming environment of the Esterel synchronous language and can generate output formats understandable by synthesis tools. Thanks to the mathematical semantics of the model, the correctness of the design can be formally established. Taking the example of a non-trivial binary encoder/decoder, we show how our approach makes the design easier, without loss of rigour or efficiency.