ForSyDe::DDE Namespace Reference

The namespace for DDE MoC. More...

Classes

class  comb
 Process constructor for a combinational process with one input and one output. More...
 
class  comb2
 Process constructor for a combinational process with two inputs and one output. More...
 
class  DDE2DDE
 The DDE2DDE signal used to inter-connect DDE processes. More...
 
class  DDE_in
 The DDE_in port is used for input ports of DDE processes. More...
 
class  DDE_out
 The DDE_out port is used for output ports of DDE processes. More...
 
class  delay
 Process constructor for a delay element. More...
 
class  fanout
 Process constructor for a fan-out process with one input and one output. More...
 
class  filter
 Process constructor for implementing a linear filter. More...
 
class  filterf
 Process constructor for implementing a linear filter with fixed step size. More...
 
class  mealy
 Process constructor for a Mealy machine. More...
 
class  mealy2
 Process constructor for a Mealy machine with two inputs. 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  unzipX
 The unzipX process with a vector of outputs and one input. 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  zipX
 The zipX process with a vector of inputs and one output. More...
 

Typedefs

template<typename T >
using signal = DDE2DDE< T >
 The DDE::signal is an alias for DDE::DDE2DDE.
 
template<typename T >
using in_port = DDE_in< T >
 The DDE::in_port is an alias for DDE::DDE_in.
 
template<typename T >
using out_port = DDE_out< T >
 The DDE::out_port is an alias for DDE::DDE_out.
 
typedef ForSyDe::process dde_process
 Abstract semantics of a process in the DDE 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, 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, OIf< T0 > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S)
 Helper function to construct a comb2 process. More...
 
template<typename T , template< class > class IIf, template< class > class OIf>
delay< T > * make_delay (std::string pName, abst_ext< T > initval, sc_time delay_time, OIf< T > &outS, IIf< T > &inpS)
 Helper function to construct a delay process. More...
 
template<typename IT , typename ST , typename OT , template< class > class IIf, template< class > class OIf>
mealy< IT, ST, OT > * make_mealy (const std::string &pName, const typename mealy< IT, ST, OT >::ns_functype &_ns_func, const typename mealy< IT, ST, OT >::od_functype &_od_func, const ST &init_st, const sc_time &delay_time, OIf< OT > &outS, IIf< IT > &inpS)
 
template<typename IT1 , typename IT2 , typename ST , typename OT , template< class > class IIf1, template< class > class IIf2, template< class > class OIf>
mealy2< IT1, IT2, ST, OT > * make_mealy2 (const std::string &pName, const typename mealy2< IT1, IT2, ST, OT >::ns_functype &_ns_func, const typename mealy2< IT1, IT2, ST, OT >::od_functype &_od_func, const ST &init_st, const sc_time &delay_time, OIf< OT > &outS, IIf1< IT1 > &inpS1, IIf2< IT2 > &inpS2)
 
template<class T , template< class > class OIf>
source< T > * make_source (std::string pName, typename source< T >::functype _func, ttn_event< T > initval, unsigned long long take, OIf< T > &outS)
 Helper function to construct a source process. More...
 
template<class T , template< class > class OIf>
vsource< T > * make_vsource (std::string pName, const std::vector< T > &values, const std::vector< sc_time > &offsets, OIf< T > &outS)
 Helper function to construct a vsource 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 T1 , template< class > class I1If, class T2 , template< class > class I2If, template< class > class OIf>
zip< T1, T2 > * make_zip (std::string pName, OIf< std::tuple< abst_ext< T1 >, abst_ext< T2 >> > &outS, I1If< T1 > &inp1S, I2If< T2 > &inp2S)
 Helper function to construct a zip process. More...
 
template<class T1 , std::size_t N, template< class > class OIf>
zipX< T1, N > * make_zipX (std::string pName, OIf< std::array< abst_ext< T1 >, N > > &outS)
 Helper function to construct a zipX 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< abst_ext< T1 >, abst_ext< T2 >> > &inpS, O1If< T1 > &out1S, O2If< T2 > &out2S)
 Helper function to construct an unzip process. More...
 
