<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >ForSyDe.Shallow.SynchronousProcessLib</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_ForSyDe-Shallow-SynchronousProcessLib.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.</TD ><TD CLASS="topbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >ForSyDe.Shallow.SynchronousProcessLib</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >forsyde-dev@ict.kth.se</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >The synchronous process library defines processes for the synchronous computational model. It is based on the synchronous library <A HREF="ForSyDe-Shallow-SynchronousLib.html" >ForSyDe.Shallow.SynchronousLib</A >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AfifoDelaySY" >fifoDelaySY</A > :: <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > [a] -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfiniteFifoDelaySY" >finiteFifoDelaySY</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > [a] -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmemorySY" >memorySY</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmergeSY" >mergeSY</A > :: <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgroupSY" >groupSY</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > (<A HREF="ForSyDe-Shallow-Vector.html#t%3AVector" >Vector</A > a))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcounterSY" >counterSY</A > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AEnum" >Enum</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a) => a -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:fifoDelaySY" ><A NAME="v%3AfifoDelaySY" ></A ></A ><B >fifoDelaySY</B > :: <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > [a] -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html#fifoDelaySY" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The process <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AfifoDelaySY" >fifoDelaySY</A ></TT > implements a synchronous model of a FIFO with infinite size. The FIFOs take a list of values at each event cycle and output one value. There is a delay of one cycle. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:finiteFifoDelaySY" ><A NAME="v%3AfiniteFifoDelaySY" ></A ></A ><B >finiteFifoDelaySY</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > [a] -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html#finiteFifoDelaySY" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The process <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AfiniteFifoDelaySY" >finiteFifoDelaySY</A ></TT > implements a FIFO with finite size. The FIFOs take a list of values at each event cycle and output one value. There is a delay of one cycle. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:memorySY" ><A NAME="v%3AmemorySY" ></A ></A ><B >memorySY</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html#memorySY" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The process <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AmemorySY" >memorySY</A ></TT > implements a synchronous memory. It uses access functions of the type 'Read adr' and 'Write adr value'. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:mergeSY" ><A NAME="v%3AmergeSY" ></A ></A ><B >mergeSY</B > :: <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a) -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a)</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html#mergeSY" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The process <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AmergeSY" >mergeSY</A ></TT > merges two input signals into a single signal. The process has an internal buffer in order to prevent loss of data. The process is deterministic and outputs events according to their time tag. If there are two valid values at on both signals. The value of the first signal is output first. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:groupSY" ><A NAME="v%3AgroupSY" ></A ></A ><B >groupSY</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > (<A HREF="ForSyDe-Shallow-Vector.html#t%3AVector" >Vector</A > a))</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html#groupSY" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AgroupSY" >groupSY</A ></TT > groups values into a vector of size n, which takes n cycles. While the grouping takes place the output from this process consists of absent values. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:counterSY" ><A NAME="v%3AcounterSY" ></A ></A ><B >counterSY</B > :: (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AEnum" >Enum</A > a, <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > a) => a -> a -> <A HREF="ForSyDe-Shallow-Signal.html#t%3ASignal" >Signal</A > a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-SynchronousProcessLib.html#counterSY" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The process <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AcounterSY" >counterSY</A ></TT > implements a counter, that counts from min to max. The process <TT ><A HREF="ForSyDe-Shallow-SynchronousProcessLib.html#v%3AcounterSY" >counterSY</A ></TT > has no input and its output is an infinite signal. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >