ANN: Haskell-Embedded System Design: ForSyDe 3.0 and Tutorial
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
>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
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:
+ 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