xml: Use multiple passes in convert and merge script. Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a6f5de..17e79c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -7,6 +7,7 @@ xsl_golden_test(NAME "composable-interconnect-pack_patterns") xsl_golden_test(NAME "composable-loc-implicit-parent") 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") xsl_golden_test(NAME "pack_pattern-strip-from-pb_type-ports") xsl_golden_test(NAME "preserve-interconnect")
diff --git a/attribute-cleanup.xml b/attribute-cleanup.xml index ed9a595..96a33a5 100644 --- a/attribute-cleanup.xml +++ b/attribute-cleanup.xml
@@ -5,9 +5,9 @@ * Strip xml:base attribute --> <xml> - <tag b="1" c="123" x="abc" /> - <tag c="1" d="123" x="abc" /> + <tag b="1" c="123" x=' abc' /> + <tag c="1" d=" 123 " x="abc" /> <tag> - <innertag a2="2" b1="abc" a1="2">Hello</innertag> + <innertag a2=" 2 " b1="abc " a1="2">Hello</innertag> </tag> </xml>
diff --git a/composable-interconnect-fasm-mux-levels.golden.xml b/composable-interconnect-fasm-mux-levels.golden.xml index c103723..58b70bc 100644 --- a/composable-interconnect-fasm-mux-levels.golden.xml +++ b/composable-interconnect-fasm-mux-levels.golden.xml
@@ -21,7 +21,7 @@ <output name="o"/> </pb_type> <interconnect> - <mux input="blocka.a blockb.b blockc[0].c blockc[1].c" output="blocko.i" name="outmux"> + <mux input="blocka.a blockb.b blockc[0].c blockc[1].c" name="outmux" output="blocko.i"> <metadata> <meta name="fasm_mux"> blocka.a : a1
diff --git a/composable-interconnect-fasm-mux.golden.xml b/composable-interconnect-fasm-mux.golden.xml index 21c5cb3..3e72333 100644 --- a/composable-interconnect-fasm-mux.golden.xml +++ b/composable-interconnect-fasm-mux.golden.xml
@@ -9,8 +9,8 @@ <output name="o"/> </pb_type> <interconnect> - <direct name="parent-o" output="parent.o" input="child.o"/> - <mux input="parent.i0 parent.i1" output="child.i" name="mux1"> + <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"> parent.i0 : a1
diff --git a/composable-interconnect-implicit-parent.golden.xml b/composable-interconnect-implicit-parent.golden.xml index 12abd36..745ae0e 100644 --- a/composable-interconnect-implicit-parent.golden.xml +++ b/composable-interconnect-implicit-parent.golden.xml
@@ -21,16 +21,16 @@ </pb_type> <interconnect> <direct input="parent.ia1" name="childa-i1" output="childa.i1"> - <pack_pattern name="A1" in_port="parent.ia1" out_port="childa.i1"/> + <pack_pattern in_port="parent.ia1" name="A1" out_port="childa.i1"/> </direct> - <mux input="parent.ia2 parent.ia3" output="childa.i2" name="childa-input-i2"> - <pack_pattern name="A2" in_port="parent.ia2" out_port="childa.i2"/> - <pack_pattern name="A3" in_port="parent.ia3" out_port="childa.i2"/> + <mux input="parent.ia2 parent.ia3" name="childa-input-i2" output="childa.i2"> + <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" output="childc.i" name="childc-input"/> - <mux input="childa.o childb.o childc.o" output="parent.o1" name="output"/> + <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> </xml>
diff --git a/composable-interconnect-pack_patterns.golden.xml b/composable-interconnect-pack_patterns.golden.xml index ae06303..7285175 100644 --- a/composable-interconnect-pack_patterns.golden.xml +++ b/composable-interconnect-pack_patterns.golden.xml
@@ -21,11 +21,11 @@ </pb_type> <interconnect> <direct input="parent.ia1" name="childa-i1" output="childa.i1"/> - <mux input="parent.ia2 parent.ia3" output="childa.i2" name="childa-input-i2"/> + <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" output="childc.i" name="childc-input"/> - <mux input="childa.o childb.o childc.o" output="parent.o1" name="output"/> + <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> </xml>
diff --git a/full-test-inner.xml b/full-test-inner.xml index 5b44106..1c5ea86 100644 --- a/full-test-inner.xml +++ b/full-test-inner.xml
@@ -10,4 +10,6 @@ <delay_constant max="300e-12" in_port="a" out_port="sum"/> <delay_constant max="300e-12" in_port="b" out_port="sum"/> <delay_constant max="300e-12" in_port="cin" out_port="sum"/> + <T_setup clock="clk" port="a" value="10e-12"/> + <T_clock_to_Q clock="clk" max="10e-12" port="cout"/> </pb_type>
diff --git a/full-test.golden.xml b/full-test.golden.xml index c94d281..5190d3b 100644 --- a/full-test.golden.xml +++ b/full-test.golden.xml
@@ -19,6 +19,8 @@ <delay_constant in_port="comba.a" max="300e-12" out_port="comba.sum"/> <delay_constant in_port="comba.b" max="300e-12" out_port="comba.sum"/> <delay_constant in_port="comba.cin" max="300e-12" out_port="comba.sum"/> + <T_setup clock="clk" port="comba.a" value="10e-12"/> + <T_clock_to_Q clock="clk" max="10e-12" port="comba.cout"/> </pb_type> <pb_type blif_model=".subckt adder" name="combb" num_pb="4"> <input name="a" num_pins="1"/> @@ -32,6 +34,8 @@ <delay_constant in_port="combb.a" max="300e-12" out_port="combb.sum"/> <delay_constant in_port="combb.b" max="300e-12" out_port="combb.sum"/> <delay_constant in_port="combb.cin" max="300e-12" out_port="combb.sum"/> + <T_setup clock="clk" port="combb.a" value="10e-12"/> + <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"/> @@ -53,25 +57,25 @@ <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 name="carry-ADDER" in_port="comba[0].cout" out_port="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 name="carry-ADDER" in_port="comba[1].cout" out_port="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 name="carry-ADDER" in_port="comba[2].cout" out_port="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 name="carry-ADDER" in_port="comba[3].cout" out_port="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]"/>
diff --git a/pack_pattern-copy-direct-ports.golden.xml b/pack_pattern-copy-direct-ports.golden.xml new file mode 100644 index 0000000..39b63f7 --- /dev/null +++ b/pack_pattern-copy-direct-ports.golden.xml
@@ -0,0 +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> + </interconnect> +</xml>
diff --git a/preserve-interconnect.golden.xml b/preserve-interconnect.golden.xml index 8023868..24310f9 100644 --- a/preserve-interconnect.golden.xml +++ b/preserve-interconnect.golden.xml
@@ -21,16 +21,16 @@ </pb_type> <interconnect> <direct input="parent.ia1" name="childa-i1" output="childa.i1"/> - <mux input="parent.ia2 parent.ia3" output="childa.i2" name="childa-input-i2"> - <pack_pattern in_port="parent.parent.ia2" name="MUX1" output="childa.i2"/> - <pack_pattern in_port="parent.parent.ia3" name="MUX2" output="childa.i2"/> + <mux input="parent.ia2 parent.ia3" name="childa-input-i2" output="childa.i2"> + <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="parent-o0" output="parent.o0"> - <pack_pattern in_port="parent.childa.o" name="CARRY" 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" output="childc.i" name="childc-input"/> - <mux input="childa.o childb.o childc.o" output="parent.o1" name="output"/> + <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> </xml>