blob: 089159f7e36101b64fabab568d2028f15e1cd73a [file]
<?xml version="1.0"?>
<!--
Convert "implicit" parent specification for interconnect tags.
Convert
<interconnect><direct><port type='input' ...><port type='output' ...></direct><YYY../></interconnect>
to
<interconnect><direct input='...' name='xxx-xxx' output='...'><YYY../></direct></interconnect>
Convert
<interconnect><mux><port type='input' ...><port type='input' ...><port type='output' ...></mux><YYY../></interconnect>
to
<interconnect><mux input='in1 in2' name='xxx-xxx' output='...'><YYY../></mux></interconnect>
This example below is connected as follows;
┌───────────────────────────────────────────────────────────────────┐
│ │
│ ┌────────────┐ │
ia1│──────>│i1 │ │
│ │ │ │
│ │ childa o│─┬───────────────────────────────────────────>│o0
ia2│──>│╲ │ │ │ │
│ │├─>│i2 │ │ │
ia3│──>│╱ └────────────┘ │ ┌──────────┐ │
│ ├─>│i childb o│─┬──>│╲ │
│ │ └──────────┘ │ ││ ┌──────────┐ │
│ │ │ │├──>│i childc o│──>│╲ │
│ ├──────────────────>││ └──────────┘ ││ │
│ │ │ │╱ ││ │
│ │ │ ╭────────>│├──>│o1
│ │ ╰─────────────╯ ││ │
│ │ ││ │
│ ╰──────────────────────────────────────>│/ │
│ │
└───────────────────────────────────────────────────────────────────┘
-->
<xml>
<pb_type name="parent">
<input name="ia1"/>
<input name="ia2"/>
<input name="ia3"/>
<output name="o0"/>
<output name="o1"/>
<pb_type name="childa">
<input name="i1"/>
<input name="i2"/>
<output name="o"/>
</pb_type>
<pb_type name="childb">
<input name="i"/>
<output name="o"/>
</pb_type>
<pb_type name="childc">
<input name="i"/>
<output name="o"/>
</pb_type>
<interconnect>
<!-- Direct parent -> child -->
<direct>
<port type="input" name="ia1" />
<port type="output" from="childa" name="i1" />
<pack_pattern name="A1">
<port type="input" name="ia1" />
<port type="output" from="childa" name="i1" />
</pack_pattern>
</direct>
<!-- Mux parent -> child -->
<mux name="childa-input-i2">
<port type="input" name="ia2" />
<port type="input" name="ia3" />
<port type="output" from="childa" name="i2" />
<pack_pattern name="A2">
<port type="input" name="ia2" />
<port type="output" from="childa" name="i2" />
</pack_pattern>
<pack_pattern name="A3">
<port type="input" name="ia3" />
<port type="output" from="childa" name="i2" />
</pack_pattern>
</mux>
<!-- Direct parent -> child -->
<direct>
<port type="input" from="childa" name="o" />
<port type="output" name="o0" />
</direct>
<!-- Direct child -> child -->
<direct>
<port type="input" from="childa" name="o" />
<port type="output" from="childb" name="i" />
</direct>
<!-- Mux child -> child -->
<mux name="childc-input">
<port type="input" from="childa" name="o" />
<port type="input" from="childb" name="o" />
<port type="output" from="childc" name="i" />
</mux>
<!-- Mux child -> parent -->
<mux name="output">
<port type="input" from="childa" name="o" />
<port type="input" from="childb" name="o" />
<port type="input" from="childc" name="o" />
<port type="output" name="o1" />
</mux>
</interconnect>
</pb_type>
</xml>