sy_process_constructors_strict.hpp
Go to the documentation of this file.
641 #ifdef FORSYDE_OPENMP // this can be enhanced with the new delare reduction clause in OpenMP 4.0
1773 WRITE_MULTIPORT(oport[i],abst_ext<T1>(in_val->unsafe_from_abst_ext()[i])) // write to the output i
std::function< void(ST &, const ST &, const IT &)> ns_functype
Type of the next-state function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:950
std::function< void(T &, const T &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:1242
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:75
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1549
SY_in< std::array< T1, N > > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:511
SY_in< T > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:787
T unsafe_from_abst_ext() const
Unsafely converts a value from an extended value assuming it is present.
Definition: abst_ext.hpp:54
Process constructor for a strict Moore machine.
Definition: sy_process_constructors_strict.hpp:943
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:534
Process constructor for a strict delay element.
Definition: sy_process_constructors_strict.hpp:784
SY_in< T > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:1917
std::function< void(T0 &, const T1 &, const T2 &, const T3 &, const T4 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:329
scomb3(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:236
std::array< SY_in< T1 >, N > iport
port array for the input channels
Definition: sy_process_constructors_strict.hpp:1536
The strict unzip process with one input and two outputs.
Definition: sy_process_constructors_strict.hpp:1674
std::function< void(T0 &, const T1 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:515
SY_out< T > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:866
sdpmap(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:522
std::array< SY_in< T1 >, N > iport
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:428
ssink(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1404
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:615
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1191
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1095
The strict group process with one input and one output.
Definition: sy_process_constructors_strict.hpp:1914
SY_out< T > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1167
svsource(const sc_module_name &_name, const std::vector< T > &in_vec)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1335
scomb2(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:145
SY_out< OT > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:947
A data-parallel process constructor for a strict reduce process with an array of inputs and one outpu...
Definition: sy_process_constructors_strict.hpp:589
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:725
SY_in< std::tuple< T1, T2 > > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:1677
ssource(const sc_module_name &_name, const functype &_func, const T &init_val, const unsigned long long &take=0)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1248
sunzipN(const sc_module_name &_name)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1807
szipN(const sc_module_name &_name)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1603
sconstant(const sc_module_name &_name, const T &init_val, const unsigned long long &take=0)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1173
Implements the Absent-extended values.
SY_out< T0 > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:225
SY_out< T > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1239
SY_in< T2 > iport2
port for the input channel 2
Definition: sy_process_constructors_strict.hpp:223
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1347
SY_in< T1 > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:51
scomb(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:62
std::function< void(T0 &, const T1 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:55
SY_in< T4 > iport4
port for the input channel 4
Definition: sy_process_constructors_strict.hpp:324
SY_in< T1 > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:1466
SY_in< T1 > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:222
std::function< void(OT &, const ST &, const IT &)> od_functype
Type of the output-decoding function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:1069
The strict zip process with two inputs and one output.
Definition: sy_process_constructors_strict.hpp:1463
smoore(const sc_module_name &_name, const ns_functype &_ns_func, const od_functype &_od_func, const ST &init_st)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:960
SY_out< T > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1329
SY_out< T0 > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:429
SY_out< T0 > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:135
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1480
SY_in< IT > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:946
SY_out< std::array< T0, N > > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:699
SY_out< std::tuple< T1, T2 > > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1468
SY_out< T > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:788
szipX(const sc_module_name &_name)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1543
A data-parallel process constructor for a strict scan process with input and output array types...
Definition: sy_process_constructors_strict.hpp:695
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:249
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1938
Implements the abstract process in the synchronous Model of Computation.
A data-parallel process constructor for a strict combinational process with input and output array ty...
Definition: sy_process_constructors_strict.hpp:508
The strict zipX process with an array of inputs and one output.
Definition: sy_process_constructors_strict.hpp:1533
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1269
sdelayn(const sc_module_name &_name, const T &init_val, const unsigned int &n)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:873
The unzip process with one input and variable number of outputs.
Definition: sy_process_constructors_strict.hpp:1797
SY_out< T2 > oport2
port for the output channel 2
Definition: sy_process_constructors_strict.hpp:1679
SY_out< T0 > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:593
SY_out< std::array< T0, N > > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:512
SY_out< std::tuple< Ts... > > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1597
The sunzipX process with one input and an array of outputs.
Definition: sy_process_constructors_strict.hpp:1736
SY_in< std::array< T1, N > > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:1739
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:349
SY_in< T2 > iport2
port for the input channel 2
Definition: sy_process_constructors_strict.hpp:322
Process constructor for a strict combinational process with three inputs and one output.
Definition: sy_process_constructors_strict.hpp:219
sunzip(const sc_module_name &_name)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1685
The strict zip process with variable number of inputs and one output.
Definition: sy_process_constructors_strict.hpp:1593
std::array< SY_out< T1 >, N > oport
port array for the output channels
Definition: sy_process_constructors_strict.hpp:1740
sdelay(const sc_module_name &_name, const T &init_val)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:795
sdpscan(const sc_module_name &_name, const functype &_func, const T0 &init_res)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:709
SY_in< T1 > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:133
std::function< void(T0 &, const T0 &, const T0 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:596
sdpreduce(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:603
std::tuple< SY_out< Ts >... > oport
tuple of ports for the output channels
Definition: sy_process_constructors_strict.hpp:1801
SY_in< T1 > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:321
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1691
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1417
sunzipX(const sc_module_name &_name)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1746
SY_in< T2 > iport2
port for the input channel 2
Definition: sy_process_constructors_strict.hpp:134
SY_in< T2 > iport2
port for the input channel 2
Definition: sy_process_constructors_strict.hpp:1467
std::function< void(T0 &, const T1 &, const T2 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:138
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1752
SY_in< T > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:1395
std::tuple< SY_in< Ts >... > iport
tuple of ports for the input channels
Definition: sy_process_constructors_strict.hpp:1596
SY_out< std::vector< T > > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1918
SY_out< T0 > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:52
The process constructor which defines the abstract semantics of execution.
Definition: abssemantics.hpp:212
std::function< void(T0 &, const T1 &, const T2 &, const T3 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:229
szip(const sc_module_name &_name)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1474
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1609
SY_in< std::array< T1, N > > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:698
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:451
Process constructor for a strict combinational process with two inputs and one output.
Definition: sy_process_constructors_strict.hpp:130
Process constructor for a strict n-delay element.
Definition: sy_process_constructors_strict.hpp:862
scomb4(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:336
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:808
#define CHECK_PRESENCE(VAL)
Check for presence in run time.
Definition: abst_ext.hpp:117
Process constructor for a strict combinational process with four inputs and one output.
Definition: sy_process_constructors_strict.hpp:318
std::function< void(T0 &, const T0 &, const T1 &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:702
SY_in< T > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:865
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:158
SY_in< std::tuple< Ts... > > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:1800
SY_out< OT > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1063
Process constructor for a strict sink process.
Definition: sy_process_constructors_strict.hpp:1392
Process constructor for a strict combinational process with an array of inputs and one output...
Definition: sy_process_constructors_strict.hpp:425
std::function< void(T0 &, const std::array< T1, N > &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:432
std::function< void(OT &, const ST &)> od_functype
Type of the output-decoding function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:953
Process constructor for a strict source process with vector input.
Definition: sy_process_constructors_strict.hpp:1326
scombX(const sc_module_name &_name, const functype &_func)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:439
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:1813
SY_out< T0 > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:325
SY_in< T3 > iport3
port for the input channel 3
Definition: sy_process_constructors_strict.hpp:224
SY_in< std::array< T0, N > > iport1
port for the input channel 1
Definition: sy_process_constructors_strict.hpp:592
std::function< void(const T &)> functype
Type of the function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:1398
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:890
SY_in< T3 > iport3
port for the input channel 3
Definition: sy_process_constructors_strict.hpp:323
std::string forsyde_kind() const
Specifying from which process constructor is the module built.
Definition: sy_process_constructors_strict.hpp:979
SY_out< std::array< T1, N > > oport1
port for the output channel
Definition: sy_process_constructors_strict.hpp:1537
Process constructor for a strict source process.
Definition: sy_process_constructors_strict.hpp:1236
Process constructor for a strict constant source process.
Definition: sy_process_constructors_strict.hpp:1164
SY_in< IT > iport1
port for the input channel
Definition: sy_process_constructors_strict.hpp:1062
Process constructor for a strict combinational process with one input and one output.
Definition: sy_process_constructors_strict.hpp:48
SY_out< T1 > oport1
port for the output channel 1
Definition: sy_process_constructors_strict.hpp:1678
smealy(const sc_module_name &_name, const ns_functype &_ns_func, const od_functype &_od_func, const ST &init_st)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1076
sgroup(const sc_module_name &_name, const unsigned long &samples)
The constructor requires the module name.
Definition: sy_process_constructors_strict.hpp:1925
Process constructor for a strict Mealy machine.
Definition: sy_process_constructors_strict.hpp:1059
std::function< void(ST &, const ST &, const IT &)> ns_functype
Type of the next-state function to be passed to the process constructor.
Definition: sy_process_constructors_strict.hpp:1066
Generated by Doxygen 1.8.11