ForSyDe::CT Namespace Reference

The namespace for CT MoC. More...

Classes

class  add
 Process constructor for a continuous-time process which adds its inputs. More...
 
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  combX
 Process constructor for a combinational process with an array of inputs and one output. More...
 
class  constant
 Process constructor for a constant source process. More...
 
class  cosine
 Helper function to construct a coasine source. More...
 
class  CT2CT
 The CT2CT signal used to inter-connect CT processes. More...
 
class  CT_in
 The CT_in port is used for input ports of CT processes. More...
 
class  CT_out
 The CT_out port is used for output ports of CT 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  fmi2cswrap
 Process constructor for a co-simulation FMU wrapper with one input and one output. More...
 
class  mul
 Process constructor for a continuous-time process which multiplies its inputs. More...
 
class  scale
 Process constructor for a continuous-time process which scales the input. More...
 
class  shift
 Process constructor for a shift element. More...
 
class  sine
 Helper function to construct a coasine source. More...
 
class  sink
 Process constructor for a sink process. More...
 
class  source
 Process constructor for a source process. More...
 
class  square
 Helper function to construct a square source. More...
 
class  sub
 Process constructor for a continuous-time process which subtracts its inputs. More...
 
class  traceSig
 Process constructor for a trace process. More...
 

Typedefs

using signal = CT2CT
 The CT::signal is an alias for CT::CT2CT.
 
using in_port = CT_in
 The CT::in_port is an alias for CT::CT_in.
 
using out_port = CT_out
 The CT::out_port is an alias for CT::CT_out.
 
typedef ForSyDe::process ct_process
 Abstract semantics of a process in the CT MoC.
 

Functions

template<class OIf , class I1If >
combmake_comb (std::string pName, typename comb::functype _func, OIf &outS, I1If &inp1S)
 Helper function to construct a comb process. More...
 
template<class OIf , class I1If , class I2If >
comb2make_comb2 (std::string pName, typename comb2::functype _func, OIf &outS, I1If &inp1S, I2If &inp2S)
 Helper function to construct a comb2 process. More...
 
template<class OIf , class IIf , std::size_t N>
combX< N > * make_combX (std::string pName, typename combX< N >::functype _func, OIf &outS, std::array< IIf, N > &inpS)
 Helper function to construct a combX process. More...
 
template<class IIf , class OIf >
delaymake_delay (std::string pName, sc_time delay_time, OIf &outS, IIf &inpS)
 Helper function to construct a delay process. More...
 
template<class IIf , class OIf >
shiftmake_shift (std::string pName, sc_time delay_time, OIf &outS, IIf &inpS)
 Helper function to construct a shift process. More...
 
template<class OIf >
constantmake_constant (std::string pName, CTTYPE init_val, sc_time end_time, OIf &outS)
 Helper function to construct a constant source process. More...
 
template<class OIf >
sourcemake_source (std::string pName, typename source::functype _func, const sc_time &end_time, OIf &outS)
 Helper function to construct a source process. More...
 
template<class IIf >
sinkmake_sink (std::string pName, typename sink::functype _func, sc_time sampling_period, IIf &inS)
 Helper function to construct a sink process. More...
 
template<class IIf >
traceSigmake_traceSig (std::string pName, sc_time sampling_period, IIf &inpS)
 Helper function to construct a traceSig process. More...
 
template<class IIf , class OIf >
fanoutmake_fanout (std::string pName, OIf &outS, IIf &inpS)
 Helper function to construct a fanout process. More...
 
template<class OIf >
sinemake_sine (std::string pName, const sc_time &endT, const sc_time &period, const CTTYPE &ampl, OIf &outS)
 Helper function to construct a sine source process. More...
 
template<class OIf >
cosinemake_cosine (std::string pName, const sc_time &endT, const sc_time &period, const CTTYPE &ampl, OIf &outS)
 Helper function to construct a cosine source process. More...
 
template<class OIf >
squaremake_square (std::string pName, const sc_time &endT, const sc_time &period, const CTTYPE &highS, const CTTYPE &lowS, const double &dutyCycle, OIf &outS)
 Helper function to construct a square source process. More...
 
