The Teak Asynchronous Synthesis System
Teak is a tool for creating asynchronous implementations of circuit descriptions written in the Balsa language. Like Balsa, Teak uses an intermediate representation in which networks of components (Teak networks) drawn from a fixed library of parameterisable templates (Teak components) are connected together using handshaking channels. Unlike Balsa, these networks are elastic. That is to say, handshake decoupling and the insertion of data buffering (beyond that which is necessary for liveness) will only affect the performance and cost of circuits, not their correct behaviour. The Teak component templates have been chosen to be familiar to users of other asynchronous design styles having no pull channels, required enclosed of port handshakes or other features specific to the Handshake Components used in the Balsa system. For this reason, we hope Teak will be a useful tool for creating elastic pipeline asynchronous systems from language descriptions, even with other target technologies.
The Teak tool currently consists of:
- A synthesiser from Balsa to Teak component networks
- A mechanism to plot those networks
- A language-level simulator for Balsa
- A programmable peephole optimiser for component networks
- A GUI to drive and visualise optimisation choices
- A prototype `back end' to generate Verilog gate-level implementations of Teak components
Getting Teak
The Teak tool can be downloaded from our ftp server. You will need the Glasgow Haskell Compiler (ghc) and the gtk2hs bindings for ghc in order to build it:
Teak distribution version 0.4 - teak-0.4.tar.gz (ftp, 567KiB)
Publications and presentations
- Posters from ASYNC2010 Teak demonstration [1] [2] [3] [4]
- Andrew Bardsley, Luis Tarazona and Doug Edwards
Teak: A Token-Flow Implementation for the Balsa Language
Proc. 9th International Conference on the Application of Concurrency to System Design
(ACSD'09), Augsburg, Germany, 1-3 July 2009, pp. 23-31.
ISBN 978-0-7695-3697-2, ISSN 1550-4808
Abstract PDF (139K) IEEE Copyright
Contact
For more information about Teak, please contact Andrew Bardsley (bardsley@cs.man.ac.uk)
Screenshots