The Haskell ForSyDe

ForSyDe is implemented as an  EDSL (Embedded Domain Specific Language) programming language.

Its implementation relies on many Haskell-extensions, some of which are exclusive to  GHC ( Template Haskell, for instance).

ForSyDe has been tested to run successfully on Linux, OSX-Leopard-x86 and Windows when compiled under GHC version 7.0.x.

Current Features

Two different sets of features are offered depending on the signal API used to design the system:

Deep-embedded ( ForSyDe.Signal)

Deep-embedded signals, based on the same concepts as  Lava, are aware of the system structure. Based on that structural information ForSyDe's embedded compiler, can perform different analysis and transformations.

  • Embedded compiler backends:
  • Synchronous model of computation.
  • Support for components.
  • Support for fixed-sized vectors.

Shallow-embedded ( ForSyDe.Shallow.Signal)

Shallow-embedded signals are modelled as streams of data isomorphic to lists. Systems built with them are unfortunately restricted to simulation, however, shallow-embedded signals provide a rapid-prototyping framework with which to experiment with Models of Computation (MoCs).

  • Synchronous MoC.
  • Untimed MoC.
  • Continuous Time MoC.
  • Domain Interfaces allow connecting various subsystems with different timing (domains) regardless of their MoC.

Getting the Tools

The latest version of our supporting modeling libraries and development tools can be obtained from the repository. Occasionally, there will also be releases on the download page.

Getting the Latest Version

If you would like to see how ForSyDe looks today, you can check it out directly from our repositories.

The latest version of the ForSyDe-Haskell is accessible as a  darcs repository from the following address:

Once you have darcs installed, you can get a copy of the repository by issuing:

darcs get --lazy

Downloading Packaged Releases

It is also possible to to download ForSyDe tools as packaged releases, but you may not get the newly added functionalities.

ForSyDe-Haskell packages are available via the Hackage database at:

To install the Haskell version, if you have the  Haskell Platform installed, you can issue the following commands to install ForSyDe:

cabal update
cabal install ForSyDe