template<template< class > class IIf, class T1 , std::size_t N>
unzipX< T1, N > * make_unzipX (const std::string &pName, IIf< std::array< abst_ext< T1 >, N >> &inpS)
 Helper function to construct an unzipX 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 a fanout process. More...
 

Detailed Description

The namespace for DDE MoC.

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

Function Documentation

template<class T0 , template< class > class OIf, class T1 , template< class > class I1If>
comb<T0,T1>* ForSyDe::DDE::make_comb ( std::string  pName,
typename comb< T0, T1 >::functype  _func,
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.

template<class T0 , template< class > class OIf, class T1 , template< class > class I1If, class T2 , template< class > class I2If>
comb2<T0,T1,T2>* ForSyDe::DDE::make_comb2 ( std::string  pName,
typename comb2< T0, T1, T2 >::functype  _func,
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.

template<typename T , template< class > class IIf, template< class > class OIf>
delay<T>* ForSyDe::DDE::make_delay ( std::string  pName,
abst_ext< T >  initval,
sc_time  delay_time,
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>
fanout<T>* ForSyDe::DDE::make_fanout ( std::string  pName,
OIf< T > &  outS,
IIf< T > &  inpS 
)
inline

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<typename IT , typename ST , typename OT , template< class > class IIf, template< class > class OIf>
mealy<IT,ST,OT>* ForSyDe::DDE::make_mealy ( const std::string &  pName,
const typename mealy< IT, ST, OT >::ns_functype &  _ns_func,
const typename mealy< IT, ST, OT >::od_functype &  _od_func,
const ST &  init_st,
const sc_time &  delay_time,
OIf< OT > &  outS,
IIf< IT > &  inpS 
)
inline

This function is used to construct a mealy 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 IT1 , typename IT2 , typename ST , typename OT , template< class > class IIf1, template< class > class IIf2, template< class > class OIf>
mealy2<IT1,IT2,ST,OT>* ForSyDe::DDE::make_mealy2 ( const std::string &  pName,
const typename mealy2< IT1, IT2, ST, OT >::ns_functype &  _ns_func,
const typename mealy2< IT1, IT2, ST, OT >::od_functype &  _od_func,
const ST &  init_st,
const sc_time &  delay_time,
OIf< OT > &  outS,
IIf1< IT1 > &  inpS1,
IIf2< IT2 > &  inpS2 
)
inline

This function is used to construct a mealy2 process (SystemC module) with two inputs 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>
sink<T>* ForSyDe::DDE::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::DDE::make_source ( std::string  pName,
typename source< T >::functype  _func,
ttn_event< T >  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::DDE::make_unzip ( std::string  pName,
IIf< std::tuple< abst_ext< T1 >, abst_ext< T2 >> > &  inpS,
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<template< class > class IIf, class T1 , std::size_t N>
unzipX<T1,N>* ForSyDe::DDE::make_unzipX ( const std::string &  pName,
IIf< std::array< abst_ext< T1 >, N >> &  inpS 
)
inline

Helper function to construct an unzipX process.

This function is used to construct an unzipX process (SystemC module) and connect its input signal. The user binds the outputs manually. 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::DDE::make_vsource ( std::string  pName,
const std::vector< T > &  values,
const std::vector< sc_time > &  offsets,
OIf< T > &  outS 
)
inline

Helper function to construct a vsource 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.

Parameters
pNamethe module name
valuesevent values
offsetsevent offsets
template<class T1 , template< class > class I1If, class T2 , template< class > class I2If, template< class > class OIf>
zip<T1,T2>* ForSyDe::DDE::make_zip ( std::string  pName,
OIf< std::tuple< abst_ext< T1 >, abst_ext< 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.

template<class T1 , std::size_t N, template< class > class OIf>
zipX<T1,N>* ForSyDe::DDE::make_zipX ( std::string  pName,
OIf< std::array< abst_ext< T1 >, N > > &  outS 
)
inline

Helper function to construct a zipX process.

This function is used to construct a zip process (SystemC module) and connect its output signal. The user binds the inputs manually. 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.