Default Paths
In a composable overlay, a default path specifies the nodes that are source
and sink in a design, this is consumer and producer. These default paths are
annotated with the keyword [default]
in the c_dict
.
Default paths are an optional and are loaded when the
pynq_composable.composable.Composable
driver is assigned.
Default paths are specified in a unique json file with the name
<overlay_name>_paths.json
. This file must be placed next to the overlay.
The structure of this dictionary is as follows:
The first level key indicates the hierarchy
The second level key provides an arbitrary name for the path.
The third level key defines the ci (Subordinate) and pi (Manager) interfaces on the AXI4-Stream Switch that the path is connected to.
The default paths appear in the c_dict
by appending the second level key
with in
, for ci ports and out
for pi ports.
The default paths are also added as attribute to the Composable
object and
are a handy way to compose your pipeline. For instance
video.compose([video.hdmi_source_in, f1, f2, ..., video.hdmi_source_out])
An example json file to define default paths can be found below.
{
"video": {
"hdmi_source": {
"ci": {
"port": 0,
"Description": "HDMI IN frontend PL path"
},
"pi": {
"port": 0,
"Description": "HDMI IN frontend PS path"
}
},
"hdmi_sink": {
"ci": {
"port": 1,
"Description": "HDMI OUT frontend PS path"
},
"pi": {
"port": 1,
"Description": "HDMI OUT frontend PL path"
}
},
}
"audio": {
"mic": {
"ci": {
"port": 0,
"Description": "Microphone frontend PL path"
},
"pi": {
"port": 0,
"Description": "Microphone frontend PS path"
}
},
"speaker": {
"ci": {
"port": 5,
"Description": "Speaker frontend PS path"
},
"pi": {
"port": 5,
"Description": "Speaker frontend PL path"
}
},
}
}