1 <?xml version="1.0" encoding="UTF-8"?>
2 <processnetwork xmlns="http://www.tik.ee.ethz.ch/~shapes/schema/PROCESSNETWORK" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tik.ee.ethz.ch/~shapes/schema/PROCESSNETWORK
3 http://www.tik.ee.ethz.ch/~shapes/schema/processnetwork.xsd" name="example3">
5 <variable value="3" name="N"/>
6 <variable value="10" name="FIFO_SIZE"/>
8 <!-- instantiate resources -->
9 <iterator variable="i" range="N">
10 <process name="horizontal_generator">
11 <append function="i"/>
12 <port type="output" name="h_out"/>
13 <source type="c" location="horizontal_generator.c"/>
15 <process name="horizontal_consumer">
16 <append function="i"/>
17 <port type="input" name="h_in"/>
18 <source type="c" location="horizontal_consumer.c"/>
22 <iterator variable="i" range="N">
23 <process name="vertical_generator">
24 <append function="i"/>
25 <port type="output" name="v_out"/>
26 <source type="c" location="vertical_generator.c"/>
28 <process name="vertical_consumer">
29 <append function="i"/>
30 <port type="input" name="v_in"/>
31 <source type="c" location="vertical_consumer.c"/>
35 <iterator variable="i" range="N">
36 <iterator variable="j" range="N">
37 <process name="forward">
38 <append function="i"/>
39 <append function="j"/>
40 <port type="input" name="west"/>
41 <port type="input" name="north"/>
42 <port type="output" name="east"/>
43 <port type="output" name="south"/>
44 <source type="c" location="forward.c"/>
49 <iterator variable="i" range="N + 1">
50 <iterator variable="j" range="N">
51 <sw_channel type="fifo" size="FIFO_SIZE" name="C_h">
52 <append function="i"/>
53 <append function="j"/>
54 <port type="input" name="in"/>
55 <port type="output" name="out"/>
57 <sw_channel type="fifo" size="FIFO_SIZE" name="C_v">
58 <append function="j"/>
59 <append function="i"/>
60 <port type="input" name="in"/>
61 <port type="output" name="out"/>
66 <!-- instantiate connections -->
67 <iterator variable="i" range="N">
68 <iterator variable="j" range="N">
69 <connection name="west">
70 <append function="i"/>
71 <append function="j"/>
73 <append function="i"/>
74 <append function="j"/>
77 <target name="forward">
78 <append function="i"/>
79 <append function="j"/>
84 <connection name="east">
85 <append function="i"/>
86 <append function="j"/>
87 <origin name="forward">
88 <append function="i"/>
89 <append function="j"/>
93 <append function="i + 1"/>
94 <append function="j"/>
99 <connection name="north">
100 <append function="i"/>
101 <append function="j"/>
103 <append function="i"/>
104 <append function="j"/>
107 <target name="forward">
108 <append function="i"/>
109 <append function="j"/>
114 <connection name="south">
115 <append function="i"/>
116 <append function="j"/>
117 <origin name="forward">
118 <append function="i"/>
119 <append function="j"/>
123 <append function="i"/>
124 <append function="j + 1"/>
131 <!-- boundary connections -->
132 <iterator variable="i" range="N">
133 <connection name="west">
134 <append function="i + 1"/>
135 <origin name="horizontal_generator">
136 <append function="i"/>
140 <append function="0"/>
141 <append function="i"/>
146 <connection name="east">
147 <append function="i + 1"/>
149 <append function="N"/>
150 <append function="i"/>
153 <target name="horizontal_consumer">
154 <append function="i"/>
159 <connection name="north">
160 <append function="i + 1"/>
161 <origin name="vertical_generator">
162 <append function="i"/>
166 <append function="i"/>
167 <append function="0"/>
172 <connection name="south">
173 <append function="i + 1"/>
175 <append function="i"/>
176 <append function="N"/>
179 <target name="vertical_consumer">
180 <append function="i"/>