[Haskell] ANN: Haskell-Embedded System Design: ForSyDe 3.0 and Tutorial

Alfonso Acosta alfonso.acosta at gmail.com
Wed Oct 1 07:29:38 EDT 2008

Hi everyone,

I am glad to announce the 3.0 release of ForSyDe's implementation, now
available from HackageDB.

The ForSyDe (Formal System Design) methodology has been developed with
the objective to move system design (e.g. System on Chip, Hardware and
Software systems) to a higher level of abstraction.

ForSyDe is implemented as a Haskell-embedded behavioral DSL (Domain
Specific Language).

>From this release, ForSyDe includes a new deep-embedded DSL and
embedded compiler. We have also published tutorial which should be
much more user-friendly than the Haddock documentation and the ForSyDe
research papers.

ForSyDe includes two DSL flavours  which offer different features:

  1) Deep-embedded DSL (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
        o Thanks to Template Haskell, computations are expressed in
           Haskell, not needing to specifically design a DSL for that
        o Embedded compiler backends:
              + Simulation
              + VHDL (with support for Modelsim and Quartus II)
              + GraphML (with yFiles graphical markup support.)
        o Synchronous model of computation.
        o Support for components.
        o Support for fixed-sized vectors à la VHDL.

  2) Shallow-embedded DSL (ForSyDe.Shallow.Signal)

    Shallow-embedded signals are modeled 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).
        o Synchronous MoC.
        o Untimed MoC.
        o Continuous Time MoC.
        o Domain Interfaces allow connecting various subsystems
           with different timing (domains) regardless of their MoC.
        o Deep-embedded models can be integrated through

ForSyDe website:
ForSyDe tutorial:
HackageDB package page:
Darcs repository: darcs get

More information about the Haskell mailing list