Model Composer supports specifying the PLIO width using the AIE PLIO block and making external stream connections that cross the AI Engine to PL boundary.
The AIE PLIO block supports specifying the Platform IO (PLIO) width. Specifying the PLIO width at the boundary of the AI Engine subsystem can affect the throughput of data between the AI Engine domain and the programmable logic (PL) domain. You can also set the constraints for the PLIO block using its constraint manager.
From the Parameters tab in the AIE Signal Spec block, you can select the available PLIO width options from the drop-down menu.
Consider following example where an AIE Signal Spec block is connected at the boundary of the AI Engine subsystem.
By default, the PLIO width is set to auto
. Other available options are:
32
, 64
, and 128
.
After the PLIO width is specified as 64
and
128
for the two AIE PLIO blocks in the example, the
GUI updates as follows.
Snippet of graph.h
adf::input_plio PL_AIE_IN;
adf::output_plio AIE_PL_OUT;
Subsystem() {
PL_AIE_IN = adf::input_plio::create("PL_AIE_IN",
adf::plio_64_bits,
"./data/input/PL_AIE_IN.txt");
AIE_PL_OUT = adf::output_plio::create("AIE_PL_OUT",
adf::plio_128_bits,
"AIE_PL_OUT.txt");
adf::connect< > (PL_AIE_IN.out[0], mygraph.PL_AIE_IN);
adf::connect< > (mygraph.AIE_PL_OUT, AIE_PL_OUT.in[0]);
The PLIO attributes are used in a program to read input from a file or write output data to a file. You can see a connection with one 64-bit PLIO attribute declared for input and one 128-bit PLIO attribute declared for output.