xml: Sort the output tags.

```xml
<pb_type>
 <clocks by name/>
 <inputs by name/>
 <outputs by name/>
 <pb_type by name>
   ...
 </pb_type>
 <interconnect>
  <direct|mux by output>
 </interconnect>
</pb_type>
```

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/composable-interconnect-existing-fasm-mux.golden.xml b/composable-interconnect-existing-fasm-mux.golden.xml
index c8670ba..0df25ac 100644
--- a/composable-interconnect-existing-fasm-mux.golden.xml
+++ b/composable-interconnect-existing-fasm-mux.golden.xml
@@ -17,6 +17,15 @@
      </meta>
         </metadata>
       </direct>
+      <mux input="COMMON_SLICE.AO5 COMMON_SLICE.AX" name="CARRY_DI0" output="CARRY4_VPR.DI0">
+        <metadata>
+          <meta name="fasm_mux">
+      COMMON_SLICE.AO5 = CARRY4.ACY0
+      COMMON_SLICE.AX = NULL
+     </meta>
+        </metadata>
+        <delay_constant in_port="COMMON_SLICE.AX" max=".105e-9" out_port="CARRY4_VPR.DI0"/>
+      </mux>
       <mux input="CARRY4_VPR.O3 CARRY4_VPR.CO_FABRIC3 COMMON_SLICE.DO6 COMMON_SLICE.DO5 COMMON_SLICE.DX" name="DFFMUX" output="SLICE_FF.D[3]">
         <metadata>
           <meta name="fasm_mux">
@@ -28,15 +37,6 @@
      </meta>
         </metadata>
       </mux>
-      <mux input="COMMON_SLICE.AO5 COMMON_SLICE.AX" name="CARRY_DI0" output="CARRY4_VPR.DI0">
-        <metadata>
-          <meta name="fasm_mux">
-      COMMON_SLICE.AO5 = CARRY4.ACY0
-      COMMON_SLICE.AX = NULL
-     </meta>
-        </metadata>
-        <delay_constant in_port="COMMON_SLICE.AX" max=".105e-9" out_port="CARRY4_VPR.DI0"/>
-      </mux>
     </interconnect>
   </pb_type>
 </xml>
diff --git a/composable-interconnect-fasm-mux.golden.xml b/composable-interconnect-fasm-mux.golden.xml
index cb3f7e1..932b881 100644
--- a/composable-interconnect-fasm-mux.golden.xml
+++ b/composable-interconnect-fasm-mux.golden.xml
@@ -9,7 +9,6 @@
       <output name="o"/>
     </pb_type>
     <interconnect>
-      <direct input="child.o" name="parent-o" output="parent.o"/>
       <mux input="parent.i0 parent.i1" name="mux1" output="child.i">
         <metadata>
           <meta name="fasm_mux">
@@ -19,6 +18,7 @@
           <meta name="fasm_name">fasm_name</meta>
         </metadata>
       </mux>
+      <direct input="child.o" name="parent-o" output="parent.o"/>
     </interconnect>
   </pb_type>
 </xml>
diff --git a/composable-interconnect-implicit-parent.golden.xml b/composable-interconnect-implicit-parent.golden.xml
index 745ae0e..1c662b7 100644
--- a/composable-interconnect-implicit-parent.golden.xml
+++ b/composable-interconnect-implicit-parent.golden.xml
@@ -27,9 +27,9 @@
         <pack_pattern in_port="parent.ia2" name="A2" out_port="childa.i2"/>
         <pack_pattern in_port="parent.ia3" name="A3" out_port="childa.i2"/>
       </mux>
-      <direct input="childa.o" name="parent-o0" output="parent.o0"/>
       <direct input="childa.o" name="childb-i" output="childb.i"/>
       <mux input="childa.o childb.o" name="childc-input" output="childc.i"/>
+      <direct input="childa.o" name="parent-o0" output="parent.o0"/>
       <mux input="childa.o childb.o childc.o" name="output" output="parent.o1"/>
     </interconnect>
   </pb_type>
diff --git a/composable-interconnect-pack_patterns.golden.xml b/composable-interconnect-pack_patterns.golden.xml
index 7285175..5921ecf 100644
--- a/composable-interconnect-pack_patterns.golden.xml
+++ b/composable-interconnect-pack_patterns.golden.xml
@@ -22,9 +22,9 @@
     <interconnect>
       <direct input="parent.ia1" name="childa-i1" output="childa.i1"/>
       <mux input="parent.ia2 parent.ia3" name="childa-input-i2" output="childa.i2"/>
-      <direct input="childa.o" name="parent-o0" output="parent.o0"/>
       <direct input="childa.o" name="childb-i" output="childb.i"/>
       <mux input="childa.o childb.o" name="childc-input" output="childc.i"/>
+      <direct input="childa.o" name="parent-o0" output="parent.o0"/>
       <mux input="childa.o childb.o childc.o" name="output" output="parent.o1"/>
     </interconnect>
   </pb_type>
diff --git a/composable-pb_type.golden.xml b/composable-pb_type.golden.xml
index a128b5c..ef10e9d 100644
--- a/composable-pb_type.golden.xml
+++ b/composable-pb_type.golden.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="top" num_pb="1">
-  <pb_type blif_model=".subckt random" class="lut" name="top_inner" num_pb="1">
-    <other_tag/>
-  </pb_type>
   <pb_type name="middle" num_pb="1">
     <pb_type blif_model=".subckt random" class="lut" name="middle_inner" num_pb="1">
       <other_tag/>
     </pb_type>
   </pb_type>
+  <pb_type blif_model=".subckt random" class="lut" name="top_inner" num_pb="1">
+    <other_tag/>
+  </pb_type>
 </pb_type>
diff --git a/full-test.golden.xml b/full-test.golden.xml
index 5190d3b..dd44989 100644
--- a/full-test.golden.xml
+++ b/full-test.golden.xml
@@ -38,46 +38,46 @@
     <T_clock_to_Q clock="clk" max="10e-12" port="combb.cout"/>
   </pb_type>
   <interconnect>
-    <direct input="MULTIPLE_INSTANCE.a[3]" name="comba[3]-a" output="comba[3].a"/>
-    <direct input="MULTIPLE_INSTANCE.b[3]" name="comba[3]-b" output="comba[3].b"/>
-    <direct input="MULTIPLE_INSTANCE.cin" name="comba[0]-cin" output="comba[0].cin"/>
-    <direct input="MULTIPLE_INSTANCE.cin" name="comba[1]-cin" output="comba[1].cin"/>
-    <direct input="MULTIPLE_INSTANCE.cin" name="comba[2]-cin" output="comba[2].cin"/>
-    <direct input="MULTIPLE_INSTANCE.cin" name="comba[3]-cin" output="comba[3].cin"/>
+    <direct input="combb[3].cout" name="MULTIPLE_INSTANCE-cout" output="MULTIPLE_INSTANCE.cout"/>
+    <direct input="comba[0].sum" name="MULTIPLE_INSTANCE-sum[0]" output="MULTIPLE_INSTANCE.sum[0]"/>
+    <direct input="comba[1].sum" name="MULTIPLE_INSTANCE-sum[1]" output="MULTIPLE_INSTANCE.sum[1]"/>
+    <direct input="comba[2].sum" name="MULTIPLE_INSTANCE-sum[2]" output="MULTIPLE_INSTANCE.sum[2]"/>
     <direct input="comba[3].sum" name="MULTIPLE_INSTANCE-sum[3]" output="MULTIPLE_INSTANCE.sum[3]"/>
+    <direct input="combb[0].sum" name="MULTIPLE_INSTANCE-sum[4]" output="MULTIPLE_INSTANCE.sum[4]"/>
+    <direct input="combb[1].sum" name="MULTIPLE_INSTANCE-sum[5]" output="MULTIPLE_INSTANCE.sum[5]"/>
+    <direct input="combb[2].sum" name="MULTIPLE_INSTANCE-sum[6]" output="MULTIPLE_INSTANCE.sum[6]"/>
+    <direct input="combb[3].sum" name="MULTIPLE_INSTANCE-sum[7]" output="MULTIPLE_INSTANCE.sum[7]"/>
     <direct input="MULTIPLE_INSTANCE.a[0]" name="comba[0]-a" output="comba[0].a"/>
     <direct input="MULTIPLE_INSTANCE.b[0]" name="comba[0]-b" output="comba[0].b"/>
-    <direct input="comba[0].sum" name="MULTIPLE_INSTANCE-sum[0]" output="MULTIPLE_INSTANCE.sum[0]"/>
+    <direct input="MULTIPLE_INSTANCE.cin" name="comba[0]-cin" output="comba[0].cin"/>
     <direct input="MULTIPLE_INSTANCE.a[1]" name="comba[1]-a" output="comba[1].a"/>
     <direct input="MULTIPLE_INSTANCE.b[1]" name="comba[1]-b" output="comba[1].b"/>
-    <direct input="comba[1].sum" name="MULTIPLE_INSTANCE-sum[1]" output="MULTIPLE_INSTANCE.sum[1]"/>
+    <direct input="MULTIPLE_INSTANCE.cin" name="comba[1]-cin" output="comba[1].cin"/>
     <direct input="MULTIPLE_INSTANCE.a[2]" name="comba[2]-a" output="comba[2].a"/>
     <direct input="MULTIPLE_INSTANCE.b[2]" name="comba[2]-b" output="comba[2].b"/>
-    <direct input="comba[2].sum" name="MULTIPLE_INSTANCE-sum[2]" output="MULTIPLE_INSTANCE.sum[2]"/>
+    <direct input="MULTIPLE_INSTANCE.cin" name="comba[2]-cin" output="comba[2].cin"/>
+    <direct input="MULTIPLE_INSTANCE.a[3]" name="comba[3]-a" output="comba[3].a"/>
+    <direct input="MULTIPLE_INSTANCE.b[3]" name="comba[3]-b" output="comba[3].b"/>
+    <direct input="MULTIPLE_INSTANCE.cin" name="comba[3]-cin" output="comba[3].cin"/>
     <direct input="MULTIPLE_INSTANCE.c[0]" name="combb[0]-a" output="combb[0].a"/>
     <direct input="MULTIPLE_INSTANCE.d[0]" name="combb[0]-b" output="combb[0].b"/>
     <direct input="comba[0].cout" name="combb[0]-cin" output="combb[0].cin">
       <pack_pattern in_port="comba[0].cout" name="carry-ADDER" out_port="combb[0].cin"/>
     </direct>
-    <direct input="combb[0].sum" name="MULTIPLE_INSTANCE-sum[4]" output="MULTIPLE_INSTANCE.sum[4]"/>
     <direct input="MULTIPLE_INSTANCE.c[1]" name="combb[1]-a" output="combb[1].a"/>
     <direct input="MULTIPLE_INSTANCE.d[1]" name="combb[1]-b" output="combb[1].b"/>
     <direct input="comba[1].cout" name="combb[1]-cin" output="combb[1].cin">
       <pack_pattern in_port="comba[1].cout" name="carry-ADDER" out_port="combb[1].cin"/>
     </direct>
-    <direct input="combb[1].sum" name="MULTIPLE_INSTANCE-sum[5]" output="MULTIPLE_INSTANCE.sum[5]"/>
     <direct input="MULTIPLE_INSTANCE.c[2]" name="combb[2]-a" output="combb[2].a"/>
     <direct input="MULTIPLE_INSTANCE.d[2]" name="combb[2]-b" output="combb[2].b"/>
     <direct input="comba[2].cout" name="combb[2]-cin" output="combb[2].cin">
       <pack_pattern in_port="comba[2].cout" name="carry-ADDER" out_port="combb[2].cin"/>
     </direct>
-    <direct input="combb[2].sum" name="MULTIPLE_INSTANCE-sum[6]" output="MULTIPLE_INSTANCE.sum[6]"/>
     <direct input="MULTIPLE_INSTANCE.c[3]" name="combb[3]-a" output="combb[3].a"/>
     <direct input="MULTIPLE_INSTANCE.d[3]" name="combb[3]-b" output="combb[3].b"/>
     <direct input="comba[3].cout" name="combb[3]-cin" output="combb[3].cin">
       <pack_pattern in_port="comba[3].cout" name="carry-ADDER" out_port="combb[3].cin"/>
     </direct>
-    <direct input="combb[3].cout" name="MULTIPLE_INSTANCE-cout" output="MULTIPLE_INSTANCE.cout"/>
-    <direct input="combb[3].sum" name="MULTIPLE_INSTANCE-sum[7]" output="MULTIPLE_INSTANCE.sum[7]"/>
   </interconnect>
 </pb_type>
diff --git a/pack_pattern-copy-direct-ports.golden.xml b/pack_pattern-copy-direct-ports.golden.xml
index 39b63f7..7e983c0 100644
--- a/pack_pattern-copy-direct-ports.golden.xml
+++ b/pack_pattern-copy-direct-ports.golden.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
 <xml>
   <interconnect>
-    <direct input="SB_FF.D" name="VPR_FF-D" output="VPR_FF.D">
-      <pack_pattern in_port="SB_FF.D" name="A" out_port="VPR_FF.D"/>
-    </direct>
     <direct input="LUTFF.FCIN" name="SB_CARRY-CI" output="SB_CARRY.CI">
       <pack_pattern in_port="LUTFF.FCIN" name="CARRYCHAIN" out_port="SB_CARRY.CI"/>
     </direct>
+    <direct input="SB_FF.D" name="VPR_FF-D" output="VPR_FF.D">
+      <pack_pattern in_port="SB_FF.D" name="A" out_port="VPR_FF.D"/>
+    </direct>
   </interconnect>
 </xml>
diff --git a/preserve-interconnect.golden.xml b/preserve-interconnect.golden.xml
index 24310f9..59dbb7c 100644
--- a/preserve-interconnect.golden.xml
+++ b/preserve-interconnect.golden.xml
@@ -25,11 +25,11 @@
         <pack_pattern in_port="parent.ia2" name="MUX1" output="childa.i2"/>
         <pack_pattern in_port="parent.ia3" name="MUX2" output="childa.i2"/>
       </mux>
+      <direct input="childa.o" name="childb-i" output="childb.i"/>
+      <mux input="childa.o childb.o" name="childc-input" output="childc.i"/>
       <direct input="childa.o" name="parent-o0" output="parent.o0">
         <pack_pattern in_port="childa.o" name="CARRY" out_port="parent.o0" output="parent.o0"/>
       </direct>
-      <direct input="childa.o" name="childb-i" output="childb.i"/>
-      <mux input="childa.o childb.o" name="childc-input" output="childc.i"/>
       <mux input="childa.o childb.o childc.o" name="output" output="parent.o1"/>
     </interconnect>
   </pb_type>