Skip to content

Commit 0062735

Browse files
committed
WIP: testbench
Signed-off-by: Alessandro Comodi <[email protected]>
1 parent 59fc34c commit 0062735

File tree

2 files changed

+85
-119
lines changed

2 files changed

+85
-119
lines changed

vtr_flow/arch/equivalent_sites/equivalent.xml

Lines changed: 83 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -3,208 +3,171 @@
33
<models>
44
<model name="IO_0">
55
<input_ports>
6-
<port name="I" combinational_sink_ports="O"/>
6+
<port name="in" combinational_sink_ports="out"/>
77
</input_ports>
88
<output_ports>
9-
<port name="O"/>
9+
<port name="out"/>
1010
</output_ports>
1111
</model>
1212
<model name="IO_1">
1313
<input_ports>
14-
<port name="I" combinational_sink_ports="O"/>
14+
<port name="in" combinational_sink_ports="out"/>
1515
</input_ports>
1616
<output_ports>
17-
<port name="O"/>
17+
<port name="out"/>
1818
</output_ports>
1919
</model>
2020
<model name="IO_2">
2121
<input_ports>
22-
<port name="I" combinational_sink_ports="O"/>
22+
<port name="in" combinational_sink_ports="out"/>
2323
</input_ports>
2424
<output_ports>
25-
<port name="O"/>
25+
<port name="out"/>
2626
</output_ports>
2727
</model>
2828
<model name="IO_3">
2929
<input_ports>
30-
<port name="I" combinational_sink_ports="O"/>
30+
<port name="in" combinational_sink_ports="out"/>
3131
</input_ports>
3232
<output_ports>
33-
<port name="O"/>
33+
<port name="out"/>
3434
</output_ports>
3535
</model>
3636
</models>
3737
<tiles>
3838
<tile name="io_tile">
39-
<input name="I" num_pins="1"/>
40-
<output name="O" num_pins="1"/>
39+
<input name="in" num_pins="1"/>
40+
<output name="out" num_pins="1"/>
41+
<equivalent_sites>
42+
<site pb_type="io_block">
43+
<direct from="io_tile.in" to="io_block.in"/>
44+
<direct from="io_tile.out" to="io_block.out"/>
45+
</site>
46+
</equivalent_sites>
47+
<pinlocations pattern="spread"/>
48+
<fc in_type="frac" in_val="1.0" out_type="frac" out_val="1.0"/>
49+
</tile>
50+
<tile name="pass_through_tile">
51+
<input name="in" num_pins="1"/>
52+
<output name="out" num_pins="1"/>
4153
<equivalent_sites>
4254
<site pb_type="io_site_0">
43-
<direct from="io_tile.I" to="io_site_0.I"/>
44-
<direct from="io_tile.O" to="io_site_0.O"/>
55+
<direct from="pass_through_tile.in" to="io_site_0.in"/>
56+
<direct from="pass_through_tile.out" to="io_site_0.out"/>
4557
</site>
4658
<site pb_type="io_site_1">
47-
<direct from="io_tile.I" to="io_site_1.I"/>
48-
<direct from="io_tile.O" to="io_site_1.O"/>
59+
<direct from="pass_through_tile.in" to="io_site_1.in"/>
60+
<direct from="pass_through_tile.out" to="io_site_1.out"/>
4961
</site>
5062
<site pb_type="io_site_2">
51-
<direct from="io_tile.I" to="io_site_2.I"/>
52-
<direct from="io_tile.O" to="io_site_2.O"/>
63+
<direct from="pass_through_tile.in" to="io_site_2.in"/>
64+
<direct from="pass_through_tile.out" to="io_site_2.out"/>
5365
</site>
5466
<site pb_type="io_site_3">
55-
<direct from="io_tile.I" to="io_site_3.I"/>
56-
<direct from="io_tile.O" to="io_site_3.O"/>
67+
<direct from="pass_through_tile.in" to="io_site_3.in"/>
68+
<direct from="pass_through_tile.out" to="io_site_3.out"/>
5769
</site>
5870
</equivalent_sites>
59-
<pinlocations pattern="custom">
60-
<loc side="top" xoffset="0" yoffset="0">io_tile.I io_tile.O</loc>
61-
<loc side="left" xoffset="0" yoffset="0">io_tile.I io_tile.O</loc>
62-
<loc side="bottom" xoffset="0" yoffset="0">io_tile.I io_tile.O</loc>
63-
<loc side="right" xoffset="0" yoffset="0">io_tile.I io_tile.O</loc>
64-
</pinlocations>
71+
<pinlocations pattern="spread"/>
6572
<fc in_type="frac" in_val="1.0" out_type="frac" out_val="1.0"/>
6673
</tile>
6774
</tiles>
6875
<complexblocklist>
69-
<pb_type name="io_site_0">
70-
<input name="I" num_pins="1"/>
71-
<output name="O" num_pins="1"/>
72-
<mode name="INOUT">
73-
<pb_type blif_model=".subckt IO_0" name="io_0" num_pb="1">
74-
<input name="I" num_pins="1"/>
75-
<output name="O" num_pins="1"/>
76-
<delay_constant max="1.667e-9" in_port="io_0.I" out_port="io_0.O"/>
77-
</pb_type>
78-
<interconnect>
79-
<direct input="io_site_0.I" name="i_0" output="io_0.I"/>
80-
<direct input="io_0.O" name="o_0" output="io_site_0.O"/>
81-
</interconnect>
82-
</mode>
76+
<pb_type name="io_block">
77+
<input name="in" num_pins="1"/>
78+
<output name="out" num_pins="1"/>
8379
<mode name="IN">
8480
<pb_type blif_model=".input" name="input_0" num_pb="1">
8581
<output name="inpad" num_pins="1"/>
8682
</pb_type>
8783
<interconnect>
88-
<direct input="input_0.inpad" name="i_0" output="io_site_0.O"/>
84+
<direct input="input_0.inpad" name="i_0" output="io_block.out"/>
8985
</interconnect>
9086
</mode>
9187
<mode name="OUT">
9288
<pb_type blif_model=".output" name="output_0" num_pb="1">
9389
<input name="outpad" num_pins="1"/>
9490
</pb_type>
9591
<interconnect>
96-
<direct input="io_site_0.I" name="o_0" output="output_0.outpad"/>
92+
<direct input="io_block.in" name="o_0" output="output_0.outpad"/>
9793
</interconnect>
9894
</mode>
9995
</pb_type>
100-
<pb_type name="io_site_1">
101-
<input name="I" num_pins="1"/>
102-
<output name="O" num_pins="1"/>
96+
<pb_type name="io_site_0">
97+
<input name="in" num_pins="1"/>
98+
<output name="out" num_pins="1"/>
10399
<mode name="INOUT">
104-
<pb_type blif_model=".subckt IO_1" name="io_1" num_pb="1">
105-
<input name="I" num_pins="1"/>
106-
<output name="O" num_pins="1"/>
107-
<delay_constant max="1.667e-9" in_port="io_1.I" out_port="io_1.O"/>
108-
</pb_type>
109-
<interconnect>
110-
<direct input="io_site_1.I" name="i_1" output="io_1.I"/>
111-
<direct input="io_1.O" name="o_1" output="io_site_1.O"/>
112-
</interconnect>
113-
</mode>
114-
<mode name="IN">
115-
<pb_type blif_model=".input" name="input_1" num_pb="1">
116-
<output name="inpad" num_pins="1"/>
100+
<pb_type blif_model=".subckt IO_0" name="io_0" num_pb="1">
101+
<input name="in" num_pins="1"/>
102+
<output name="out" num_pins="1"/>
103+
<delay_constant max="1.667e-9" in_port="io_0.in" out_port="io_0.out"/>
117104
</pb_type>
118105
<interconnect>
119-
<direct input="input_1.inpad" name="i_1" output="io_site_1.O"/>
106+
<direct input="io_site_0.in" name="i_0" output="io_0.in"/>
107+
<direct input="io_0.out" name="o_0" output="io_site_0.out"/>
120108
</interconnect>
121109
</mode>
122-
<mode name="OUT">
123-
<pb_type blif_model=".output" name="output_1" num_pb="1">
124-
<input name="outpad" num_pins="1"/>
110+
</pb_type>
111+
<pb_type name="io_site_1">
112+
<input name="in" num_pins="1"/>
113+
<output name="out" num_pins="1"/>
114+
<mode name="INOUT">
115+
<pb_type blif_model=".subckt IO_1" name="io_1" num_pb="1">
116+
<input name="in" num_pins="1"/>
117+
<output name="out" num_pins="1"/>
118+
<delay_constant max="1.667e-9" in_port="io_1.in" out_port="io_1.out"/>
125119
</pb_type>
126120
<interconnect>
127-
<direct input="io_site_1.I" name="o_1" output="output_1.outpad"/>
121+
<direct input="io_site_1.in" name="i_1" output="io_1.in"/>
122+
<direct input="io_1.out" name="o_1" output="io_site_1.out"/>
128123
</interconnect>
129124
</mode>
130125
</pb_type>
131126
<pb_type name="io_site_2">
132-
<input name="I" num_pins="1"/>
133-
<output name="O" num_pins="1"/>
127+
<input name="in" num_pins="1"/>
128+
<output name="out" num_pins="1"/>
134129
<mode name="INOUT">
135130
<pb_type blif_model=".subckt IO_2" name="io_2" num_pb="1">
136-
<input name="I" num_pins="1"/>
137-
<output name="O" num_pins="1"/>
138-
<delay_constant max="1.667e-9" in_port="io_2.I" out_port="io_2.O"/>
139-
</pb_type>
140-
<interconnect>
141-
<direct input="io_site_2.I" name="i_2" output="io_2.I"/>
142-
<direct input="io_2.O" name="o_2" output="io_site_2.O"/>
143-
</interconnect>
144-
</mode>
145-
<mode name="IN">
146-
<pb_type blif_model=".input" name="input_2" num_pb="1">
147-
<output name="inpad" num_pins="1"/>
148-
</pb_type>
149-
<interconnect>
150-
<direct input="input_2.inpad" name="i_2" output="io_site_2.O"/>
151-
</interconnect>
152-
</mode>
153-
<mode name="OUT">
154-
<pb_type blif_model=".output" name="output_2" num_pb="1">
155-
<input name="outpad" num_pins="1"/>
131+
<input name="in" num_pins="1"/>
132+
<output name="out" num_pins="1"/>
133+
<delay_constant max="1.667e-9" in_port="io_2.in" out_port="io_2.out"/>
156134
</pb_type>
157135
<interconnect>
158-
<direct input="io_site_2.I" name="o_2" output="output_2.outpad"/>
136+
<direct input="io_site_2.in" name="i_2" output="io_2.in"/>
137+
<direct input="io_2.out" name="o_2" output="io_site_2.out"/>
159138
</interconnect>
160139
</mode>
161140
</pb_type>
162141
<pb_type name="io_site_3">
163-
<input name="I" num_pins="1"/>
164-
<output name="O" num_pins="1"/>
142+
<input name="in" num_pins="1"/>
143+
<output name="out" num_pins="1"/>
165144
<mode name="INOUT">
166145
<pb_type blif_model=".subckt IO_3" name="io_3" num_pb="1">
167-
<input name="I" num_pins="1"/>
168-
<output name="O" num_pins="1"/>
169-
<delay_constant max="1.667e-9" in_port="io_3.I" out_port="io_3.O"/>
170-
</pb_type>
171-
<interconnect>
172-
<direct input="io_site_3.I" name="i_3" output="io_3.I"/>
173-
<direct input="io_3.O" name="o_3" output="io_site_3.O"/>
174-
</interconnect>
175-
</mode>
176-
<mode name="IN">
177-
<pb_type blif_model=".input" name="input_3" num_pb="1">
178-
<output name="inpad" num_pins="1"/>
179-
</pb_type>
180-
<interconnect>
181-
<direct input="input_3.inpad" name="i_3" output="io_site_3.O"/>
182-
</interconnect>
183-
</mode>
184-
<mode name="OUT">
185-
<pb_type blif_model=".output" name="output_3" num_pb="1">
186-
<input name="outpad" num_pins="1"/>
146+
<input name="in" num_pins="1"/>
147+
<output name="out" num_pins="1"/>
148+
<delay_constant max="1.667e-9" in_port="io_3.in" out_port="io_3.out"/>
187149
</pb_type>
188150
<interconnect>
189-
<direct input="io_site_3.I" name="o_3" output="output_3.outpad"/>
151+
<direct input="io_site_3.in" name="i_3" output="io_3.in"/>
152+
<direct input="io_3.out" name="o_3" output="io_site_3.out"/>
190153
</interconnect>
191154
</mode>
192155
</pb_type>
193156
</complexblocklist>
194157
<layout>
195-
<fixed_layout name="TEST" width="4" height="4">
158+
<fixed_layout name="TEST" width="5" height="5">
196159
<single priority="1" type="io_tile" x="0" y="0"/>
197160
<single priority="1" type="io_tile" x="0" y="1"/>
198161
<single priority="1" type="io_tile" x="0" y="2"/>
199162
<single priority="1" type="io_tile" x="0" y="3"/>
200-
<single priority="1" type="io_tile" x="1" y="0"/>
201-
<single priority="1" type="io_tile" x="1" y="1"/>
202-
<single priority="1" type="io_tile" x="1" y="2"/>
203-
<single priority="1" type="io_tile" x="1" y="3"/>
204-
<single priority="1" type="io_tile" x="2" y="0"/>
205-
<single priority="1" type="io_tile" x="2" y="1"/>
206-
<single priority="1" type="io_tile" x="2" y="2"/>
207-
<single priority="1" type="io_tile" x="2" y="3"/>
163+
<single priority="1" type="pass_through_tile" x="1" y="0"/>
164+
<single priority="1" type="pass_through_tile" x="1" y="1"/>
165+
<single priority="1" type="pass_through_tile" x="1" y="2"/>
166+
<single priority="1" type="pass_through_tile" x="1" y="3"/>
167+
<single priority="1" type="pass_through_tile" x="2" y="0"/>
168+
<single priority="1" type="pass_through_tile" x="2" y="1"/>
169+
<single priority="1" type="pass_through_tile" x="2" y="2"/>
170+
<single priority="1" type="pass_through_tile" x="2" y="3"/>
208171
<single priority="1" type="io_tile" x="3" y="0"/>
209172
<single priority="1" type="io_tile" x="3" y="1"/>
210173
<single priority="1" type="io_tile" x="3" y="2"/>
@@ -233,4 +196,8 @@
233196
<cb type="pattern">1 1 1 1 1 1 1 1 1 1 1 1</cb>
234197
</segment>
235198
</segmentlist>
199+
<directlist>
200+
<direct from_pin="pass_through_tile.out" name="gno" to_pin="io_tile.in" x_offset="-1" y_offset="0" z_offset="0"/>
201+
<direct from_pin="io_tile.out" name="gna" to_pin="pass_through_tile.in" x_offset="-1" y_offset="0" z_offset="0"/>
202+
</directlist>
236203
</architecture>

vtr_flow/benchmarks/microbenchmarks/equivalent.blif

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
.names $false
55
.names $true
66
1
7-
.subckt IO_0 I=in O=out_1
8-
.subckt IO_1 I=out_1 O=out_2
9-
.subckt IO_2 I=out_2 O=out
7+
.subckt IO_0 in=in out=out_1
8+
.subckt IO_1 in=out_1 out=out
109
.end

0 commit comments

Comments
 (0)