xml: Make pb_type attributes work in composition. Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/convert-pb_type-attributes.xsl b/convert-pb_type-attributes.xsl new file mode 100644 index 0000000..75f31c4 --- /dev/null +++ b/convert-pb_type-attributes.xsl
@@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:include href="identity.xsl" /> + + <!-- + Convert + <pb_type><blif_model>XXX</blif_model></pb_type> + to + <pb_type blif_model="XXX"></pb_type> + --> + <xsl:template match="pb_type/blif_model"> + <xsl:attribute name="blif_model"><xsl:value-of select="text()"/></xsl:attribute> + </xsl:template> + + <!-- + Convert + <pb_type><pb_class>XXX</pb_class></pb_type> + to + <pb_type class="XXX"></pb_type> + --> + <xsl:template match="pb_type/pb_class"> + <xsl:attribute name="class"><xsl:value-of select="text()"/></xsl:attribute> + </xsl:template> + +</xsl:stylesheet>
diff --git a/convert_and_merge_composable_fpga_architecture.sh b/convert_and_merge_composable_fpga_architecture.sh index 2647c4c..1c15424 100755 --- a/convert_and_merge_composable_fpga_architecture.sh +++ b/convert_and_merge_composable_fpga_architecture.sh
@@ -5,8 +5,9 @@ TOP_DIR=$(git rev-parse --show-toplevel) XSLTPROC_CMD="${XSLTPROC} --nomkdir --nonet --xinclude ${XSLTPROC_PARAMS}" ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/identity.xsl "$@" | \ - ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/convert-prefix-port.xsl - | \ + ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/convert-pb_type-attributes.xsl - | \ ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/convert-port-tag.xsl - | \ + ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/convert-prefix-port.xsl - | \ ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/pack-patterns.xsl - | \ ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/remove-duplicate-models.xsl - | \ ${XSLTPROC_CMD} ${TOP_DIR}/common/xml/attribute-fixes.xsl - | \
diff --git a/convert_and_merge_composable_tests/CMakeLists.txt b/convert_and_merge_composable_tests/CMakeLists.txt index 32063e2..ec3c04a 100644 --- a/convert_and_merge_composable_tests/CMakeLists.txt +++ b/convert_and_merge_composable_tests/CMakeLists.txt
@@ -7,6 +7,9 @@ xsl_golden_test(NAME "composable-interconnect-implicit-parent") xsl_golden_test(NAME "composable-interconnect-pack_patterns") xsl_golden_test(NAME "composable-loc-implicit-parent") +add_file_target(FILE "composable-pb_type-inner.xml" SCANNER_TYPE xml) +add_file_target(FILE "composable-pb_type-middle.xml" SCANNER_TYPE xml) +xsl_golden_test(NAME "composable-pb_type") xsl_golden_test(NAME "explicit-port") xsl_golden_test(NAME "pack_pattern-copy-direct-ports") xsl_golden_test(NAME "pack_pattern-merge-type-into-name")
diff --git a/convert_and_merge_composable_tests/composable-pb_type-inner.xml b/convert_and_merge_composable_tests/composable-pb_type-inner.xml new file mode 100644 index 0000000..6d1d5b5 --- /dev/null +++ b/convert_and_merge_composable_tests/composable-pb_type-inner.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<pb_type name="INNER" other_attribute="r"> + <blif_model>.subckt random</blif_model> + <pb_class>lut</pb_class> + <other_tag/> +</pb_type>
diff --git a/convert_and_merge_composable_tests/composable-pb_type-middle.xml b/convert_and_merge_composable_tests/composable-pb_type-middle.xml new file mode 100644 index 0000000..d4f1f66 --- /dev/null +++ b/convert_and_merge_composable_tests/composable-pb_type-middle.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<pb_type name="MIDDLE" xmlns:xi="http://www.w3.org/2001/XInclude"> + <pb_type name="middle_inner" num_pb="1"> + <xi:include href="composable-pb_type-inner.xml" xpointer="xpointer(pb_type/child::node())"/> + </pb_type> +</pb_type>
diff --git a/convert_and_merge_composable_tests/composable-pb_type.golden.xml b/convert_and_merge_composable_tests/composable-pb_type.golden.xml new file mode 100644 index 0000000..a128b5c --- /dev/null +++ b/convert_and_merge_composable_tests/composable-pb_type.golden.xml
@@ -0,0 +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>
diff --git a/convert_and_merge_composable_tests/composable-pb_type.xml b/convert_and_merge_composable_tests/composable-pb_type.xml new file mode 100644 index 0000000..ede3b86 --- /dev/null +++ b/convert_and_merge_composable_tests/composable-pb_type.xml
@@ -0,0 +1,9 @@ +<?xml version="1.0" ?> +<pb_type name="top" num_pb="1" xmlns:xi="http://www.w3.org/2001/XInclude"> + <pb_type name="top_inner" num_pb="1" > + <xi:include href="composable-pb_type-inner.xml" xpointer="xpointer(pb_type/child::node())"/> + </pb_type> + <pb_type name="middle" num_pb="1"> + <xi:include href="composable-pb_type-middle.xml" xpointer="xpointer(pb_type/child::node())"/> + </pb_type> +</pb_type>
diff --git a/convert_and_merge_composable_tests/full-test-inner.xml b/convert_and_merge_composable_tests/full-test-inner.xml index 1c5ea86..575ddac 100644 --- a/convert_and_merge_composable_tests/full-test-inner.xml +++ b/convert_and_merge_composable_tests/full-test-inner.xml
@@ -1,4 +1,5 @@ -<pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="ADDER" blif_model=".subckt adder" num_pb="1"> +<pb_type xmlns:xi="http://www.w3.org/2001/XInclude" name="ADDER" num_pb="1"> + <blif_model>.subckt adder</blif_model> <input name="a" num_pins="1"/> <input name="b" num_pins="1"/> <input name="cin" num_pins="1"/>
diff --git a/convert_and_merge_composable_tests/full-test.xml b/convert_and_merge_composable_tests/full-test.xml index ca3ef54..c5a31ef 100644 --- a/convert_and_merge_composable_tests/full-test.xml +++ b/convert_and_merge_composable_tests/full-test.xml
@@ -7,10 +7,10 @@ <input name="d" num_pins="4"/> <output name="cout" num_pins="1"/> <output name="sum" num_pins="8"/> - <pb_type blif_model=".subckt adder" name="comba" num_pb="4"> + <pb_type name="comba" num_pb="4"> <xi:include href="full-test-inner.xml" xpointer="xpointer(pb_type/child::node())"/> </pb_type> - <pb_type blif_model=".subckt adder" name="combb" num_pb="4"> + <pb_type name="combb" num_pb="4"> <xi:include href="full-test-inner.xml" xpointer="xpointer(pb_type/child::node())"/> </pb_type> <interconnect>