tree a327513d2154d81e17c6ad9c8f675fd62291b952
parent e369525077685917e5a2d3a9f18862d5a83fac37
author Tim 'mithro' Ansell <me@mith.ro> 1530726927 -0700
committer Grzegorz Latosinski <glatosinski@antmicro.com> 1573210038 +0100

xml: Slight change in VPR XML format.

Support a format for pb_type which doesn't require repeating the name
many times. Use the xmlsort style sheet to generate the old XML version.

The changes are;
 * Remove the requirement to give an interconnect a name.
 * Moving from attributes for input/output to "port" tags.
 * Decompose the old 'PB_TYPE.PORT[BIT]' into attributes on "port" tag.
 * "Port" tags have a 'from' attribute. If left blank it defaults to the
   current pb_type.

Before;
```xml
<direct input="XXXX.CLOCK_ENABLE" output="in_cen.EN" name="XXXX">
```

After;
```xml
<direct>
  <port name="CLOCK_ENABLE" type="input"/>
  <port name="EN" type="output" from="in_cen"/>
</direct>
```

Disadvantages:
 * This is more verbose.

Advantages:
 * The 'default to current pb_type' means that you can do;
```xml
<pb_type name="tristate" num_pb="1">
  <xi:include href="../tri/io_tri.pb_type.xml" xpointer="xpointer(pb_type/child::node())"/>
</pb_type>
```

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
