Coder Social home page Coder Social logo

eedesignhouse / eteak Goto Github PK

View Code? Open in Web Editor NEW

This project forked from balangs/eteak

0.0 1.0 0.0 13.57 MB

A GALS Synthesiser for the Balsa language

Home Page: http://apt.cs.manchester.ac.uk/projects/tools/eTeak/

License: Other

Makefile 0.01% Verilog 4.09% Haskell 94.44% Shell 0.15% M4 0.02% Coq 1.31%

eteak's Introduction

NOTE: eTeak's GALS/synchronous backend is available for teaching and academic research. Please don't hesitate to contact us for more information. The current version is the asynchronous (dual-rail 4-phase RTZ) beackend and is available to public. Moreover eTeak's multiple-clock syntehsis feature is a WIP by the APT group of the University of Manchetser, UK.

#The eTeak Synthesis Framework

This is eTeak. A synchronous/asycnhronous synthesis backend for the CSP-based language of Balsa. eTeak inherits the following from its predecessor system, Teak:

  • 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

What's new about eTeak:

  • A Synchronous Elastic Dataflow backend for Balsa language
  • Adopts Synchronous Elastic Protocol (SELF)
  • Supports Synchronous, Asynchronous and Elastic protocols towards GALS synthesis
  • Inherits a powerful visualisation engine from Teak to visualise synchronous and mixed signal interactions
  • Supports De-Elastisation (From Asynchrony to Synchrony) and De-Synchronisation (From Synchrony to Asynchrony)
  • Fast growing collaboration between Academia and Industry

Despite the fact that there are many High-Level Synthesis tools developed in Academia and Industry, just a handful of them provide the source code for the researchers including LegUP and Chisel (which has been rebranded from a HLS tool to a HDL flow suitable for constructing large-scale hardware). eTeak is the first open-source framework that exploits asynchronous synthesis techniques to realise fine-grained synchronous circuits capable of running at different clock frequencies.

#Building and running Install stack

If you're building from git, first you need to

install automake autoconf libgtk2.0-dev

If you've done that or you're building from tarball, proceed to:

stack setup --upgrade-cabal

stack build 

stack exec -- eTeak --gui

=======

Download eTeak on a Virtual Machine

Please download our provided VirtualBox machine image to easily run eTeak on a Linux, Windows or Apple machine. The virtual machine is running Ubuntu 15.04 with the required packages for installing eTeak. Therefore you could either use the installed version by running stack exec -- eTeak --gui in the $HOME/Desktop/eTeak-master directory or cloning the git repository using git clone [email protected]:balangs/eTeak.git. You'd need to go through the steps above to build the stack.

Top level layout

  • NEWS
    Description of language change information for Balsa from the Balsa system verison 3.5's view of the Balsa language.
  • TODO
    A to-do/wish list for changes to this package.
  • aschem/
    ASCII art schematic interpreter
  • bin/
    Scripts to install in ${prefix}/bin
  • doc/
    Documentation
  • examples/
    Balsa examples (some including Teak run scripts) used to test `teak'
  • library/
    Balsa language libraries e.g. [teak.builtin]. Gradualy redefining the unused/simulation libraries to be newer/re-thought-out for Teak
  • runtime/
    Runtime library (runtime/verilog/: in Verilog) supporting behavioural Balsa statements in simulation
  • src/
    Source of eTeak

Acknowledgement

eTeak's synchronous (Elastic) and GALS extensions have been sponsored by EPSRC Full Research Scholarship under research grant EP/I038306/1 from 2012 to 2015 and EPSRC Doctoral Prize Fellowship 2015/15.

References Publications

  • Mahdi Jelodari Mamaghani, Milos Krtic, Jim Garside, "Automatic Clock (AutoCLK): A Promising Approach Towards GALSification," In Proc. of 22nd IEEE International Symposium on Asynchronous Circuits and Systems (ASYNC), May 2016.
  • Mahdi Jelodari Mamaghani, Danil Sokolov, Jim Garside, "Asynchronous Dataflow De-Elastisation for Efficient Heterogeneous Synthesis," In Proc. of the 16th International Conference on Application of Concurrency to System Design (ACSD), Poland, June 2016.
  • Mahdi Jelodari Mamaghani, Jim Garside, Doug Edwards, "De-Elastisation: From Asynchronous Dataflows to Synchronous Circuits," (to appear) IEEE/ACM conference on Design Automation and Test in Europe (DATE), March 2015, Gernoble, France. [DATE Best IP Award Winner].
  • Mahdi Jelodari Mamaghani, Jim Garside, Will Toms, Doug Edwards, "Optimised Synthesis of Asynchronous Elastic Dataflows by Leveraging Clocked EDA," The Euromicro Conference on Digital System Design (DSD), August 2014, Verona, Italy.
  • Mahdi Jelodari Mamaghani, Will Toms, Andrew Bardsley, Jim Garside, "Exploiting Synchrony for Area and Performance Improvement in the Asynchronous Domain," Intl. Symposium on Asynchronous Circuits and Systems (ASYNC), May 2014, Potsdam, Germany.
  • Mahdi Jelodari Mamaghani, Jim Garside, "High-level Synthesis of GALS Systems," Workshop on Designing with Uncertainty - Opportunities and Challenges (PAnDA), March 2014, York ,UK.
  • Mahdi Jelodari Mamaghani, Will Toms, Jim Garside, "eTeak: A Data-Driven Synchronous Elastic Synthesiser," Intl. Conference on Application of Concurrency to System Design (ACSD), July 2013, Barcelona, Spain.

eteak's People

Contributors

joshbohde avatar mahdi89 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.