dol: initial dol commit
[jump.git] / dol / examples / example3 / example3.xml
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">
4
5   <variable value="3" name="N"/>
6   <variable value="10" name="FIFO_SIZE"/>
7
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"/>
14     </process>
15      <process name="horizontal_consumer">
16       <append function="i"/> 
17       <port type="input" name="h_in"/>
18       <source type="c" location="horizontal_consumer.c"/>
19     </process>
20   </iterator>
21
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"/>
27     </process>
28      <process name="vertical_consumer">
29       <append function="i"/>
30       <port type="input" name="v_in"/>
31       <source type="c" location="vertical_consumer.c"/>
32     </process>
33   </iterator>
34   
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"/>
45       </process>
46     </iterator>
47   </iterator>
48   
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"/>
56       </sw_channel>
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"/>
62       </sw_channel>
63     </iterator>
64   </iterator>
65
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"/>
72         <origin name="C_h">
73           <append function="i"/>
74           <append function="j"/>
75           <port name="out"/>
76         </origin>
77         <target name="forward">
78            <append function="i"/>
79            <append function="j"/>
80            <port name="west"/>
81          </target>
82       </connection>
83       
84       <connection name="east">
85         <append function="i"/>
86         <append function="j"/>
87         <origin name="forward">
88           <append function="i"/>
89           <append function="j"/>
90           <port name="east"/>
91         </origin>
92         <target name="C_h">
93            <append function="i + 1"/>
94            <append function="j"/>
95            <port name="in"/>
96          </target>
97       </connection>
98             
99       <connection name="north">
100         <append function="i"/>
101         <append function="j"/>
102         <origin name="C_v">
103           <append function="i"/>
104           <append function="j"/>
105           <port name="out"/>
106         </origin>
107         <target name="forward">
108            <append function="i"/>
109            <append function="j"/>
110            <port name="north"/>
111          </target>
112       </connection>
113       
114       <connection name="south">
115         <append function="i"/>
116         <append function="j"/>
117         <origin name="forward">
118           <append function="i"/>
119           <append function="j"/>
120           <port name="south"/>
121         </origin>
122         <target name="C_v">
123            <append function="i"/>
124            <append function="j + 1"/>
125            <port name="in"/>
126          </target>
127       </connection>
128     </iterator>
129   </iterator>
130   
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"/>
137         <port name="h_out"/>
138       </origin>
139       <target name="C_h">
140          <append function="0"/>
141          <append function="i"/>
142          <port name="in"/>
143        </target>
144     </connection>
145
146     <connection name="east">
147       <append function="i + 1"/>
148       <origin name="C_h">
149          <append function="N"/>
150          <append function="i"/>
151          <port name="out"/>
152       </origin>
153       <target name="horizontal_consumer">
154          <append function="i"/>
155          <port name="h_in"/>
156        </target>
157     </connection>
158
159     <connection name="north">
160       <append function="i + 1"/>
161       <origin name="vertical_generator">
162         <append function="i"/>
163         <port name="v_out"/>
164       </origin>
165       <target name="C_v">
166          <append function="i"/>
167          <append function="0"/>
168          <port name="in"/>
169        </target>
170     </connection>
171
172     <connection name="south">
173       <append function="i + 1"/>
174       <origin name="C_v">
175          <append function="i"/>
176          <append function="N"/>
177          <port name="out"/>
178       </origin>
179       <target name="vertical_consumer">
180          <append function="i"/>
181          <port name="v_in"/>
182        </target>
183     </connection>
184   </iterator>
185
186 </processnetwork>