ForSyDe::SDF Namespace Reference

The namespace for synchronous dataflow MoC. More...

Classes

class  comb
 Process constructor for a combinational process (actor) with one input and one output. More...
 
class  comb2
 Process constructor for a combinational process with two inputs and one output. More...
 
class  comb3
 Process constructor for a combinational process with two inputs and one output. More...
 
class  comb4
 Process constructor for a combinational process with two inputs and one output. More...
 
class  constant
 Process constructor for a constant source process. More...
 
class  delay
 Process constructor for a delay element. More...
 
class  delayn
 Process constructor for a n-delay element. More...
 
class  fanout
 Process constructor for a fan-out process with one input and one output. More...
 
class  file_sink
 Process constructor for a file_sink process. More...
 
class  file_source
 Process constructor for a file_source process. More...
 
class  printSigs
 Process constructor for a multi-input print process. More...
 
class  SDF2SDF
 The SDF2SDF signal used to inter-connect SDF processes. More...
 
class  sink
 Process constructor for a sink process. More...
 
class  source
 Process constructor for a source process. More...
 
class  unzip
 The unzip process with one input and two outputs. More...
 
class  unzipN
 The unzip process with one input and variable number of outputs. More...
 
class  vsource
 Process constructor for a source process with vector input. More...
 
class  zip
 The zip process with two inputs and one output. More...
 
class  zipN
 The zip process with variable number of inputs and one output. More...
 

Typedefs

template<typename T >
using signal = SDF2SDF< T >
 The SDF::signal is an alias for SDF::SDF2SDF.
 
template<typename T >
using SDF_in = UT::UT_in< T >
 The SY_in port is used for input ports of SY processes.
 
template<typename T >
using in_port = SDF_in< T >
 The SDF::in_port is an alias for SDF::SDF_in.
 
template<typename T >
using SDF_out = UT::UT_out< T >
 The SY_out port is used for output ports of SY processes.
 
template<typename T >
using out_port = SDF_out< T >
 The SDF::out_port is an alias for SDF::SDF_out.
 
typedef ForSyDe::process sdf_process
 Abstract semantics of a process in the SY MoC.
 

Functions

template<class T0 , template< class > class OIf, class T1 , template< class > class I1If>
comb< T0, T1 > * make_comb (std::string pName, typename comb< T0, T1 >::functype _func, unsigned int o1toks, unsigned int i1toks, OIf< T0 > &outS, I1If< T1 > &inp1S)
 Helper function to construct a comb process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If>
comb2< T0, T1, T2 > * make_comb2 (std::string pName, typename comb2< T0, T1, T2 >::functype _func, unsigned int o1toks, unsigned int i1toks, unsigned int i2toks, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S)
 Helper function to construct a comb2 process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If, class T3 , template< class > class I3If>
comb3< T0, T1, T2, T3 > * make_comb3 (std::string pName, typename comb3< T0, T1, T2, T3 >::functype _func, unsigned int o1toks, unsigned int i1toks, unsigned int i2toks, unsigned int i3toks, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S, I3If< T3 > &inp3S)
 Helper function to construct a comb3 process. More...
 
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If, class T3 , template< class > class I3If, class T4 , template< class > class I4If>
comb4< T0, T1, T2, T3, T4 > * make_comb4 (std::string pName, typename comb4< T0, T1, T2, T3, T4 >::functype _func, unsigned int o1toks, unsigned int i1toks, unsigned int i2toks, unsigned int i3toks, unsigned int i4toks, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S, I3If< T3 > &inp3S, I4If< T4 > &inp4S)
 Helper function to construct a comb4 process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
delay< T > * make_delay (std::string pName, T initval, OIf< T > &outS, IIf< T > &inpS)
 Helper function to construct a delay process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
delayn< T > * make_delayn (std::string pName, T initval, unsigned int n, OIf< T > &outS, IIf< T > &inpS)
 Helper function to construct a delayn process. More...
 
template<class T , template< class > class OIf>
constant< T > * make_constant (std::string pName, T initval, unsigned long long take, OIf< T > &outS)
 Helper function to construct a constant source process. More...
 
template<class T , template< class > class OIf>
source< T > * make_source (std::string pName, typename source< T >::functype _func, T initval, unsigned long long take, OIf< T > &outS)
 Helper function to construct a source process. More...
 
template<class T , template< class > class OIf>
file_source< T > * make_file_source (std::string pName, typename file_source< T >::functype _func, std::string file_name, OIf< T > &outS)
 Helper function to construct a file_source process. More...
 
