How to do circuits with Jazz

Jazz is a high-level (lazy, declarative, higher-order, functional, object-oriented, single-assignment, symbolic, strongly typed with type-inference) modern programming language. See the Jazz home page. 

Jazz  is designed for expressing, concisely and accurately, very large digital synchronous circuits. The execution of a program  in Jazz synthesizes the netlist  for a synchronous circuit. The 2-adic semantics for nets n:net in Jazz is presented in "On Circuits and Numbers"  [pdf] .   By construction, the netlist  has the same digital behaviour as the Jazz source code,  according to the above semantics. 

We use Jazz at ENS for teaching the art of digital synchronous circuit design. We expect to soon also use the system as a path to fully automatic logic synthesis (from a unique Jazz source code) for challenging  digital designs, targetting FPGAs and large reconfigurable systems

  • Tutorial:  net-list synthesis and simulation.
  • Microprocessors projects
  • Serial arithmetic synthesis: DCT.
  • Reset and enable constructs:  Counters.
  • Algorithmic logic manipulation:  BDD synthesis.
  • Higher order circuit constructs: Trees.
  • From CERN: Transition Radiation Tracker.

 



Jean Vuillemin