namespace rtm

// classes

template <
    int t_MaxDimZ,
    int t_MaxDimY,
    int t_HalfOrder,
    int t_PEZ,
    int t_PEX,
    int t_NumSM
    >
class Domain3D

template <
    typename t_DataType,
    int t_Order,
    int t_MaxDim = 1024,
    int t_MaxB = 40,
    int t_PE = t_Order / 2
    >
class RTM2D

template <
    typename t_Domain,
    typename t_DataType,
    int t_Order,
    int t_MaxDimZ = 128,
    int t_MaxDimY = 128,
    int t_MaxB = 40,
    int t_PEZ = 1,
    int t_PEX = 1
    >
class RTM3D

template <
    typename t_DataType,
    int t_Order,
    int t_MaxDim = 1024,
    int t_PE = 1
    >
class Stencil2D

template <
    typename t_DataType,
    int t_Order,
    int t_MaxDimZ = 128,
    int t_MaxDimY = 128,
    int t_PEZ = 1,
    int t_PEX = 1
    >
class Stencil3D

memSelStream

#include "rtm/dataMover.hpp"
template <
    typename t_InterfaceType,
    typename t_DataType
    >
void memSelStream (
    unsigned int p_n,
    unsigned int p_k,
    t_InterfaceType* p_mem0,
    t_InterfaceType* p_mem1,
    hls::stream <t_DataType>& p_str
    )

memSelStream reads data alternatively from two memory addresses to a stream

Parameters:

t_InterfaceType is the datatype in memory
t_DataType is the datatype in of the stream
p_n is the number of data to be read
p_k is the selection
p_mem0 is the first memory port
p_mem1 is the second memory port
p_str is the output stream

streamSelMem

#include "rtm/dataMover.hpp"
template <
    typename t_InterfaceType,
    typename t_DataType
    >
void streamSelMem (
    unsigned int p_n,
    unsigned int p_k,
    t_InterfaceType* p_mem0,
    t_InterfaceType* p_mem1,
    hls::stream <t_DataType>& p_str
    )

streamSelMem reads write alternatively to two memory addresses from a stream

Parameters:

t_InterfaceType is the datatype in memory
t_DataType is the datatype in of the stream
p_n is the number of data to be read
p_k is the selection
p_mem0 is the first memory port
p_mem1 is the second memory port
p_str is the input stream

wide2stream

#include "rtm/dataMover.hpp"
template <
    unsigned int t_DataWidth,
    unsigned int t_Multi
    >
void wide2stream (
    unsigned int p_n,
    hls::stream <ap_uint <t_DataWidth*t_Multi>>& p_wide,
    hls::stream <ap_uint <t_DataWidth>>& p_str
    )

wide2stream converts an integer of wide datawidth to an integer of base datawidth

Parameters:

t_DataWidth is the base datawidth
t_Multi is the factor between two datawidth
p_n is the number of data to be read
p_wide is the input stream of wide datawidth
p_str is the output stream of base datawidth

stream2wide

#include "rtm/dataMover.hpp"
template <
    unsigned int t_DataWidth,
    unsigned int t_Multi
    >
void stream2wide (
    unsigned int p_n,
    hls::stream <ap_uint <t_DataWidth>>& p_str,
    hls::stream <ap_uint <t_DataWidth*t_Multi>>& p_wide
    )

stream2wide converts an integer of base datawidth to an integer of wide datawidth

Parameters:

t_DataWidth is the base datawidth
t_Multi is the factor between two datawidth
p_n is the number of data to be read
p_str is the input stream of base datawidth
p_wide is the output stream of wide datawidth