Intel® High Level Synthesis Compiler Pro Edition: Reference Manual

ID 683349
Date 12/04/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

13.14. Intel® HLS Compiler Pro Edition Pipes API

The pipe API is equivalent to the following class declaration:
template <class name,
          class dataT,
          size_t min_capacity = 0>
class pipe {
public:
  // Blocking
  static dataT read();
  static void write(dataT data);
  // Non-blocking
  static dataT read(bool &success);
  static void write(dataT data, bool &success);
}
Where the template parameters are defined as follows:
Table 52.   pipe API Template Parameters
Parameter Description
name The type that is the basis of a pipe identification.

It is typically a user-defined class, in a user namespace. Forward declaration of the type is enough, and the type need not be defined.

dataT The data type of the packet contained within a pipe.

This is the data type that is read during a successful pipe read() operation, or written during a successful pipe write() operation.

The type must have a standard layout and be trivially copyable.

min_capacity The minimum number of words (in units of dataT) that the pipe must be able to store without any being read out.

The compiler might create a pipe with a larger capacity due to performance considerations.