On this page we tried gathering many of the ForSyDe documents (e.g. technical reports, tutorials, API documentations) scattered across the internet and grouping them by relevant topics. The purpose is to point to and help the interested reader to reach whatever information she might need without much hassle. As a general rule, here you find tool-oriented documentation. For associated scientific publications, please check our Publications page.
Design of Systems
Here we point to documentations on tools and frameworks for design-related activities, such as modeling, simulation, testing, etc.
General
These documents present a general view of ForSyDe modeling and/or go through multiple design frameworks and compares them.
-
The ForSyDe chapter in the “Handbook of Hardware/Software Codesign” ( doi | pdf-url | ref | bib ) is a slightly outdated but highly relevant introduction to ForSyDe modeling using different models of computation (MoC). It covers (a bit of) the basic ForSyDe principles, modeling, simulation, hardware synthesis and visualization and it introduces the ForSyDe-Shallow, ForSyDe-Deep and ForSyDe-SystemC frameworks.
-
Design of Sensor Signal Processing with ForSyDe ( pdf | html | doi ) is a detailed technical report which teaches more advanced modeling techniques by going step-by-step through modeling, executing, formulating properties, testing, refining, (partially) synthesizing and co-simulating a radar signal processing system. It is a living document built in a literate programming style from this source project and as modeling frameworks it uses ForSyDe-Atom, ForSyDe-Shallow and ForSyDe-Deep.
-
Ingo Sander’s PhD Thesis ( urn | pdf ) contains the original ideas behind the ForSyDe methodology. Although ForSyDe as an ecosystem evolved much during the last two decades, the thesis still reads well as a “manual” on process constructor-based modeling concepts, especially chapter 2 (Background) which contains a tutorial on Haskell1 for the new users. The examples presented in the thesis are given in ForSyDe-Shallow.
ForSyDe-Shallow
These documents use ForSyDe-Shallow as base framework.
-
The ForSyDe-Shallow Getting Started Tutorial introduces basic modeling concepts such as signals, processes and process constructors and guides through modeling and simulating a simple counter system.
-
The Examples Repository contains a couple of tutorial examples, where the best documentation is the source code itself. Check the repository’s
README
file for how to generate the code documentation. -
An Equalizer Example, extracted from Ingo Sander’s PhD Thesis, shows how to use ForSyDe-Shallow in order to design and simulate an equalizer system.
-
A (rather old) example on how to model an ASK transceiver system which has been re-compiled for the newest ForSyDe-Shallow library version. Except for the installation instructions, the document remains highly relevant.
-
The online API documentation for the ForSyDe-Shallow library is indispensable once you start using the framework.
ForSyDe-Atom
These documents use ForSyDe-Atom as base framework.
-
The ForSyDe-Atom User Manual is a living document written in literate programming style which bundles together a couple of detailed tutorials and use cases along with the library API documentation.
-
The API documentation is written very much in a “manual” style and gives details about library design decisions, formulations, specific uses and test cases.
ForSyDe-SystemC
These documents use ForSyDe-SystemC as base framework.
-
The SY MoC Tutorial is a small example of modeling a synchronous process network in ForSyDe-SystemC.
-
The SDF MoC Tutorial is an example of up/down sampler modeled in the synchronous data flow MoC in ForSyDe-SystemC.
-
The CT MoC Tutorial is an example of a low-pass filter modeled in the continuous time MoC in ForSyDe-SystemC.
-
The API documentation was generated with Doxygen.
Design Space Exploration
These documents refer to the DeSyDe design space exploration tool.
-
The Getting Started with DeSyDe tutorial guides the reader how to write the DeSyDe XML input files for specifying the applications, constraints and platform models in order to enable design space exploration.
-
The examples folder in the DeSyDe source repository contain a few examples and case studies used for different papers.
Synthesis
-
The Getting Started with ForSyDe-Deep tutorial goes through designing and synthesizing to FPGA a simple counter example from a ForSyDe-Deep synchronous model.
-
A more advanced tutoial goes through more advanced uses of ForSyDe-Deep, such as internal structure visualization, co-simulation and generation for different backends, as well as a dedicated tutorial on using fixed-size vectors.
-
The ForSyDe chapter in the “Handbook of Hardware/Software Codesign” ( doi | pdf-url | ref | bib ) contains a section on using ForSyDe-Deep.
-
Design of Sensor Signal Processing with ForSyDe ( pdf | html | doi ) has a chapter dedicated to refining and synthesizing ForSyDe models using ForSyDe-Deep.
-
f2cc usage tutorial presents the main ideas and usage of the ForSyDe-to-CUDA C tool.
Plotting and Visualization
-
The ForSyDe-LaTeX User Manual documents our in-house ForSyDe-LaTeX package used for drawing graphs, plots, formulas and general-purpose figures used in ForSyDe documents.
-
The f2dot tutorial shows how to use the f2dot tool to plot ForSyDe-XML and SDF3 application files.
-
The Getting Started chapter in ForSyDe-Atom User Manual has a hands-on section on how to plot ForSyDe-Atom signals using either ForSyDe-LaTeX or the gnuplot engine.
Footnotes
-
Haskell is the host language behind ForSyDe-Shallow and ForSyDe-Deep, ForSyDe-Atom and Reactive-GPAC ↩