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