An overview of Jazz

What is Jazz?

Jazz is a programming language designed to facilitate the implementation of large and complex digital synchronous circuits. Its main motivations is to improve code reusability in harware development through the use of high-level constructions such as objects. This goal is achieved through a state-of-the-art object system that allows flexible, modular, and generic circuit descriptions. However, this powerful language is easy to learn and to use: its syntax and basic object model are similar to Java.

In practice, the Jazz system is composed of a compiler and runtime environment that translate the high-level description of a device into a low-level structured set of boolean equations (net-list). The net-list generated from a single Jazz source code is used to simulate and debug the device (by software) and to automatically synthetize it on various types of programmable chips (FPGA). The net-list could also be used to verify logical properties of the device.

The Jazz language is fully portable and completely independent of the host platform. It allows separate compilation and precompiled libraries thanks to an intermediary compiled bytecode, pretty much the same way as in Java. The compiler and its associated tools for simulation and implementation are themselves entirely written in Java.

Main features of the language

The Jazz home page: