xml: Cleanup handling of fasm_mux metadata. * Only output it when requested. * Fixed indenting. * Add test which shows levels. Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/convert_and_merge_composable_fpga_architecture.xsl b/convert_and_merge_composable_fpga_architecture.xsl index 3d288bf..cc4b221 100644 --- a/convert_and_merge_composable_fpga_architecture.xsl +++ b/convert_and_merge_composable_fpga_architecture.xsl
@@ -119,7 +119,7 @@ </xsl:attribute> <xsl:attribute name="input"> <xsl:for-each select="port[@type='input']"> - <xsl:call-template name="from-pb_type"/>.<xsl:call-template name="port-value"/> + <xsl:call-template name="from-pb_type"/>.<xsl:call-template name="port-value"/> <xsl:if test="position() != last()"><xsl:text> </xsl:text></xsl:if> </xsl:for-each> </xsl:attribute> @@ -129,17 +129,22 @@ <xsl:if test="position() != last()"><xsl:text> </xsl:text></xsl:if> </xsl:for-each> </xsl:attribute> - <metadata> - <meta name="fasm_mux"> - <xsl:for-each select="port[@type='input']"><xsl:text> - </xsl:text><xsl:call-template name="from-pb_type"/>.<xsl:call-template name="port-value"/><xsl:text> : </xsl:text><xsl:value-of select="metadata/meta[@name='fasm_mux']" /> - </xsl:for-each><xsl:text> - </xsl:text> - </meta> - <xsl:for-each select="metadata"> - <xsl:apply-templates/> - </xsl:for-each> - </metadata> + <xsl:if test="*/metadata"> + <metadata> + <!-- The fasm_mux metadata attribute needs special handling. --> + <xsl:if test="*/metadata/meta[@name='fasm_mux']"> + <meta name="fasm_mux"> + <xsl:for-each select="port[@type='input']"><xsl:text> + </xsl:text><xsl:call-template name="from-pb_type"/>.<xsl:call-template name="port-value"/><xsl:text> : </xsl:text><xsl:value-of select="metadata/meta[@name='fasm_mux']" /> + </xsl:for-each><xsl:text> + </xsl:text> + </meta> + </xsl:if> + <xsl:for-each select="metadata"> + <xsl:apply-templates/> + </xsl:for-each> + </metadata> + </xsl:if> </xsl:copy> </xsl:template>
diff --git a/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.golden.xml b/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.golden.xml index 064a7be..ca6f259 100644 --- a/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.golden.xml +++ b/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.golden.xml
@@ -24,11 +24,11 @@ <mux name="outmux" input="blocka.a blockb.b blockc[0].c blockc[1].c" output="blocko.i"> <metadata> <meta name="fasm_mux"> - blocka.a : a1 - blockb.b : b1 - blockc[0].c : c0 - blockc[1].c : c1 - </meta> + blocka.a : a1 + blockb.b : b1.l1 + blockc[0].c : c0.l1 + blockc[1].c : c1 + </meta> <meta name="fasm_name">fasm_name</meta> </metadata> </mux>
diff --git a/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.xml b/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.xml index b3f7424..c75d66b 100644 --- a/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.xml +++ b/convert_and_merge_composable_tests/composable-interconnect-fasm-mux-levels.xml
@@ -31,12 +31,12 @@ </port> <port type="input" name="b" from="blockb"> <metadata> - <meta name="fasm_mux">b1</meta> + <meta name="fasm_mux">b1.l1</meta> </metadata> </port> <port type="input" name="c" from="blockc[0]"> <metadata> - <meta name="fasm_mux">c0</meta> + <meta name="fasm_mux">c0.l1</meta> </metadata> </port> <port type="input" name="c" from="blockc[1]">
diff --git a/convert_and_merge_composable_tests/composable-interconnect-fasm-mux.golden.xml b/convert_and_merge_composable_tests/composable-interconnect-fasm-mux.golden.xml index 4883664..b0d5c1a 100644 --- a/convert_and_merge_composable_tests/composable-interconnect-fasm-mux.golden.xml +++ b/convert_and_merge_composable_tests/composable-interconnect-fasm-mux.golden.xml
@@ -13,9 +13,9 @@ <mux name="mux1" input="parent.i0 parent.i1" output="child.i"> <metadata> <meta name="fasm_mux"> - parent.i0 : a1 - parent.i1 : b1 - </meta> + parent.i0 : a1 + parent.i1 : b1 + </meta> <meta name="fasm_name">fasm_name</meta> </metadata> </mux>
diff --git a/convert_and_merge_composable_tests/composable-interconnect-implicit-parent.golden.xml b/convert_and_merge_composable_tests/composable-interconnect-implicit-parent.golden.xml index da10541..43c72d0 100644 --- a/convert_and_merge_composable_tests/composable-interconnect-implicit-parent.golden.xml +++ b/convert_and_merge_composable_tests/composable-interconnect-implicit-parent.golden.xml
@@ -21,33 +21,11 @@ </pb_type> <interconnect> <direct input="parent.ia1" name="childa-i1" output="childa.i1"/> - <mux name="childa-input-i2" input="parent.ia2 parent.ia3" output="childa.i2"> - <metadata> - <meta name="fasm_mux"> - parent.ia2 : - parent.ia3 : - </meta> - </metadata> - </mux> + <mux name="childa-input-i2" input="parent.ia2 parent.ia3" output="childa.i2"/> <direct input="childa.o" name="parent-o0" output="parent.o0"/> <direct input="childa.o" name="childb-i" output="childb.i"/> - <mux name="childc-input" input="childa.o childb.o" output="childc.i"> - <metadata> - <meta name="fasm_mux"> - childa.o : - childb.o : - </meta> - </metadata> - </mux> - <mux name="output" input="childa.o childb.o childc.o" output="parent.o1"> - <metadata> - <meta name="fasm_mux"> - childa.o : - childb.o : - childc.o : - </meta> - </metadata> - </mux> + <mux name="childc-input" input="childa.o childb.o" output="childc.i"/> + <mux name="output" input="childa.o childb.o childc.o" output="parent.o1"/> </interconnect> </pb_type> </xml>