A top-level application file graph.cpp
is created which contains an instance of the graph class and is connected to a simulation platform. A virtual platform specification helps to connect the data flow graph written with external I/O
mechanisms specific to the chosen target for testing or eventual deployment.
#include "graph.h"
// Graph object
myGraph filter_graph;
filter_graph.init();
filter_graph.update(filter_graph.kernelCoefficients, float2fixed_coeff<10, 16>(kData).data(), 16);
filter_graph.run(1);
filter_graph.end();
PLIO
A PLIO port attribute is used to make external stream connections that cross the AI Engine to programmable logic (PL) boundary. PLIO attributes are used to specify the port name, port bit width and the input/output file names. Note that when simulating PLIO with data files, the data should be organized to accommodate both the width of the PL block as well as the data type of connecting port on the AI Engine block.
//Platform ports inptr = input_plio::create("DataIn1", adf::plio_128_bits, "data/input_128x16.txt"); outptr = output_plio::create("DataOut1", adf::plio_128_bits, "data/output.txt");
GMIO
A GMIO port attribute is used to make external memory-mapped connections to or from the global memory. These connections are made between an AI Engine graph and the logical global memory ports of a hardware platform design.
//Platform ports in1 = input_gmio::create("IN", 256,1000); out1 = output_gmio::create("OUT", 256, 1000);