template<class T , template< class > class OIf>
vsource< T > * make_vsource (const std::string &pName, const std::vector< T > &in_vec, OIf< T > &outS)
 Helper function to construct a vector source process. More...
 
template<class T , template< class > class IIf>
sink< T > * make_sink (std::string pName, typename sink< T >::functype _func, IIf< T > &inS)
 Helper function to construct a sink process. More...
 
template<class T , template< class > class IIf>
file_sink< T > * make_file_sink (std::string pName, typename file_sink< T >::functype _func, std::string file_name, IIf< T > &inS)
 Helper function to construct a file_sink process. More...
 
template<class T1 , template< class > class I1If, class T2 , template< class > class I2If, template< class > class OIf>
zip< T1, T2 > * make_zip (std::string pName, unsigned int i1toks, unsigned int i2toks, OIf< std::tuple< std::vector< T1 >, std::vector< T2 >>> &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S)
 Helper function to construct a zip process. More...
 
template<template< class > class IIf, class T1 , template< class > class O1If, class T2 , template< class > class O2If>
unzip< T1, T2 > * make_unzip (std::string pName, IIf< std::tuple< std::vector< T1 >, std::vector< T2 >>> &inpS, unsigned int o1toks, unsigned int o2toks, O1If< T1 > &out1S, O2If< T2 > &out2S)
 Helper function to construct an unzip process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
fanout< T > * make_fanout (std::string pName, OIf< T > &outS, IIf< T > &inpS)
 Helper function to construct an unzipN process. More...
 

Detailed Description

The namespace for synchronous dataflow MoC.

This namespace includes constructs used for building models in the synchronous dataflow MoC.

Function Documentation

template<class T0 , template< class > class OIf, class T1 , template< class > class I1If>
comb<T0,T1>* ForSyDe::SDF::make_comb ( std::string  pName,
typename comb< T0, T1 >::functype  _func,
unsigned int  o1toks,
unsigned int  i1toks,
OIf< T0 > &  outS,
I1If< T1 > &  inp1S 
)
inline

Helper function to construct a comb process.

This function is used to construct a process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

Parameters
pNameprocess name
_funcfunction to be passed
o1toksconsumption rate for the first output
i1toksconsumption rate for the first input
outSthe first output signal
inp1Sthe first input signal
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If>
comb2<T0,T1,T2>* ForSyDe::SDF::make_comb2 ( std::string  pName,
typename comb2< T0, T1, T2 >::functype  _func,
unsigned int  o1toks,
unsigned int  i1toks,
unsigned int  i2toks,
OIf< T0 > &  outS,
I1If< T1 > &  inp1S,
I2If< T2 > &  inp2S 
)
inline

Helper function to construct a comb2 process.

This function is used to construct a process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

Parameters
pNameprocess name
_funcfunction to be passed
o1toksconsumption rate for the first output
i1toksconsumption rate for the first input
i2toksconsumption rate for the second input
outSthe first output signal
inp1Sthe first input signal
inp2Sthe second input signal
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If, class T3 , template< class > class I3If>
comb3<T0,T1,T2,T3>* ForSyDe::SDF::make_comb3 ( std::string  pName,
typename comb3< T0, T1, T2, T3 >::functype  _func,
unsigned int  o1toks,
unsigned int  i1toks,
unsigned int  i2toks,
unsigned int  i3toks,
OIf< T0 > &  outS,
I1If< T1 > &  inp1S,
I2If< T2 > &  inp2S,
I3If< T3 > &  inp3S 
)
inline

Helper function to construct a comb3 process.

This function is used to construct a process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

Parameters
pNameprocess name
_funcfunction to be passed
o1toksconsumption rate for the first output
i1toksconsumption rate for the first input
i2toksconsumption rate for the second input
i3toksconsumption rate for the third input
outSthe first output signal
inp1Sthe first input signal
inp2Sthe second input signal
inp3Sthe third input signal
template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If, class T3 , template< class > class I3If, class T4 , template< class > class I4If>
comb4<T0,T1,T2,T3,T4>* ForSyDe::SDF::make_comb4 ( std::string  pName,
typename comb4< T0, T1, T2, T3, T4 >::functype  _func,
unsigned int  o1toks,
unsigned int  i1toks,
unsigned int  i2toks,
unsigned int  i3toks,
unsigned int  i4toks,
OIf< T0 > &  outS,
I1If< T1 > &  inp1S,
I2If< T2 > &  inp2S,
I3If< T3 > &  inp3S,
I4If< T4 > &  inp4S 
)
inline

Helper function to construct a comb4 process.

This function is used to construct a process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