template<class OIf , class IIf >
scalemake_scale (std::string pName, const CTTYPE &scaling_factor, OIf &outS, IIf &inpS)
 Helper function to construct a scale process. More...
 
template<class OIf , class IIf1 , class IIf2 >
addmake_add (std::string pName, OIf &outS, IIf1 &inp1S, IIf2 &inp2S)
 Helper function to construct an add process. More...
 
template<class OIf , class IIf1 , class IIf2 >
submake_sub (std::string pName, OIf &outS, IIf1 &inp1S, IIf2 &inp2S)
 Helper function to construct a sub process. More...
 
template<class OIf , class IIf1 , class IIf2 >
mulmake_mul (std::string pName, OIf &outS, IIf1 &inp1S, IIf2 &inp2S)
 Helper function to construct a mul process. More...
 
 SC_MODULE (gaussian)
 Process constructor for a Gaussian randome wave generator. More...
 
template<class OIf >
gaussian * make_gaussian (std::string pName, const double &gaussVar, const double &gaussMean, const sc_time sample_period, OIf &outS)
 Helper function to construct a gaussian process. More...
 
 SC_MODULE (filter)
 Process constructor for implementing a linear filter. More...
 
template<class OIf , class I1If >
filter * make_filter (std::string pName, const std::vector< CTTYPE > numerators, const std::vector< CTTYPE > denominators, const sc_time sample_period, OIf &outS, I1If &inp1S)
 Helper function to construct a linear process. More...
 
 SC_MODULE (filterf)
 Process constructor for implementing a linear filter with fixed step. More...
 
template<class OIf , class I1If >
filterf * make_filterf (std::string pName, const std::vector< CTTYPE > numerators, const std::vector< CTTYPE > denominators, const sc_time sample_period, OIf &outS, I1If &inp1S)
 Helper function to construct a linear process with fixed step size. More...
 
template<class OIf , class I1If >
filter * make_integrator (std::string pName, const sc_time sample_period, OIf &outS, I1If &inp1S)
 Helper function to construct an integrator. More...
 
template<class OIf , class I1If >
filterf * make_integratorf (std::string pName, const sc_time sample_period, OIf &outS, I1If &inp1S)
 Helper function to construct an integrator with fixed step size. More...
 
 SC_MODULE (pif)
 Process constructor for implementing a PI controller with fixed step. More...
 
template<class OIf , class I1If >
pif * make_pif (std::string pName, const CTTYPE &kp, const CTTYPE &ki, const sc_time sample_period, OIf &outS, I1If &inp1S)
 Helper function to construct a PI controller with fixed step size. More...
 
template<class OIf , class I1If >
fmi2cswrapmake_fmi2cswrap (const std::string &pName, const std::string &fmu_file, const unsigned &input_index, const unsigned &output_index, const sc_time &sample_period, OIf &outS, I1If &inp1S)
 Helper function to construct a pipewrap process. More...
 

Detailed Description

The namespace for CT MoC.

This namespace includes constructs used for building models in the continuous-time MoC.

Function Documentation

template<class OIf , class IIf1 , class IIf2 >
add* ForSyDe::CT::make_add ( std::string  pName,
OIf &  outS,
IIf1 &  inp1S,
IIf2 &  inp2S 
)
inline

Helper function to construct an add process.

