ポート制約は、PortConstraints セクションで指定します。制約はポートごとにグループ化されるため、各ポートに複数の制約を指定できます。
構文
{
"PortConstraints": {
"<port name>": {
<constraint>[,
<constraint>...]
}
}
}
<port name> ::= string
<constraint> ::= buffers
| colocated_nodes
| not_colocated_nodes
| colocated_ports
| not_colocated_ports
| exclusive_colocated_ports
| colocated_reserved_memories
| not_colocated_reserved_memories
例
{
"PortConstraints": {
"mygraph.k1.in[0]": {
"colocated_nodes": ["mygraph.k1"]
},
"mygraph.k2.in[0]": {
"colocated_nodes": ["mygraph.k2"]
},
"mygraph.p1": {
"buffers": [{
"column": 2,
"row": 1,
"bankId": 2
}]
}
}
}
ポート名
ポートは完全修飾名 (<graph name>.<kernel name>.<port name>
) で指定する必要があります。次の例では、グラフ名は myGraph、カーネル名は k1 です。カーネルには、in [0] と out [0] という 2 つのポートがあります (kernel1.cc で指定)。完全ポート名は、myGraph.k1.in[0] および myGraph.k1.out[0] となります。
class graph : public adf::graph {
private:
adf::kernel k1;
public:
my_graph() {
k1 = kernel::create(kernel1);
source(k1) = "src/kernels/kernel1.cc";
}
};
graph myGraph;
制約 JSON ファイルでこれらのポートを参照する場合は、この資料のさまざまな例に示すように、myGraph.k1.in[0] および myGraph.k1.out[0] という名前を使用する必要があります。