Parameters
pNameprocess name
_funcfunction to be passed
o1toksconsumption rate for the first output
i1toksconsumption rate for the first input
i2toksconsumption rate for the second input
i3toksconsumption rate for the third input
i4toksconsumption rate for the fourth input
outSthe first output signal
inp1Sthe first input signal
inp2Sthe second input signal
inp3Sthe third input signal
inp4Sthe fourth input signal
template<class T , template< class > class OIf>
constant<T>* ForSyDe::SDF::make_constant ( std::string  pName,
initval,
unsigned long long  take,
OIf< T > &  outS 
)
inline

Helper function to construct a constant source process.

This function is used to construct a constant (SystemC module) and connect its output signal. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the output FIFOs.

template<typename T , template< class > class IIf, template< class > class OIf>
delay<T>* ForSyDe::SDF::make_delay ( std::string  pName,
initval,
OIf< T > &  outS,
IIf< T > &  inpS 
)
inline

Helper function to construct a delay process.

This function is used to construct a process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

template<typename T , template< class > class IIf, template< class > class OIf>
delayn<T>* ForSyDe::SDF::make_delayn ( std::string  pName,
initval,
unsigned int  n,
OIf< T > &  outS,
IIf< T > &  inpS 
)
inline

Helper function to construct a delayn process.

This function is used to construct a process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

template<typename T , template< class > class IIf, template< class > class OIf>
fanout<T>* ForSyDe::SDF::make_fanout ( std::string  pName,
OIf< T > &  outS,
IIf< T > &  inpS 
)
inline

Helper function to construct an unzipN process.

This function is used to construct an unzipN process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input FIFOs.Helper function to construct a fanout process

This function is used to construct a fanout process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input and output FIFOs.

template<class T , template< class > class IIf>
file_sink<T>* ForSyDe::SDF::make_file_sink ( std::string  pName,
typename file_sink< T >::functype  _func,
std::string  file_name,
IIf< T > &  inS 
)
inline

Helper function to construct a file_sink process.

This function is used to construct a file_sink (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input FIFOs.

template<class T , template< class > class OIf>
file_source<T>* ForSyDe::SDF::make_file_source ( std::string  pName,
typename file_source< T >::functype  _func,
std::string  file_name,
OIf< T > &  outS 
)
inline

Helper function to construct a file_source process.

This function is used to construct a file_source (SystemC module) and connect its output signal. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the output FIFOs.

template<class T , template< class > class IIf>
sink<T>* ForSyDe::SDF::make_sink ( std::string  pName,
typename sink< T >::functype  _func,
IIf< T > &  inS 
)
inline

Helper function to construct a sink process.

This function is used to construct a sink (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input FIFOs.

template<class T , template< class > class OIf>
source<T>* ForSyDe::SDF::make_source ( std::string  pName,
typename source< T >::functype  _func,
initval,
unsigned long long  take,
OIf< T > &  outS 
)
inline

Helper function to construct a source process.

This function is used to construct a source (SystemC module) and connect its output signal. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the output FIFOs.

template<template< class > class IIf, class T1 , template< class > class O1If, class T2 , template< class > class O2If>
unzip<T1,T2>* ForSyDe::SDF::make_unzip ( std::string  pName,
IIf< std::tuple< std::vector< T1 >, std::vector< T2 >>> &  inpS,
unsigned int  o1toks,
unsigned int  o2toks,
O1If< T1 > &  out1S,
O2If< T2 > &  out2S 
)
inline

Helper function to construct an unzip process.

This function is used to construct an unzip process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input FIFOs.

template<class T , template< class > class OIf>
vsource<T>* ForSyDe::SDF::make_vsource ( const std::string &  pName,
const std::vector< T > &  in_vec,
OIf< T > &  outS 
)
inline

Helper function to construct a vector source process.

This function is used to construct a vector source (SystemC module) and connect its output signal. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the output FIFOs.

template<class T1 , template< class > class I1If, class T2 , template< class > class I2If, template< class > class OIf>
zip<T1,T2>* ForSyDe::SDF::make_zip ( std::string  pName,
unsigned int  i1toks,
unsigned int  i2toks,
OIf< std::tuple< std::vector< T1 >, std::vector< T2 >>> &  outS,
I1If< T1 > &  inp1S,
I2If< T2 > &  inp2S 
)
inline

Helper function to construct a zip process.

This function is used to construct a zip process (SystemC module) and connect its output and output signals. It provides a more functional style definition of a ForSyDe process. It also removes bilerplate code by using type-inference feature of C++ and automatic binding to the input FIFOs.