This function is used to construct an adder and connect its input 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 OIf , class I1If >
comb* ForSyDe::CT::make_comb ( std::string  pName,
typename comb::functype  _func,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct a comb process.

This function is used to construct a process (SystemC module) and connect its input 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 OIf , class I1If , class I2If >
comb2* ForSyDe::CT::make_comb2 ( std::string  pName,
typename comb2::functype  _func,
OIf &  outS,
I1If &  inp1S,
I2If &  inp2S 
)
inline

Helper function to construct a comb2 process.

This function is used to construct a process (SystemC module) and connect its input 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 OIf , class IIf , std::size_t N>
combX<N>* ForSyDe::CT::make_combX ( std::string  pName,
typename combX< N >::functype  _func,
OIf &  outS,
std::array< IIf, N > &  inpS 
)
inline

Helper function to construct a combX process.

This function is used to construct a process (SystemC module) and connect its input 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 OIf >
constant* ForSyDe::CT::make_constant ( std::string  pName,
CTTYPE  init_val,
sc_time  end_time,
OIf &  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<class OIf >
cosine* ForSyDe::CT::make_cosine ( std::string  pName,
const sc_time &  endT,
const sc_time &  period,
const CTTYPE ampl,
OIf &  outS 
)
inline

Helper function to construct a cosine source process.

This function is used to construct a cosine source and connect its 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
endTThe end time of the generated signal
periodThe signal period (1/f)
amplThe signal amplitude
template<class IIf , class OIf >
delay* ForSyDe::CT::make_delay ( std::string  pName,
sc_time  delay_time,
OIf &  outS,
IIf &  inpS 
)
inline

Helper function to construct a delay process.

This function is used to construct a process (SystemC module) and connect its input 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 IIf , class OIf >
fanout* ForSyDe::CT::make_fanout ( std::string  pName,
OIf &  outS,
IIf &  inpS 
)
inline

Helper function to construct a fanout process.

This function is used to construct a fanout process (SystemC module) and connect its input 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 OIf , class I1If >
filter* ForSyDe::CT::make_filter ( std::string  pName,
const std::vector< CTTYPE numerators,
const std::vector< CTTYPE denominators,
const sc_time  sample_period,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct a linear process.

This function is used to construct a CT filter and connect its input 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
numeratorsNumerator constants
denominatorsDenominator constants
sample_periodsampling period
template<class OIf , class I1If >
filterf* ForSyDe::CT::make_filterf ( std::string  pName,
const std::vector< CTTYPE numerators,
const std::vector< CTTYPE denominators,
const sc_time  sample_period,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct a linear process with fixed step size.

This function is used to construct a CT filter and connect its input 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
numeratorsNumerator constants
denominatorsDenominator constants
sample_periodsampling period
template<class OIf , class I1If >
fmi2cswrap* ForSyDe::CT::make_fmi2cswrap ( const std::string &  pName,
const std::string &  fmu_file,
const unsigned &  input_index,
const unsigned &  output_index,
const sc_time &  sample_period,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct a pipewrap process.

This function is used to construct a pipe wrapper process (SystemC module) and connect its input 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 OIf >
gaussian* ForSyDe::CT::make_gaussian ( std::string  pName,
const double &  gaussVar,
const double &  gaussMean,
const sc_time  sample_period,
OIf &  outS 
)
inline

Helper function to construct a gaussian process.

This function is used to construct a gaussian signal generator and connect its input 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
gaussVarThe variance
gaussMeanThe mean value
sample_periodsampling period
template<class OIf , class I1If >
filter* ForSyDe::CT::make_integrator ( std::string  pName,
const sc_time  sample_period,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct an integrator.

This function is used to construct a CT integrator and connect its input 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
sample_periodsampling period
template<class OIf , class I1If >
filterf* ForSyDe::CT::make_integratorf ( std::string  pName,
const sc_time  sample_period,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct an integrator with fixed step size.

This function is used to construct a CT integrator with fixed step size and connect its input 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
sample_periodsampling period
template<class OIf , class IIf1 , class IIf2 >
mul* ForSyDe::CT::make_mul ( std::string  pName,
OIf &  outS,
IIf1 &  inp1S,
IIf2 &  inp2S 
)
inline

Helper function to construct a mul process.

This function is used to construct a multiplier and connect its input 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 OIf , class I1If >
pif* ForSyDe::CT::make_pif ( std::string  pName,
const CTTYPE kp,
const CTTYPE ki,
const sc_time  sample_period,
OIf &  outS,
I1If &  inp1S 
)
inline

Helper function to construct a PI controller with fixed step size.

This function is used to construct a PI controller with fixed step size and connect its input 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 OIf , class IIf >
scale* ForSyDe::CT::make_scale ( std::string  pName,
const CTTYPE scaling_factor,
OIf &  outS,
IIf &  inpS 
)
inline

Helper function to construct a scale process.

This function is used to construct a scale source and connect its input 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
scaling_factorThe scaling factor
template<class IIf , class OIf >
shift* ForSyDe::CT::make_shift ( std::string  pName,
sc_time  delay_time,
OIf &  outS,
IIf &  inpS 
)
inline

Helper function to construct a shift process.

This function is used to construct a process (SystemC module) and connect its input 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 OIf >
sine* ForSyDe::CT::make_sine ( std::string  pName,
const sc_time &  endT,
const sc_time &  period,
const CTTYPE ampl,
OIf &  outS 
)
inline

Helper function to construct a sine source process.

This function is used to construct a sine source and connect its 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
endTThe end time of the generated signal
periodThe signal period (1/f)
amplThe signal amplitude
template<class IIf >
sink* ForSyDe::CT::make_sink ( std::string  pName,
typename sink::functype  _func,
sc_time  sampling_period,
IIf &  inS 
)
inline

Helper function to construct a sink process.

This function is used to construct a sink (SystemC module) and connect its input 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 OIf >
source* ForSyDe::CT::make_source ( std::string  pName,
typename source::functype  _func,
const sc_time &  end_time,
OIf &  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<class OIf >
square* ForSyDe::CT::make_square ( std::string  pName,
const sc_time &  endT,
const sc_time &  period,
const CTTYPE highS,
const CTTYPE lowS,
const double &  dutyCycle,
OIf &  outS 
)
inline

Helper function to construct a square source process.

This function is used to construct a square source and connect its 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
endTThe end time of the generated signal
periodThe signal period (1/f)
highSThe signal high swing
lowSThe signal low swing
dutyCycleThe duty cycle (0 to 1)
template<class OIf , class IIf1 , class IIf2 >
sub* ForSyDe::CT::make_sub ( std::string  pName,
OIf &  outS,
IIf1 &  inp1S,
IIf2 &  inp2S 
)
inline

Helper function to construct a sub process.

This function is used to construct a subtractor and connect its input 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 IIf >
traceSig* ForSyDe::CT::make_traceSig ( std::string  pName,
sc_time  sampling_period,
IIf &  inpS 
)
inline

Helper function to construct a traceSig process.

This function is used to construct a traceSig (SystemC module) and connect its input 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.

ForSyDe::CT::SC_MODULE ( gaussian  )

Process constructor for a Gaussian randome wave generator.

This class is used to create a continuous-time signal source which produces a Random signal based on the Gaussian distribution

< port for the output channel

The constructor requires the module name and the generator parameters

< Process name

< The variance

< The mean value

< sampling period

ForSyDe::CT::SC_MODULE ( filter  )

Process constructor for implementing a linear filter.

This class is used to build a process which implements a linear in the CT MoC filter based on the numerator and denominator constants. It internally uses a DDE filter together with CT2DDE and DDE2CT MoC interfaces.

< port for the input channel

< port for the output channel;

The constructor requires the module name and the filter parameters

< Process name

< Numerator constants

< Denominator constants

< sampling period

< Minimum time step

< Tolerated error

ForSyDe::CT::SC_MODULE ( filterf  )

Process constructor for implementing a linear filter with fixed step.

This class is used to build a process which implements a linear in the CT MoC filter with fixed step based on the numerator and denominator constants. It internally uses a DDE filter together with CT2DDEf and DDE2CT MoC interfaces.

< port for the input channel

< port for the output channel;

The constructor requires the module name and the filter parameters

< Process name

< Numerator constants

< Denominator constants

< sampling period

ForSyDe::CT::SC_MODULE ( pif  )

Process constructor for implementing a PI controller with fixed step.

This class is used to build a PI controller with fixed step size based on the proportional and integral gain parameters. It internally uses a scale, an integrator and an adder.

< port for the input channel

< port for the output channel;

The constructor requires the module name and the gains

< Process name

< Numerator constants

< Denominator constants

< sampling period