]> git.sur5r.net Git - freertos/blob - Demo/PPC405_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtXdsSVG_BlkdBusses.xsl
89d42c283c91ded8d849039d93df63861ccb354b
[freertos] / Demo / PPC405_Xilinx_Virtex4_GCC / __xps / .dswkshop / MdtXdsSVG_BlkdBusses.xsl
1 <?xml version="1.0" standalone="no"?>
2 <xsl:stylesheet version="1.0"
3            xmlns:svg="http://www.w3.org/2000/svg"
4            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5            xmlns:exsl="http://exslt.org/common"
6            xmlns:xlink="http://www.w3.org/1999/xlink">
7                 
8 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
9                doctype-public="-//W3C//DTD SVG 1.0//EN"
10                    doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
11                 
12
13         
14 <xsl:template name="Define_Busses">
15         <xsl:param name="drawarea_w"  select="500"/>
16         <xsl:param name="drawarea_h"  select="500"/>
17         
18         <xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
19                 
20                 <xsl:call-template name="Define_BusArrowsEastWest"> 
21                         <xsl:with-param name="bus_type"    select="@BUSSTD"/>
22                 </xsl:call-template>
23                 
24                 <xsl:call-template name="Define_BusArrowsNorthSouth"> 
25                         <xsl:with-param name="bus_type"    select="@BUSSTD"/>
26                 </xsl:call-template>
27                 
28                 <xsl:call-template name="Define_SplitBusses"> 
29                         <xsl:with-param name="bus_type"    select="@BUSSTD"/>
30                 </xsl:call-template>
31                 
32         </xsl:for-each>
33         
34         <xsl:call-template name="Define_SharedBus"> 
35                 <xsl:with-param name="bus_type"    select="'PLB'"/>
36                 <xsl:with-param name="drawarea_w"  select="$drawarea_w"/>
37         </xsl:call-template>
38         
39         <xsl:call-template name="Define_SharedBus"> 
40                 <xsl:with-param name="bus_type"    select="'PLBV46'"/>
41                 <xsl:with-param name="drawarea_w"  select="$drawarea_w"/>
42         </xsl:call-template>
43         
44         <xsl:call-template name="Define_SharedBus"> 
45                 <xsl:with-param name="bus_type"    select="'OPB'"/>
46                 <xsl:with-param name="drawarea_w"  select="$drawarea_w"/>
47         </xsl:call-template>
48         
49         <xsl:call-template name="Define_SharedBus_Group"/> 
50         
51 <!--    
52         <xsl:call-template name="Define_SharedBus"> 
53                 <xsl:with-param name="bus_type"    select="'PLB'"/>
54                 <xsl:with-param name="drawarea_w"  select="$drawarea_w"/>
55         </xsl:call-template>
56 -->     
57         
58 </xsl:template>
59
60 <xsl:template name="Define_BusArrowsEastWest"> 
61         <xsl:param name="bus_type"    select="'OPB'"/>
62         
63         <xsl:variable name="bus_col_">
64                 <xsl:call-template name="BusType2Color">
65                         <xsl:with-param name="busType" select="$bus_type"/>
66                 </xsl:call-template>    
67         </xsl:variable>
68         
69         <xsl:variable name="bus_col_lt_">
70                 <xsl:call-template name="BusType2LightColor">
71                         <xsl:with-param name="busType" select="$bus_type"/>
72                 </xsl:call-template>    
73         </xsl:variable>
74         
75         <symbol id="{$bus_type}_BusArrowEast">
76                 <path class="bus"
77                           d="M   0,0
78                                  L     {$BUS_ARROW_W}, {ceiling($BUS_ARROW_H div 2)}
79                                  L   0,{$BUS_ARROW_H}, 
80                                  Z" style="stroke:none; fill:{$bus_col_}"/>
81         </symbol>
82         
83         <symbol id="{$bus_type}_BusArrowWest">
84                 <use   x="0"   y="0"  xlink:href="#{$bus_type}_BusArrowEast" transform="scale(-1,1) translate({$BUS_ARROW_W * -1},0)"/>
85         </symbol>
86         
87 <!--    
88         <symbol id="{$bus_type}_BusArrowHInitiator">
89                 <rect x="0" 
90                           y="{$BUS_ARROW_G}"  
91                           width= "{$BUS_ARROW_W}" 
92                           height="{$BUS_ARROW_W - ($BUS_ARROW_G * 2)}" 
93                          style="stroke:none; fill:{$bus_col_}"/>
94         </symbol>
95 -->     
96         <symbol id="{$bus_type}_BusArrowHInitiator">
97                 <rect x="0" 
98                           y="{$BUS_ARROW_G}"  
99                           width= "{$BUS_ARROW_W}" 
100                           height="{$P2P_BUS_W}" 
101                          style="stroke:none; fill:{$bus_col_}"/>
102         </symbol>
103         
104 </xsl:template>
105
106 <!--    
107         <xsl:param name="bus_col"     select="'OPB'"/>
108 -->     
109
110 <xsl:template name="Define_BusArrowsNorthSouth">
111         <xsl:param name="bus_type"    select="'OPB'"/>
112         
113         <xsl:variable name="bus_col_">
114                 <xsl:call-template name="BusType2Color">
115                         <xsl:with-param name="busType" select="$bus_type"/>
116                 </xsl:call-template>    
117         </xsl:variable>
118         
119         <xsl:variable name="bus_col_lt_">
120                 <xsl:call-template name="BusType2LightColor">
121                         <xsl:with-param name="busType" select="$bus_type"/>
122                 </xsl:call-template>    
123         </xsl:variable>
124         
125         <symbol id="{$bus_type}_BusArrowSouth">
126                 <path class="bus"
127                           d="M   0,0
128                                  L   {$BUS_ARROW_W},0
129                                  L   {ceiling($BUS_ARROW_W div 2)}, {$BUS_ARROW_H}
130                                  Z" style="stroke:none; fill:{$bus_col_}"/>
131         </symbol>
132         
133         <symbol id="{$bus_type}_BusArrowNorth">
134                 <use   x="0"   y="0"  xlink:href="#{$bus_type}_BusArrowSouth" transform="scale(1,-1) translate(0,{$BUS_ARROW_H * -1})"/>
135         </symbol>
136         
137         <symbol id="{$bus_type}_BusArrowInitiator">
138                 <rect x="{$BUS_ARROW_G}" 
139                           y="0"  
140                           width= "{$BUS_ARROW_W - ($BUS_ARROW_G * 2)}" 
141                           height="{$BUS_ARROW_H}" 
142                          style="stroke:none; fill:{$bus_col_}"/>
143         </symbol>
144         
145 </xsl:template>
146         
147
148 <xsl:template name="Draw_P2PBus">
149         
150         <xsl:param name="busX"    select="0"/>
151         <xsl:param name="busTop"  select="0"/>
152         <xsl:param name="busBot"  select="0"/>
153         <xsl:param name="botRnk"  select="'_unk_'"/>
154         <xsl:param name="topRnk"  select="'_unk_'"/>
155         <xsl:param name="busStd"  select="'_bstd_'"/>
156         <xsl:param name="busName" select="'_p2pbus_'"/>
157         
158         <xsl:variable name="busCol_">
159                 <xsl:choose>
160                         
161                         <xsl:when test="@BUSSTD">
162                                 <xsl:call-template name="BusType2Color">
163                                         <xsl:with-param name="busType" select="@BUSSTD"/>
164                                 </xsl:call-template>    
165                         </xsl:when>
166                         
167                         <xsl:when test="not($busStd = '_bstd_')">
168                                 <xsl:call-template name="BusType2Color">
169                                         <xsl:with-param name="busType" select="$busStd"/>
170                                 </xsl:call-template>    
171                         </xsl:when>
172                         
173                         <xsl:otherwise>
174                                 <xsl:value-of select="$COL_OPBBUS"/>    
175                         </xsl:otherwise>
176                         
177                 </xsl:choose>
178         </xsl:variable>
179         
180         <xsl:variable name="p2pH_" select="($busBot - $busTop) - ($BUS_ARROW_H * 2)"/>
181
182         <xsl:variable name="botArrow_">
183                 <xsl:choose>
184                         <xsl:when test="((($botRnk = 'INITIATOR') or ($botRnk = 'MASTER')) and ($busStd = 'FSL'))">BusArrowInitiator</xsl:when>
185                         <xsl:otherwise>BusArrowSouth</xsl:otherwise> 
186                 </xsl:choose>           
187         </xsl:variable>
188         
189         <xsl:variable name="topArrow_">
190                 <xsl:choose>
191                         <xsl:when test="((($topRnk = 'INITIATOR') or ($topRnk = 'MASTER')) and ($busStd = 'FSL'))">BusArrowInitiator</xsl:when>
192                         <xsl:otherwise>BusArrowNorth</xsl:otherwise> 
193                 </xsl:choose>           
194         </xsl:variable>
195         
196         <xsl:if test="@BUSSTD">         
197                 <use  x="{($busX + ceiling($BIFC_W div 2)) - ceiling($BUS_ARROW_W div 2)}"  
198                       y="{$busTop + ($BIFC_H  - $BUS_ARROW_H) + $BUS_ARROW_H}"  
199                       xlink:href="#{@BUSSTD}_{$topArrow_}"/>    
200                   
201                 <use  x="{($busX + ceiling($BIFC_W div 2)) - ceiling($BUS_ARROW_W div 2)}"  
202                       y="{$busBot - $BUS_ARROW_H}"  
203                       xlink:href="#{@BUSSTD}_{$botArrow_}"/>    
204         </xsl:if>                 
205         
206         <xsl:if test="(not(@BUSSTD) and not($busStd = '_bstd_'))">              
207                 <use  x="{($busX + ceiling($BIFC_W div 2)) - ceiling($BUS_ARROW_W div 2)}"  
208                       y="{$busTop + ($BIFC_H  - $BUS_ARROW_H) + $BUS_ARROW_H}"  
209                       xlink:href="#{$busStd}_{$topArrow_}"/>    
210                   
211                 <use  x="{($busX + ceiling($BIFC_W div 2)) - ceiling($BUS_ARROW_W div 2)}"  
212                       y="{$busBot - $BUS_ARROW_H}"  
213                       xlink:href="#{$busStd}_{$botArrow_}"/>    
214         </xsl:if>                 
215         
216         
217         <rect x="{($busX + ceiling($BIFC_W div 2)) - ceiling($BUS_ARROW_W div 2) + $BUS_ARROW_G}"  
218                   y="{$busTop + $BIFC_H + $BUS_ARROW_H}"  
219                   height= "{$p2pH_  - ($BUS_ARROW_H * 2)}" 
220                   width="{$BUS_ARROW_W - ($BUS_ARROW_G * 2)}" 
221                   style="stroke:none; fill:{$busCol_}"/>
222                   
223         <text class="p2pbuslabel" 
224                           x="{$busX   + $BUS_ARROW_W + ceiling($BUS_ARROW_W div 2) + ceiling($BUS_ARROW_W div 4) + 4}"
225                           y="{$busTop + ($BUS_ARROW_H * 3)}">
226                         <xsl:value-of select="$busName"/>
227         </text>
228         
229         <xsl:if test="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName)]/@GROUP">
230                 
231            <text class="ioplblgrp" 
232                   x="{$busX   + $BUS_ARROW_W + ceiling($BUS_ARROW_W div 2) + ceiling($BUS_ARROW_W div 4) + 6}"
233                   y="{$busTop + ($BUS_ARROW_H * 10)}">
234                            <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$busName)]/@GROUP"/>
235                 </text>
236            
237         </xsl:if>       
238                 
239 </xsl:template>
240
241         
242 <xsl:template name="Draw_Proc2ProcBus">
243         
244         <xsl:param name="bc_Y"     select="0"/>
245         <xsl:param name="bcLeft_X" select="0"/>
246         <xsl:param name="bcRght_X" select="0"/>
247         
248         <xsl:param name="leftRnk"  select="'_unk_'"/>
249         <xsl:param name="rghtRnk"  select="'_unk_'"/>
250         
251         <xsl:param name="busStd"   select="'_bstd_'"/>
252         <xsl:param name="busName"  select="'_p2pbus_'"/>
253         
254         <xsl:variable name="busCol_">
255                 <xsl:call-template name="BusType2Color">
256                         <xsl:with-param name="busType" select="$busStd"/>
257                 </xsl:call-template>    
258         </xsl:variable>
259         
260         <xsl:variable name="pr2pr_W_" select="($bcRght_X - $bcLeft_X)"/>
261
262         <xsl:variable name="leftArrow_">
263                 <xsl:choose>
264                         <xsl:when test="((($leftRnk = 'INITIATOR') or ($leftRnk = 'MASTER')) and ($busStd = 'FSL'))">BusArrowHInitiator</xsl:when>
265                         <xsl:otherwise>BusArrowWest</xsl:otherwise> 
266                 </xsl:choose>           
267         </xsl:variable>
268         
269         <xsl:variable name="rghtArrow_">
270                 <xsl:choose>
271                         <xsl:when test="((($rghtRnk = 'INITIATOR') or ($rghtRnk = 'MASTER')) and ($busStd = 'FSL'))">BusArrowHInitiator</xsl:when>
272                         <xsl:otherwise>BusArrowEast</xsl:otherwise> 
273                 </xsl:choose>           
274         </xsl:variable>
275         
276         
277         <xsl:variable name="bus_Y_" select="($bc_Y + ceiling($BIFC_H div 2) - ceiling($BUS_ARROW_H div 2))"/>
278         
279         <use  x="{$bcLeft_X}"                y="{$bus_Y_}"  xlink:href="#{$busStd}_{$leftArrow_}"/>     
280         <use  x="{$bcRght_X - $BUS_ARROW_W}" y="{$bus_Y_}"  xlink:href="#{$busStd}_{$rghtArrow_}"/>     
281         
282         <rect x="{$bcLeft_X + $BUS_ARROW_W}" 
283                   y="{$bus_Y_   + $BUS_ARROW_G}"  
284                   width= "{$pr2pr_W_    - (2 * $BUS_ARROW_W)}" 
285                   height="{$BUS_ARROW_H - (2 * $BUS_ARROW_G)}" style="stroke:none; fill:{$busCol_}"/>
286         
287         <text class="horizp2pbuslabel" 
288                           x="{$bcLeft_X  + $BUS_ARROW_W + ceiling($BUS_ARROW_W div 2) + ceiling($BUS_ARROW_W div 4) + 4}"
289                           y="{($bus_Y_)}">
290                         <xsl:value-of select="$busName"/>
291         </text>
292         
293         <text class="horizp2pbuslabel" 
294                           x="{$bcRght_X - (string-length($busName) * 8)}"
295                           y="{($bus_Y_)}">
296                         <xsl:value-of select="$busName"/>
297         </text>
298         
299 </xsl:template>
300         
301         
302 <xsl:template name="Draw_SplitConnBus">
303         
304         <xsl:param name="bc_X"     select="0"/>
305         <xsl:param name="bc_Y"     select="0"/>
306         <xsl:param name="bc_Rnk"   select="'_unk_'"/>
307         <xsl:param name="bc_Side"  select="'_unk_'"/>
308         
309         <xsl:param name="busStd"   select="'_bstd_'"/>
310         <xsl:param name="busName"  select="'_p2pbus_'"/>
311         
312         <xsl:variable name="busCol_">
313                 <xsl:call-template name="BusType2Color">
314                         <xsl:with-param name="busType" select="$busStd"/>
315                 </xsl:call-template>    
316         </xsl:variable>
317         
318         <xsl:variable name="connArrow_">
319                 <xsl:choose>
320                         <xsl:when test="((($bc_Rnk = 'INITIATOR') or ($bc_Rnk = 'MASTER')) and ($busStd = 'FSL'))">BusArrowHInitiator</xsl:when>
321                         <xsl:otherwise>BusArrowEast</xsl:otherwise> 
322                 </xsl:choose>           
323         </xsl:variable>
324         
325         <xsl:variable name="arrow_Y_" select="($bc_Y + ceiling($BIFC_H div 2) - ceiling($BUS_ARROW_H div 2))"/>
326         
327         <xsl:variable name="bus_X_">
328                 <xsl:choose>
329                         <xsl:when test="$bc_Side = '0'"><xsl:value-of select="($bc_X - ($BUS_ARROW_W * 2))"/></xsl:when>
330                         <xsl:when test="$bc_Side = '1'"><xsl:value-of select="($bc_X + $BIFC_W + $BUS_ARROW_W)"/></xsl:when>
331                 </xsl:choose>           
332         </xsl:variable> 
333         
334 <!--    
335         <use  x="{$bus_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_BusArrowHInitiator"/>      
336 -->     
337         
338         <xsl:variable name="arrow_X_">
339                 <xsl:choose>
340                         <xsl:when test="$bc_Side = '0'"><xsl:value-of select="($bc_X - $BUS_ARROW_W)"/></xsl:when>
341                         <xsl:when test="$bc_Side = '1'"><xsl:value-of select="($bc_X + $BIFC_W)"/></xsl:when>
342                 </xsl:choose>           
343         </xsl:variable> 
344         
345 <!--    
346         <xsl:message>The bus name is <xsl:value-of select="$busName"/></xsl:message>
347         <xsl:message>The bif side is <xsl:value-of select="$bc_Side"/></xsl:message>
348         <xsl:message>The bif rank is <xsl:value-of select="$bc_Rnk"/></xsl:message>
349 -->     
350         <xsl:choose>
351                 <xsl:when test="(($busStd = 'FSL') and (($bc_Rnk = 'MASTER') or ($bc_Rnk = 'INITIATOR')))">
352                         <use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_{$connArrow_}"/> 
353                         <use  x="{$bus_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_BusArrowHInitiator"/>      
354                 </xsl:when>
355                 <xsl:when test="(($bc_Side = '1') and not(@busStd = 'FSL') and (($bc_Rnk = 'MASTER') or ($bc_Rnk = 'INITIATOR')))">
356                         <use  x="{$arrow_X_ - $BIFC_W}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_SplitBus_WEST"/>
357                 </xsl:when>
358                 <xsl:when test="(($bc_Side = '1') and (($bc_Rnk = 'SLAVE') or ($bc_Rnk = 'TARGET') or ($bc_Rnk = 'TRANSPARENT')))">
359                         <use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_SplitBus_EAST"/>
360                 </xsl:when>
361                 <xsl:otherwise>
362                         <use  x="{$arrow_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_{$connArrow_}"/> 
363                         <use  x="{$bus_X_}"  y="{$arrow_Y_}"  xlink:href="#{$busStd}_BusArrowHInitiator"/>      
364                 </xsl:otherwise>
365         </xsl:choose>
366         
367         <xsl:variable name="text_X_">
368                 <xsl:choose>
369                         <xsl:when test="$bc_Side = '0'"><xsl:value-of select="($bus_X_ - $BUS_ARROW_W - (string-length($busName) * 5))"/></xsl:when>
370                         <xsl:when test="$bc_Side = '1'"><xsl:value-of select="($bus_X_ + $BUS_ARROW_W)"/></xsl:when>
371                 </xsl:choose>           
372         </xsl:variable> 
373                 
374         
375         <text class="horizp2pbuslabel" 
376                           x="{$text_X_}"
377                           y="{($arrow_Y_)}">
378                         <xsl:value-of select="$busName"/>
379         </text>
380         
381 </xsl:template>
382         
383         
384 <xsl:template name="Define_SharedBus"> 
385         
386         <xsl:param name="bus_type"    select="'OPB'"/>
387         <xsl:param name="drawarea_w"  select="500"/>
388         
389         <xsl:variable name="sharedbus_w_"  select="($drawarea_w - ($BLKD_INNER_GAP * 2))"/>
390         
391         <xsl:variable name="bus_col_">
392                 <xsl:call-template name="BusType2Color">
393                         <xsl:with-param name="busType" select="$bus_type"/>
394                 </xsl:call-template>    
395         </xsl:variable>
396         
397         <xsl:variable name="bus_col_lt_">
398                 <xsl:call-template name="BusType2LightColor">
399                         <xsl:with-param name="busType" select="$bus_type"/>
400                 </xsl:call-template>    
401         </xsl:variable>
402         
403          <symbol id="{$bus_type}_SharedBus">
404                 <use  x="0"                            y="0"    xlink:href="#{$bus_type}_BusArrowWest"/>        
405                 <use  x="{$sharedbus_w_ - $BUS_ARROW_W}" y="0"  xlink:href="#{$bus_type}_BusArrowEast"/>        
406                 
407                 <rect x="{$BUS_ARROW_W}" 
408                           y="{$BUS_ARROW_G}"  
409                           width= "{$sharedbus_w_  - ($BUS_ARROW_W * 2)}" 
410                           height="{$BUS_ARROW_H - (2 * $BUS_ARROW_G)}" style="stroke:none; fill:{$bus_col_}"/>
411         </symbol>
412 </xsl:template>
413
414         
415 <xsl:template name="Define_SplitBusses"> 
416         
417         <xsl:param name="bus_type"    sselect="'FSL'"/>
418         
419         <xsl:variable name="bus_col_">
420                 <xsl:call-template name="BusType2Color">
421                         <xsl:with-param name="busType" select="$bus_type"/>
422                 </xsl:call-template>    
423         </xsl:variable>
424         
425         <xsl:variable name="bifc_r_" select="ceiling($BIFC_W div 3)"/>
426         
427          <symbol id="{$bus_type}_SplitBus_EAST">
428                 <use  x="0"  y="0"    xlink:href="#{$bus_type}_BusArrowWest"/>  
429                 
430                 <rect x="{$BUS_ARROW_W}" 
431                           y="{$BUS_ARROW_G}"  
432                           width= "{$BIFC_W}" 
433                           height="{$BUS_ARROW_H - (2 * $BUS_ARROW_G)}" style="stroke:none; fill:{$bus_col_}"/>
434                  
435 <!--             
436                 <rect x="{$BUS_ARROW_W + $BIFC_W}"
437                           y="0"  
438                           width= "{$BIFC_W}" 
439                           height="{$BUS_ARROW_H}" style="stroke:none; fill:{$bus_col_}"/>
440         -->      
441 <!--            
442                 <circle 
443                           cx="{$BUS_ARROW_W + $BIFC_W}"  
444                           cy="{ceiling($BIFC_Wi div 2)}" 
445                           r="{ceiling($BIFC_Wi div 2)}" 
446                           style="fill:{$bus_col_}; stroke:none;"/>        
447 -->              
448         </symbol>
449         
450         <xsl:variable name="splbus_w_" select="($BUS_ARROW_W + $BIFC_W + $BIFC_Wi)"/>
451         
452          <symbol id="{$bus_type}_SplitBus_WEST">
453                 <use   x="0"   y="0"  xlink:href="#{$bus_type}_SplitBus_EAST" transform="scale(-1,1) translate({$splbus_w_ * -1},0)"/>
454                  
455         </symbol>
456         
457          <symbol id="{$bus_type}_SplitBus_OneWay">
458                  
459 <!--             
460                 <use  x="0"  y="0"    xlink:href="#{$bus_type}_BusArrowWest"/>  
461 -->     
462                 <rect x="0" 
463                           y="{$BUS_ARROW_G}"  
464                           width= "{($BUS_ARROW_W * 2)}" 
465                           height="{$BUS_ARROW_H - (2 * $BUS_ARROW_G)}" style="stroke:none; fill:{$bus_col_}"/>
466                  
467                 <rect x="{($BUS_ARROW_W * 2)}"
468                           y="0"  
469                           width= "{$BUS_ARROW_H}" 
470                           height="{$BUS_ARROW_H}" style="stroke:none; fill:{$bus_col_}"/>
471                  
472 <!--             
473                 
474                 <rect x="{$BUS_ARROW_W}" 
475                           y="{$BUS_ARROW_G}"  
476                           width= "{$BUS_ARROW_W}" 
477                           height="{$BUS_ARROW_H}" style="stroke:none; fill:{$bus_col_}"/>
478                 <circle 
479                           cx="{$BUS_ARROW_W + $BIFC_W}"  
480                           cy="{ceiling($BIFC_Wi div 2)}" 
481                           r="{ceiling($BIFC_Wi div 2)}" 
482                           style="fill:{$bus_col_}; stroke:none;"/>        
483 -->     
484         </symbol>
485         
486         
487 </xsl:template>
488
489
490 <xsl:template name="Define_SharedBus_Group"> 
491
492 <!-- The Bridges go into the shared bus shape -->
493         <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE">       
494         
495                 <xsl:variable name="modInst_" select="@INSTANCE"/>
496                 <xsl:variable name="modType_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$modInst_)]/@MODTYPE"/>
497                 
498                 <xsl:call-template name="Define_Peripheral"> 
499                         <xsl:with-param name="modVori"  select="'normal'"/>
500                         <xsl:with-param name="modInst"  select="$modInst_"/>
501                         <xsl:with-param name="modType"  select="$modType_"/>
502                 </xsl:call-template>
503         
504         </xsl:for-each>
505         
506  <symbol id="group_sharedBusses">
507         
508         <!-- Draw the shared bus shapes first -->       
509         <xsl:for-each select="BLKDSHAPES/SBSSHAPES/MODULE">     
510                 <xsl:variable name="instance_"  select="@INSTANCE"/>
511                 
512                 <xsl:variable name="busStd_"   select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$instance_)]/@BUSSTD"/>     
513                 <xsl:variable name="busIndex_"  select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE=$instance_)]/@BUSINDEX"/>  
514                 
515                 <xsl:variable name="busY_"  select="($busIndex_ * $SBS_LANE_H)"/>       
516                 
517                 <use  x="0"  y="{$busY_}"  xlink:href="#{$busStd_}_SharedBus"/> 
518                 
519                 <text class="sharedbuslabel" 
520                           x="8"
521                           y="{$busY_ + $BUS_ARROW_H + 10}">
522                         <xsl:value-of select="$instance_"/>
523                 </text>
524                 
525         </xsl:for-each>
526 </symbol>       
527
528  <symbol id="KEY_SharedBus">
529         <use  x="0"  y="0"  xlink:href="#KEY_BusArrowWest"/>    
530         <use  x="30" y="0"  xlink:href="#KEY_BusArrowEast"/>    
531          
532         <xsl:variable name="key_col_">
533                 <xsl:call-template name="BusType2Color">
534                         <xsl:with-param name="busType" select="'KEY'"/>
535                 </xsl:call-template>    
536         </xsl:variable>
537                 
538         <rect x="{$BUS_ARROW_W}" 
539                   y="{$BUS_ARROW_G}"  
540                   width= "{30 - $BUS_ARROW_W}" 
541                   height="{$BUS_ARROW_H - (2 * $BUS_ARROW_G)}" style="stroke:none; fill:{$key_col_}"/>
542 </symbol>
543         
544 </xsl:template>
545         
546 </xsl:stylesheet>