diff options
Diffstat (limited to 'FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl')
-rw-r--r-- | FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl | 1391 |
1 files changed, 0 insertions, 1391 deletions
diff --git a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl deleted file mode 100644 index 55c9b85f6..000000000 --- a/FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/__xps/.dswkshop/MdtSvgBLKD_Main.xsl +++ /dev/null @@ -1,1391 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<xsl:stylesheet version="1.0" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:exsl="http://exslt.org/common" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:math="http://exslt.org/math" - xmlns:xlink="http://www.w3.org/1999/xlink" - extension-element-prefixes="math"> - -<xsl:include href="MdtSVG_Colors.xsl"/> -<xsl:include href="MdtSVG_BifShapes.xsl"/> - -<xsl:include href="MdtSvgBLKD_Busses.xsl"/> -<xsl:include href="MdtSvgBLKD_IOPorts.xsl"/> -<xsl:include href="MdtSvgBLKD_Dimensions.xsl"/> -<xsl:include href="MdtSvgBLKD_Processors.xsl"/> -<xsl:include href="MdtSvgBLKD_Peripherals.xsl"/> -<xsl:include href="MdtSvgBLKD_Calculations.xsl"/> -<xsl:include href="MdtSvgBLKD_BusLaneSpaces.xsl"/> - -<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" - doctype-public="-//W3C//DTD SVG 1.0//EN" - doctype-system="svg10.dtd"/> - -<xsl:param name="ADD_VIEWBOX" select="'FALSE'"/> -<xsl:param name="IN_TESTMODE" select="'FALSE'"/> - -<xsl:param name="CSS_SVG_DIAGRAMS" select="'MdtSVG_Diagrams.css'"/> - -<!-- - =========================================================================== - CALCULATE GLOBAL DIMENSIONS BASED ON BLKDSHAPES DEF IN INPUT XML - =========================================================================== ---> - -<xsl:variable name="G_total_StandAloneMpmc_H"> - <xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE"> - <xsl:value-of select="($BLKD_MPMC_MOD_H + $BLKD_MPMC2PROC_GAP)"/> - </xsl:if> - <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE)">0</xsl:if> -</xsl:variable> - -<xsl:variable name="G_max_Stack_BlwSbs_H"> - <xsl:call-template name="_calc_Max_Stack_BlwSbs_Height"/> -</xsl:variable> - -<xsl:variable name="G_max_Stack_AbvSbs_H"> - <xsl:call-template name="_calc_Max_Stack_AbvSbs_Height"/> -</xsl:variable> - -<xsl:variable name="G_total_Stacks_W"> - <xsl:call-template name="_calc_Stack_X"> - <xsl:with-param name="iStackIdx" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)"/> - </xsl:call-template> -</xsl:variable> - -<xsl:variable name="G_NumOfSharedBusses" select="count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE)"/> -<xsl:variable name="G_total_SharedBus_H" select="($G_NumOfSharedBusses * $BLKD_SBS_LANE_H)"/> - -<xsl:variable name="G_NumOfBridges" select="count(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE)"/> -<xsl:variable name="G_total_Bridges_W" select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/> - -<xsl:variable name="G_total_drawarea_CLC" select="($G_total_Stacks_W + $G_total_Bridges_W + ($BLKD_INNER_GAP * 2))"/> - -<xsl:variable name="G_total_drawarea_W"> - <xsl:if test="$G_total_drawarea_CLC > ($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)"> - <xsl:value-of select="$G_total_drawarea_CLC"/> - </xsl:if> - <xsl:if test="not($G_total_drawarea_CLC > ($BLKD_KEY_W + $BLKD_SPECS2KEY_GAP + $BLKD_SPECS_W))"> - <xsl:value-of select="($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)"/> - </xsl:if> -</xsl:variable> - -<xsl:variable name="G_IpBucketMods_H"> - <xsl:if test="/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H"/></xsl:if> - <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/IPBUCKET/@MODS_H)">0</xsl:if> -</xsl:variable> -<xsl:variable name="G_total_IpBucket_H" select="($G_IpBucketMods_H * ($BLKD_MOD_H + $BLKD_BIF_H))"/> - -<xsl:variable name="G_total_UnkBucket_H"> - <xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET"> - - <xsl:variable name="unkBucketMods_H_"> - <xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H"/></xsl:if> - <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@MODS_H)">0</xsl:if> - </xsl:variable> - - <xsl:variable name="total_UnkMod_H_" select="($unkBucketMods_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/> <xsl:variable name="unkBucketBifs_H_"> <xsl:if test="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H"><xsl:value-of select="/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H"/></xsl:if> - <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET/@BIFS_H)">0</xsl:if> - </xsl:variable> - <xsl:variable name="total_UnkBif_H_" select="($unkBucktBifs_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/> - - <xsl:value-of select="($total_UnkBif_H_ + $G_totalUnkMod_H_)"/> - </xsl:if> - - <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/UNKBUCKET)">0</xsl:if> -</xsl:variable> - -<xsl:variable name="G_SharedBus_Y" select="($BLKD_INNER_Y + $G_total_StandAloneMpmc_H + $G_max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP)"/> - -<!-- =========================================================================== - Calculate the width of the Block Diagram based on the total number of - buslanes and modules in the design. If there are no buslanes or modules, - a default width, just wide enough to display the KEY and SPECS is used - =========================================================================== --> -<xsl:variable name="G_total_blkd_W" select="($G_total_drawarea_W + (($BLKD_PRTCHAN_W + $BLKD_IORCHAN_W)* 2))"/> -<xsl:variable name="G_total_diag_W" select="$G_total_blkd_W"/> - -<!-- =========================================================================== --> -<!-- Calculate the height of the Block Diagram based on the total number of --> -<!-- buslanes and modules in the design. Take into account special shapes such --> -<!-- as MultiProc shapes. --> -<!-- =========================================================================== --> - - -<xsl:variable name="G_total_drawarea_H" select="($G_total_StandAloneMpmc_H + $G_max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP + $G_total_SharedBus_H + $G_max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP + $G_total_IpBucket_H + $BLKD_IP2UNK_GAP + $G_total_UnkBucket_H + ($BLKD_INNER_GAP * 2))"/> -<xsl:variable name="G_total_blkd_H" select="($G_total_drawarea_H + (($BLKD_PRTCHAN_H + $BLKD_IORCHAN_H)* 2))"/> - -<xsl:variable name="G_total_diag_H"> - <xsl:if test="($IN_TESTMODE = 'TRUE')"> - <xsl:message>Generating Blkdiagram in TestMode </xsl:message> - <xsl:value-of select="$G_total_blkd_H"/> - </xsl:if> - <xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))"> - <xsl:value-of select="($G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP + $BLKD_KEY_H)"/> - </xsl:if> -</xsl:variable> - -<!-- ======================= MAIN SVG BLOCK =============================== --> -<xsl:template match="EDKSYSTEM"> - -<!-- -<xsl:message>STCK_W is <xsl:value-of select="$G_total_Stacks_W"/></xsl:message> -<xsl:message>BRDG_W is <xsl:value-of select="$G_total_Bridges_W"/></xsl:message> -<xsl:message>MPMC is <xsl:value-of select="$G_total_StandAloneMpmc_H"/></xsl:message> -<xsl:message>MPMC is <xsl:value-of select="$G_total_StandAloneMpmc_H"/></xsl:message> -<xsl:message>MABV is <xsl:value-of select="$G_max_Stack_AbvSbs_H"/></xsl:message> -<xsl:message>MBLW is <xsl:value-of select="$G_max_Stack_BlwSbs_H"/></xsl:message> -<xsl:message>IPBK is <xsl:value-of select="$G_total_IpBucket_H"/></xsl:message> -<xsl:message>Blkd Total is <xsl:value-of select="$blkd_H_"/></xsl:message> -<xsl:message>max abv is <xsl:value-of select="$max_Stack_AbvSbs_H_"/></xsl:message> -<xsl:message>max blw is <xsl:value-of select="$max_Stack_BlwSbs_H_"/></xsl:message> -<xsl:message>Ip Bkt is <xsl:value-of select="$totalIpBkt_H_"/></xsl:message> -<xsl:message>Sbs is <xsl:value-of select="$totalSbs_H_"/></xsl:message> -<xsl:message>Unk Bkt is <xsl:value-of select="$totalUnkBkt_H_"/></xsl:message> -<xsl:message>Blkd DrawArea height as <xsl:value-of select="$total_drawarea_H_"/></xsl:message> ---> - -<!--specify a css for the file --> -<xsl:processing-instruction name="xml-stylesheet">href="<xsl:value-of select="$CSS_SVG_DIAGRAMS"/>" type="text/css"</xsl:processing-instruction> - -<xsl:variable name="BLKD_ZOOM_Y"> - <xsl:choose> - <xsl:when test="($ADD_VIEWBOX = 'TRUE')"> - <xsl:value-of select="($G_total_diag_H * 2)"/> - </xsl:when> - <xsl:otherwise>0</xsl:otherwise> - </xsl:choose> -</xsl:variable> - -<xsl:text> </xsl:text> -<svg width="{$G_total_diag_W}" height="{$G_total_diag_H}" viewBox="0 0 0 {$BLKD_ZOOM_Y}"> -<!-- - =============================================== - Layout All the various definitions - =============================================== ---> - <defs> - <!-- Diagram Key Definition --> - <xsl:call-template name="Define_BlkDiagram_Key"/> - - <!-- Diagram Specs Definition --> - <xsl:call-template name="Define_BlkDiagram_Specs"> - <xsl:with-param name="iArch" select="@ARCH"/> - <xsl:with-param name="iPart" select="@PART"/> - <xsl:with-param name="iTimeStamp" select="@TIMESTAMP"/> - <xsl:with-param name="iEdkVersion" select="@EDKVERSION"/> - </xsl:call-template> - - <!-- IO Port Defs --> - <xsl:call-template name="Define_IOPorts"/> - - <!-- BIF Defs --> - <xsl:call-template name="Define_BifTypes"/> - - <!-- Bus Defs --> - <xsl:call-template name="Define_Busses"/> - - <!-- Shared Bus Buckets Defs --> - <xsl:call-template name="Define_SBSBuckets"/> - - <!-- IP Bucket Defs --> - <xsl:call-template name="Define_IPBucket"/> - - <!-- Stack Defs --> - <xsl:call-template name="Define_AllStacks"/> - - <!-- Space Defs --> - <xsl:call-template name="Define_BusLaneSpaces"/> - - <!-- Main MPMC Defs --> - <xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE"> - <xsl:call-template name="Define_StandAlone_MPMC"/> - </xsl:if> - </defs> - -<!-- =============================================== --> -<!-- Draw Outlines --> -<!-- =============================================== --> - - <!-- The surrounding black liner --> - <rect x="0" - y="0" - width ="{$G_total_diag_W}" - height="{$G_total_diag_H}" style="fill:{$COL_WHITE}; stroke:{$COL_BLACK};stroke-width:4"/> - - <!-- The outer IO channel --> - <rect x="{$BLKD_PRTCHAN_W}" - y="{$BLKD_PRTCHAN_H}" - width= "{$G_total_blkd_W - ($BLKD_PRTCHAN_W * 2)}" - height="{$G_total_blkd_H - ($BLKD_PRTCHAN_H * 2)}" style="fill:{$COL_IORING}"/> - - <!-- The Diagram's drawing area --> - <rect x="{$BLKD_PRTCHAN_W + $BLKD_IORCHAN_W}" - y="{$BLKD_PRTCHAN_H + $BLKD_IORCHAN_H}" - width= "{$G_total_drawarea_W}" - height="{$G_total_drawarea_H}" rx="8" ry="8" style="fill:{$COL_BG}"/> - -<!-- =============================================== --> -<!-- Draw All the various components --> -<!-- =============================================== --> - - <!-- Layout the IO Ports --> - <xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))"> - <xsl:call-template name="Draw_IOPorts"/> - </xsl:if> - - <!-- Layout the Shapes --> - <xsl:call-template name="Draw_BlkDiagram_Shapes"/> - -</svg> - -<!-- ======================= END MAIN SVG BLOCK =============================== --> -</xsl:template> - -<xsl:template name="Draw_BlkDiagram_Shapes"> - - <!-- - =========================================================== - Draw the shared busses - =========================================================== - --> - <use x="{$BLKD_INNER_X}" y="{$G_SharedBus_Y}" xlink:href="#group_sharedBusses"/> - - - <!-- - =========================================================== - Draw the Bus Lane Spaces - =========================================================== - --> - <xsl:call-template name="Draw_BlkDiagram_BusLaneSpaces"/> - - <!-- - =========================================================== - Draw the Bridges - =========================================================== - --> - <xsl:call-template name="Draw_BlkDiagram_Bridges"/> - - - <!-- - =========================================================== - Draw the Stacks - =========================================================== - --> - <xsl:call-template name="Draw_BlkDiagram_Stacks"/> - - <!-- - =========================================================== - Draw the Stand Alone MPMC, (if any) - =========================================================== - --> - <xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE"> - <xsl:variable name="mpmc_inst_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE/@INSTANCE"/> - <use x="{$BLKD_INNER_X}" y="{$BLKD_INNER_Y}" xlink:href="#mpmcmodule_{$mpmc_inst_}"/> - - <!-- - =========================================================== - Draw the connections to the Stand Alone MPMC - =========================================================== - --> - <xsl:call-template name="Draw_BlkDiagram_StandAloneMpmcConnections"/> - </xsl:if> - - <!-- - =========================================================== - Draw the Ip Bucket - =========================================================== - --> - - <xsl:call-template name="Draw_BlkDiagram_IPBucket"/> - - - <!-- - =========================================================== - Draw the Key - =========================================================== - --> - <xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))"> - <use x="{$G_total_blkd_W - $BLKD_KEY_W - $BLKD_PRTCHAN_W}" y="{$G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP - 8}" xlink:href="#BlkDiagram_Key"/> - </xsl:if> - - <!-- - =========================================================== - Draw the Specs - =========================================================== - --> - <xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))"> - <use x="{$BLKD_PRTCHAN_W}" y="{$G_total_blkd_H + $BLKD_DRAWAREA2KEY_GAP - 8}" xlink:href="#BlkDiagram_Specs"/> - </xsl:if> - - <!-- - ************************************************************ - *************** DONE DRAWING BLOCK DIAGRAM ************** - ************************************************************ - --> - -</xsl:template> - - -<!-- ======================================================================= --> -<!-- FUNCTION TEMPLATE --> -<!-- --> -<!-- Draw stacks on the Block Diagram --> -<!-- ======================================================================= --> -<xsl:template name="Draw_BlkDiagram_Stacks"> - - <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST < /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]"> - - <xsl:variable name="stack_line_x_"> - <xsl:call-template name="_calc_Stack_X"> - <xsl:with-param name="iStackIdx" select="@EAST"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="stack_abv_sbs_"> - <xsl:call-template name="_calc_Stack_AbvSbs_Height"> - <xsl:with-param name="iStackIdx" select="@EAST"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="bridges_w_" select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/> - - <xsl:variable name="stack_y_" select="($G_SharedBus_Y - $stack_abv_sbs_ - $BLKD_PROC2SBS_GAP)"/> - <xsl:variable name="stack_x_" select="($BLKD_INNER_X + $stack_line_x_ + $bridges_w_)"/> - - <xsl:variable name="stack_name_"> - <xsl:call-template name="_gen_Stack_Name"> - <xsl:with-param name="iHorizIdx" select="@EAST"/> - </xsl:call-template> - </xsl:variable> - - <use x="{$stack_x_}" y="{$stack_y_}" xlink:href="#{$stack_name_}"/> - - </xsl:for-each> - -</xsl:template> - -<xsl:template name="Draw_BlkDiagram_StandAloneMpmcConnections"> - - <xsl:variable name="mpmcInst_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE/@INSTANCE"/> - <xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/> - - - <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE"> - <xsl:variable name="currentLane_" select="position()"/> -<!-- - <xsl:message>Looking in space <xsl:value-of select="$currentLane_"/></xsl:message> ---> - <xsl:variable name="stackToEast_"> - <xsl:choose> - <xsl:when test="not(@WEST = $lastStack_)"><xsl:value-of select="@EAST"/></xsl:when> - <xsl:when test=" (@WEST = $lastStack_)"><xsl:value-of select="'NONE'"/></xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="stackToWest_"> - <xsl:choose> - <xsl:when test="not(@WEST = $lastStack_)"><xsl:value-of select="'NONE'"/></xsl:when> - <xsl:when test=" (@WEST = $lastStack_)"><xsl:value-of select="@WEST"/></xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="spaceAbvSbs_H_"> - <xsl:call-template name="_calc_Space_AbvSbs_Height"> - <xsl:with-param name="iStackToEast" select="$stackToEast_"/> - <xsl:with-param name="iStackToWest" select="$stackToWest_"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="space_y_" select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/> - -<!-- - <xsl:message>Stack To East <xsl:value-of select="$stackToEast_"/></xsl:message> - <xsl:message>Stack To West <xsl:value-of select="$stackToWest_"/></xsl:message> - <xsl:variable name="space_X_"> - <xsl:call-template name="_calc_Space_X"> - <xsl:with-param name="iStackToEast" select="$stackToEast_"/> - <xsl:with-param name="iStackToWest" select="$stackToWest_"/> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="space_y_" select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/> - <xsl:variable name="space_x_" select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_x_)"/> ---> - - - <xsl:for-each select="BUSCONNLANE[@IS_MPMCCONN]"> - -<!-- - <xsl:variable name="bifSide_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = BUSCONN/@INSTANCE)]/BUSINTERFACE[(@BUSNAME = @BUSNAME)]/@BIF_X"/> ---> - <xsl:variable name="bifInst_" select="BUSCONN/@INSTANCE"/> - <xsl:variable name="busName_" select="@BUSNAME"/> - <xsl:variable name="bifSide_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $bifInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@BIF_X"/> - - <xsl:variable name="mpmcBifName_"> - <xsl:choose> - <xsl:when test=" (@IS_SBSCONN)"><xsl:value-of select="BUSCONN/@BUSINTERFACE"/></xsl:when> - <xsl:when test="not(@IS_SBSCONN)"><xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@NAME"/></xsl:when> - <xsl:otherwise><xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = $busName_)]/@NAME"/></xsl:otherwise> - </xsl:choose> - </xsl:variable> -<!-- - <xsl:message>MPMC Bif Name <xsl:value-of select="$mpmcBifName_"/></xsl:message> - <xsl:message>Bif Side <xsl:value-of select="$bifSide_"/></xsl:message> - <xsl:message>Bus Name <xsl:value-of select="@BUSNAME"/></xsl:message> - <xsl:message>Instance <xsl:value-of select="$bifInst_"/></xsl:message> ---> - - <xsl:variable name="space_line_X_"> - <xsl:call-template name="_calc_Space_X"> - <xsl:with-param name="iStackToEast" select="$stackToEast_"/> - <xsl:with-param name="iStackToWest" select="$stackToWest_"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="space_X_" select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_X_)"/> - - <xsl:variable name = "stackToWest_W_"> - <xsl:choose> - <xsl:when test="(($stackToEast_ = '0') and ($stackToWest_ = 'NONE'))">0</xsl:when> - <xsl:when test="(($stackToEast_ = 'NONE') and not($stackToWest_ = 'NONE'))"> - <xsl:call-template name="_calc_Stack_Width"> - <xsl:with-param name="iStackIdx" select="$stackToWest_"/> - </xsl:call-template> - </xsl:when> - <xsl:when test="(not($stackToEast_ = '0') and not($stackToEast_ = 'NONE') and ($stackToWest_ = 'NONE'))"> - <xsl:call-template name="_calc_Stack_Width"> - <xsl:with-param name="iStackIdx" select="($stackToEast_ - 1)"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise>0</xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name = "stackToEast_W_"> - <xsl:call-template name="_calc_Stack_Width"> - <xsl:with-param name="iStackIdx" select="$stackToEast_"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name ="extSpaceWest_W_" select="ceiling($stackToWest_W_ div 2)"/> - <xsl:variable name ="extSpaceEast_W_" select="ceiling($stackToEast_W_ div 2)"/> -<!-- - <xsl:message>extSpaceWest_W_ <xsl:value-of select="$extSpaceWest_W_"/></xsl:message> - <xsl:message>extSpaceEast_W_ <xsl:value-of select="$extSpaceEast_W_"/></xsl:message> - <xsl:message>Found a MPMC lane in space <xsl:value-of select="$currentLane_"/> at X <xsl:value-of select="$lane_X_"/></xsl:message> - <xsl:message>mpmcBifRank <xsl:value-of select="$mpmcBifRank_"/></xsl:message> ---> - -<!-- - <xsl:variable name="laneInSpace_X_" select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/> ---> - <xsl:variable name="laneInSpace_X_"> - <xsl:choose> - <xsl:when test="(@ORIENTED = 'EAST')"> - <xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W) - $BLKD_BUS_ARROW_W - $BLKD_P2P_BUS_W)"/> - </xsl:when> - <xsl:otherwise><xsl:value-of select="($extSpaceWest_W_ + (@BUSLANE_X * $BLKD_BUS_LANE_W))"/></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - - - <xsl:variable name="lane_X_" select="($space_X_ + $laneInSpace_X_)"/> - - <xsl:variable name="mpmcBifRank_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $mpmcInst_)]/BUSINTERFACE[(@BUSNAME = @BUSNAME)]/@BIFRANK"/> - - <!-- - <xsl:variable name="bc_X_" select="($lane_X_ + ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/> - <xsl:variable name="bc_X_" select="($lane_X_ + ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_W div 2))"/> - <xsl:variable name="bc_X_" select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/> - --> - - <xsl:variable name="bc_Y_" select="($BLKD_INNER_Y + $BLKD_MPMC_MOD_H)"/> - <xsl:variable name="bc_X_" > - <xsl:choose> - <xsl:when test="($bifSide_ = '0')"><xsl:value-of select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/></xsl:when> - <xsl:when test="($bifSide_ = '1')"><xsl:value-of select="($lane_X_ + $BLKD_BIFC_dx)"/></xsl:when> - <xsl:otherwise> <xsl:value-of select="($lane_X_ + ceiling($BLKD_BIFC_W div 2))"/></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="busColor_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="@BUSSTD"/> - </xsl:call-template> - </xsl:variable> - - <!-- Place the MPMC bif label --> - <xsl:variable name="bcl_X_" select="($bc_X_ + ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BIF_W div 2))"/> - <xsl:variable name="bcl_Y_" select="($bc_Y_ - $BLKD_BIF_H - $BLKD_MOD_BIF_GAP_H)"/> - <use x="{$bcl_X_}" y="{$bcl_Y_}" xlink:href="#{@BUSSTD}_Bif"/> - <text class="mpmcbiflabel" - x="{$bcl_X_ + ceiling($BLKD_BIF_W div 2)}" - y="{$bcl_Y_ + ceiling($BLKD_BIF_H div 2) + 3}"><xsl:value-of select="$mpmcBifName_"/></text> - - <!-- Place the MPMC bif --> - <use x="{$bc_X_}" y="{$bc_Y_}" xlink:href="#{@BUSSTD}_busconn_{$mpmcBifRank_}"/> - - <xsl:variable name="bcArrow_X_" select="($bc_X_ + ceiling($BLKD_BIFC_W div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/> - <xsl:variable name="bcArrow_Y_" select="($bc_Y_ + $BLKD_BIFC_H - 3)"/> - - <!-- Place the MPMC Arrow --> - <use x="{$bcArrow_X_}" y="{$bcArrow_Y_}" xlink:href="#{@BUSSTD}_BusArrowNorth"/> - - <!-- - Place a block to cover the gap btw MPMC and top of Bus Lane Space, or to the correct SBS - For non SBS connections a vertical block will already have been drawn to the top of the - space. - --> - - <xsl:variable name="sbsDy_"> - <xsl:choose> - <xsl:when test="@IS_SBSCONN"><xsl:value-of select="2 + (/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $busName_)]/@BUSINDEX * $BLKD_SBS_LANE_H)"/></xsl:when> - <xsl:when test="not(@IS_SBSCONN)">0</xsl:when> - <xsl:otherwise>0></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="mpmcBusHeight_"> - <xsl:choose> - <xsl:when test="(@IS_SBSCONN)"><xsl:value-of select="($G_SharedBus_Y - ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4) + $sbsDy_)"/></xsl:when> - <xsl:when test="not(@IS_SBSCONN)"> - <xsl:choose> - <xsl:when test="($space_y_ >= ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))"> - <xsl:value-of select="($space_y_ - ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))"/> - </xsl:when> - <xsl:when test="($space_y_ < ($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_))"> - <xsl:value-of select="(($bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4 + $sbsDy_) - $space_y_)"/> - </xsl:when> - </xsl:choose> - </xsl:when> - <xsl:otherwise><xsl:value-of select="$BLKD_BIFC_H"/></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <rect x="{$bcArrow_X_ + $BLKD_BUS_ARROW_G}" - y="{$bcArrow_Y_ + $BLKD_BUS_ARROW_W + 4}" - width= "{$BLKD_P2P_BUS_W}" - height="{$mpmcBusHeight_}" - style="stroke:none; fill:{$busColor_}"/> - - <!-- place the bus label here --> - <text class="p2pbuslabel" - x="{$bcArrow_X_ + $BLKD_BUS_ARROW_W + 6}" - y="{$bcArrow_Y_ + ceiling($mpmcBusHeight_ div 2) + 6}"><xsl:value-of select="$busName_"/></text> - - - </xsl:for-each> - </xsl:for-each> - -</xsl:template> - - -<!-- ======================================================================= --> -<!-- FUNCTION TEMPLATE --> -<!-- --> -<!-- Draw bus lane spaces on the Block Diagram --> -<!-- ======================================================================= --> -<xsl:template name="Draw_BlkDiagram_BusLaneSpaces"> - - <xsl:variable name="lastStack_" select="(/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH) - 1"/> - - <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[@EAST]"> - <xsl:sort select="@EAST" data-type="number"/> - - <xsl:call-template name="Draw_BlkDiagram_BusLaneSpace"> - <xsl:with-param name="iStackToEast" select="@EAST"/> - </xsl:call-template> - </xsl:for-each> - - <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = $lastStack_)]"> - <xsl:call-template name="Draw_BlkDiagram_BusLaneSpace"> - <xsl:with-param name="iStackToWest" select="$lastStack_"/> - </xsl:call-template> - </xsl:for-each> - -</xsl:template> - -<xsl:template name="Draw_BlkDiagram_BusLaneSpace"> - - <xsl:param name="iStackToEast" select="'NONE'"/> - <xsl:param name="iStackToWest" select="'NONE'"/> - - <xsl:variable name="spaceAbvSbs_H_"> - <xsl:call-template name="_calc_Space_AbvSbs_Height"> - <xsl:with-param name="iStackToEast" select="$iStackToEast"/> - <xsl:with-param name="iStackToWest" select="$iStackToWest"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="spaceBlwSbs_H_"> - <xsl:call-template name="_calc_Space_BlwSbs_Height"> - <xsl:with-param name="iStackToEast" select="$iStackToEast"/> - <xsl:with-param name="iStackToWest" select="$iStackToWest"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="space_line_x_"> - <xsl:call-template name="_calc_Space_X"> - <xsl:with-param name="iStackToEast" select="$iStackToEast"/> - <xsl:with-param name="iStackToWest" select="$iStackToWest"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="space_y_" select="($G_SharedBus_Y - $spaceAbvSbs_H_ - $BLKD_PROC2SBS_GAP)"/> - <xsl:variable name="space_x_" select="($BLKD_INNER_X + $G_total_Bridges_W + $space_line_x_)"/> - - <xsl:variable name="stackToEast_"> - <xsl:choose> - <xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when> - <xsl:otherwise>NONE</xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="stackToWest_"> - <xsl:choose> - <xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when> - <xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when> - <xsl:otherwise>NONE</xsl:otherwise> - </xsl:choose> - </xsl:variable> - - - <xsl:variable name="space_Name_"> - <xsl:call-template name="_gen_Space_Name"> - <xsl:with-param name="iStackToEast" select="$stackToEast_"/> - <xsl:with-param name="iStackToWest" select="$stackToWest_"/> - </xsl:call-template> - </xsl:variable> - -<!-- - <xsl:message>StackToEast is <xsl:value-of select="$iStackToEast"/></xsl:message> - <xsl:message>StackToWest is <xsl:value-of select="$iStackToWest"/></xsl:message> - <xsl:message>SpaceName is <xsl:value-of select="$space_Name_"/></xsl:message> ---> - - <use x="{$space_x_}" y="{$space_y_}" xlink:href="#{$space_Name_}"/> - -</xsl:template> - - -<!-- =========================================================================== --> -<!-- FUNCTION TEMPLATE --> -<!-- --> -<!-- Draw Bridges on the Block Diagram --> -<!-- =========================================================================== --> -<xsl:template name="Draw_BlkDiagram_Bridges"> - - <!-- First save all the bridge indexs in a variable --> - <xsl:variable name="bridgeShapes_"> - <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE/BUSCONNS[(@ORIENTED = 'WEST')]/BUSCONN"> - <BRIDGE BUSINDEX="{@BUSINDEX}" INSTANCE="{../../@INSTANCE}" POSITION="{(position() -1)}"/> - <BRIDGECONN BUSINDEX="{@BUSINDEX}" INSTANCE="{../../@INSTANCE}" ORIENTED="{../@ORIENTED}" POSITION="{(position() - 1)}" BUSSTD="{@BUSSTD}" BIFRANK="{@BIFRANK}"/> - <!-- So both bus conns have same position.... --> - <xsl:if test="../../BUSCONNS[(@ORIENTED = 'EAST')]"> - <BRIDGECONN BUSINDEX="{../../BUSCONNS[(@ORIENTED ='EAST')]/BUSCONN/@BUSINDEX}" INSTANCE="{../../@INSTANCE}" ORIENTED="EAST" POSITION="{(position() - 1)}" BUSSTD="{../../BUSCONNS[(@ORIENTED = 'EAST')]/BUSCONN/@BUSSTD}" BIFRANK="{../../BUSCONNS[(@ORIENTED = 'EAST')]/BUSCONN/@BIFRANK}"/> - </xsl:if> - </xsl:for-each> - </xsl:variable> -<!-- - <xsl:message>Found an east connection on <xsl:value-of select="../../@INSTANCE"/></xsl:message> ---> - <!-- Now layout the bridge shapes between the shared busses --> - <xsl:for-each select="exsl:node-set($bridgeShapes_)/BRIDGE"> - <xsl:sort select="@POSITION" data-type="number"/> - - <xsl:variable name="brdgPosition_" select="@POSITION"/> - <xsl:variable name="brdgInstance_" select="@INSTANCE"/> - - <xsl:variable name="min_bus_idx_" select="math:min(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/> -<!-- - <xsl:variable name="max_bus_idx_" select="math:max(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/> - - <xsl:message>Maximum index <xsl:value-of select="$max_bus_idx_"/></xsl:message> - <xsl:message>Minimum index <xsl:value-of select="$min_bus_idx_"/></xsl:message> ---> - - - <xsl:variable name="brdg_X_" select="($BLKD_INNER_X + $BLKD_BRIDGE_GAP + $BLKD_BUS_LANE_W + (@POSITION * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))))"/> - <xsl:variable name="brdg_Y_" select="($G_SharedBus_Y + ($min_bus_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_SBS_LANE_H div 2) - ceiling($BLKD_MOD_H div 2))"/> - - <use x="{$brdg_X_}" y="{$brdg_Y_}" xlink:href="#symbol_{$brdgInstance_}"/> - </xsl:for-each> - - - -<!-- - <xsl:message>Found <xsl:value-of select="count(exsl:node-set($bridgeShapes_)/BRIDGECONN)"/> busconns </xsl:message> - <xsl:message>Drawing connection for bridge <xsl:value-of select="$brdgInstance_"/> at <xsl:value-of select="@POSITION"/> </xsl:message> ---> - - <xsl:for-each select="exsl:node-set($bridgeShapes_)/BRIDGECONN"> - <xsl:sort select="@POSITION" data-type="number"/> - - <xsl:variable name="brdgInstance_" select="@INSTANCE"/> - <xsl:variable name="brdgPosition_" select="@POSITION"/> - - <xsl:variable name="busColor_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="@BUSSTD"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="min_bus_idx_" select="math:min(exsl:node-set($bridgeShapes_)/BRIDGECONN[(@POSITION = $brdgPosition_)]/@BUSINDEX)"/> - <xsl:variable name="brdg_Y1_" select="($G_SharedBus_Y + ($min_bus_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_SBS_LANE_H div 2) - ceiling($BLKD_MOD_H div 2))"/> - <xsl:variable name="brdg_X_" select="($BLKD_INNER_X + $BLKD_BRIDGE_GAP + $BLKD_BUS_LANE_W + (@POSITION * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))))"/> - - <xsl:variable name="bc_Y_" select="$brdg_Y1_ + $BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V + ceiling($BLKD_BIF_H div 2) - ceiling($BLKD_BIFC_H div 2)"/> - <xsl:variable name="bc_X_"> - <xsl:choose> - <xsl:when test="@ORIENTED='WEST'"> - <xsl:value-of select="($brdg_X_ - $BLKD_BIFC_W)"/> - </xsl:when> - <xsl:when test="@ORIENTED='EAST'"> - <xsl:value-of select="($brdg_X_ + $BLKD_MOD_W)"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <!-- Layout the bus conn --> - <use x="{$bc_X_}" y="{$bc_Y_}" xlink:href="#{@BUSSTD}_busconn_{@BIFRANK}"/> - - <!-- Figure out the positions of the lines --> - -<!-- - <xsl:variable name="vert_line_x_" select="$bc_X_ + ceiling($BLKD_BIFC_W div 2)"/> - <xsl:message>vert line x <xsl:value-of select="$vert_line_x_"/></xsl:message> - <xsl:message>bus index <xsl:value-of select="@BUSINDEX"/></xsl:message> ---> - - <xsl:variable name="vert_line_x_"> - <xsl:choose> - <xsl:when test="@ORIENTED='WEST'"> - <xsl:value-of select="($bc_X_ - ($BLKD_BUS_LANE_W - $BLKD_BIFC_W))"/> - </xsl:when> - <xsl:when test="@ORIENTED='EAST'"> - <xsl:value-of select="($bc_X_ + ($BLKD_BUS_LANE_W - $BLKD_P2P_BUS_W))"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <!-- At least one of the points is going to be the bus --> -<!-- - <xsl:variable name="vert_line_y1_" select="($G_SharedBus_Y + $BLKD_PROC2SBS_GAP + (@BUSINDEX * $BLKD_SBS_LANE_H))"/> ---> - <xsl:variable name="vert_line_y1_" select="($G_SharedBus_Y + (@BUSINDEX * $BLKD_SBS_LANE_H))"/> - <xsl:variable name="vert_line_y2_" select="$bc_Y_ + ceiling($BLKD_BIFC_H div 2)"/> - - <xsl:variable name="v_bus_ul_y_"> - <xsl:choose> - <xsl:when test="$vert_line_y1_ > $vert_line_y2_"> - <xsl:value-of select="$vert_line_y2_"/> - </xsl:when> - <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> - <xsl:value-of select="$vert_line_y1_"/> - </xsl:when> - </xsl:choose> - </xsl:variable> -<!-- - <xsl:variable name="v_bus_ul_x_" select="$vert_line_x_"/> ---> - <xsl:variable name="v_bus_ul_x_"> - <xsl:choose> - <xsl:when test="@ORIENTED='WEST'"> - <xsl:value-of select="($vert_line_x_ + $BLKD_MOD_BIF_GAP_H)"/> - </xsl:when> - <xsl:when test="@ORIENTED='EAST'"> - <xsl:value-of select="($vert_line_x_ - $BLKD_MOD_BIF_GAP_H)"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - - <xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/> - <xsl:variable name="v_bus_height_"> - <xsl:choose> - <xsl:when test="$vert_line_y1_ > $vert_line_y2_"> - <xsl:value-of select="($vert_line_y1_ - $vert_line_y2_)"/> - </xsl:when> - <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> - <xsl:value-of select="($vert_line_y2_ - $vert_line_y1_)"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="h_bus_ul_x_"> - <xsl:choose> - <xsl:when test="@ORIENTED='WEST'"> - <xsl:value-of select="($bc_X_ - ($BLKD_BUS_LANE_W - $BLKD_BIFC_W) + $BLKD_MOD_BIF_GAP_H)"/> - </xsl:when> - <xsl:when test="@ORIENTED='EAST'"> - <xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="h_bus_ul_y_" select="$bc_Y_ + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_P2P_BUS_W div 2)"/> - <xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/> - - <xsl:variable name="h_bus_width_"> - <xsl:choose> - <xsl:when test="@ORIENTED='WEST'"> - <xsl:value-of select="(($bc_X_ + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2)) - $h_bus_ul_x_ + 1)"/> - </xsl:when> - <xsl:when test="@ORIENTED='EAST'"> - <xsl:value-of select="(($v_bus_ul_x_ + $BLKD_P2P_BUS_W) - $h_bus_ul_x_)"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - -<!-- - <xsl:message>vert line y1 <xsl:value-of select="$vert_line_y1_"/></xsl:message> ---> - - <rect x="{$v_bus_ul_x_}" - y="{$v_bus_ul_y_ + 2}" - width= "{$v_bus_width_}" - height="{$v_bus_height_}" - style="stroke:none; fill:{$busColor_}"/> - - <rect x="{$h_bus_ul_x_}" - y="{$h_bus_ul_y_}" - width= "{$h_bus_width_}" - height="{$h_bus_height_}" - style="stroke:none; fill:{$busColor_}"/> - - </xsl:for-each> - -</xsl:template> - - - - -<!-- =========================================================================== --> -<!-- FUNCTION TEMPLATE --> -<!-- --> -<!-- Draw the IP Bucket --> -<!-- =========================================================================== --> -<xsl:template name="Draw_BlkDiagram_IPBucket"> - - <!-- Draw IP Bucket --> - <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/IPBUCKET"> - - <xsl:variable name="bucket_w_" select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/> - <xsl:variable name="bucket_h_" select="(($BLKD_MOD_BKTLANE_H * 2) + (($BLKD_MOD_H * @MODS_H) + ($BLKD_MOD_BUCKET_G * (@MODS_H - 1))))"/> - - <xsl:variable name="bucket_x_" select="(ceiling($G_total_blkd_W div 2) - ceiling($bucket_w_ div 2))"/> - <xsl:variable name="bucket_y_" select="($G_SharedBus_Y + $G_total_SharedBus_H + $G_max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP)"/> - - <text class="ipclass" - x="{$bucket_x_}" - y="{$bucket_y_ - 4}">IP</text> - - <use x="{$bucket_x_}" y="{$bucket_y_}" xlink:href="#ipbucket"/> - - </xsl:for-each> - -</xsl:template> - - -<xsl:template name="Draw_BlkDiagram_Key"> - <use x="{ceiling($G_blkd_W div 2) - ceiling($BLKD_KEY_W div 2)}" y="0" xlink:href="#BlkDiagram_Key"/> -</xsl:template> - -<xsl:template name="Define_BlkDiagram_Key"> - - <xsl:variable name="key_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'KEY'"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="key_lt_col_"> - <xsl:call-template name="BusType2LightColor"> - <xsl:with-param name="iBusType" select="'KEY'"/> - </xsl:call-template> - </xsl:variable> - - <symbol id="KEY_IntrCntrl"> - <rect - x="0" - y="0" - rx="3" - ry="3" - width= "{ceiling($BLKD_INTR_W div 2)}" - height="{$BLKD_INTR_H}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> - - <line x1="0" - y1="{ceiling($BLKD_INTR_H div 4)}" - x2="{ceiling($BLKD_INTR_W div 2)}" - y2="{ceiling($BLKD_INTR_H div 4)}" - style="stroke:{$COL_BLACK};stroke-width:2"/> - - <text class="intrsymbol" - x="1.5" - y="{7 + ceiling($BLKD_INTR_H div 2)}">x</text> - - </symbol> - - <symbol id="KEY_IntrdProc"> - <rect - x="0" - y="0" - rx="3" - ry="3" - width= "{ceiling($BLKD_INTR_W div 2)}" - height="{$BLKD_INTR_H}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> - - <line x1="0" - y1="{ceiling($BLKD_INTR_H div 4) - 2}" - x2="{ceiling($BLKD_INTR_W div 2)}" - y2="{ceiling($BLKD_INTR_H div 4) - 2}" - style="stroke:{$COL_BLACK};stroke-width:1"/> - - <line x1="0" - y1="{ceiling($BLKD_INTR_H div 4) + 2}" - x2="{ceiling($BLKD_INTR_W div 2)}" - y2="{ceiling($BLKD_INTR_H div 4) + 2}" - style="stroke:{$COL_BLACK};stroke-width:1"/> - - <text class="intrsymbol" - x="1.5" - y="{7 + ceiling($BLKD_INTR_H div 2)}">x</text> - </symbol> - - <symbol id="KEY_IntrSrc"> - <rect - x="0" - y="0" - rx="3" - ry="3" - width= "{$BLKD_INTR_W}" - height="{ceiling($BLKD_INTR_H div 2)}" style="fill:{$key_lt_col_}; stroke:none; stroke-width:1"/> - - <line x1="{ceiling($BLKD_INTR_W div 2)}" - y1="0" - x2="{ceiling($BLKD_INTR_W div 2)}" - y2="{ceiling($BLKD_INTR_H div 2)}" - style="stroke:{$COL_BLACK};stroke-width:1"/> - - <text class="intrsymbol" - x="2" - y="7">y</text> - - <text class="intrsymbol" - x="{2 + ceiling($BLKD_INTR_W div 2)}" - y="7">x</text> - </symbol> - - - <symbol id="BlkDiagram_Key"> - <rect - x="0" - y="0" - width= "{$BLKD_KEY_W}" - height="{$BLKD_KEY_H}" - style="fill:{$COL_BG}; stroke:none;"/> - - <rect - x="0" - y="0" - width= "{$BLKD_KEY_W}" - height="16" - style="fill:{$COL_BG}; stroke:none;"/> - - <text class="keytitle" - x="{ceiling($BLKD_KEY_W div 2)} " - y="14">KEY</text> - - <rect - x="0" - y="16" - width= "{$BLKD_KEY_W}" - height="16" - style="fill:{$COL_BG_LT}; stroke:none;"/> - - <text class="keyheader" - x="{ceiling($BLKD_KEY_W div 2)} " - y="30">SYMBOLS</text> - - <use x="32" y="47" xlink:href="#KEY_Bif" transform="scale(0.75)"/> - <text class="keylabel" - x="12" - y="60">bus interface</text> - - <use x="20" y="68" xlink:href="#KEY_SharedBus"/> - <text class="keylabel" - x="12" - y="85">shared bus</text> - - <text class="keylblul" - x="110" - y="47">Bus connections</text> - - <use x="110" y="58" xlink:href="#KEY_busconn_MASTER"/> - <text class="keylabel" - x="140" - y="72">master or initiator</text> - - <use x="110" y="{58 + (($BLKD_BIFC_H + 4) * 1)}" xlink:href="#KEY_busconn_SLAVE"/> - <text class="keylabel" - x="140" - y="{72 + (($BLKD_BIFC_H + 4) * 1)}">slave or target</text> - - <use x="110" y="{58 + (($BLKD_BIFC_H + 4) * 2)}" xlink:href="#KEY_busconn_MASTER_SLAVE"/> - <text class="keylabel" - x="140" - y="{72 + (($BLKD_BIFC_H + 4) * 2)}">master slave</text> - - <use x="110" y="{58 + (($BLKD_BIFC_H + 4) * 3)}" xlink:href="#KEY_busconn_MONITOR"/> - <text class="keylabel" - x="140" - y="{72 + (($BLKD_BIFC_H + 4) * 3)}">monitor</text> - - <text class="keylblul" - x="258" - y="47">External Ports</text> - - <use x="258" y="58" xlink:href="#KEY_INPort"/> - <text class="keylabel" - x="288" - y="72">input</text> - - <use x="258" y="{58 + ($BLKD_IOP_H * 1) + 4}" xlink:href="#KEY_OUTPort"/> - <text class="keylabel" - x="288" - y="{72 + ($BLKD_IOP_H * 1) + 4}">output</text> - - <use x="258" y="{58 + ($BLKD_IOP_H * 2) + 8}" xlink:href="#KEY_INOUTPort"/> - <text class="keylabel" - x="288" - y="{72 + ($BLKD_IOP_H * 2) + 8}">inout</text> - - - <text class="keylblul" - x="380" - y="47">Interrupts</text> - - <use x="380" y="58" xlink:href="#KEY_IntrCntrl"/> - <text class="keylabel" - x="396" - y="64">interrupt</text> - <text class="keylabel" - x="396" - y="74">controller</text> - - - <use x="380" y="88" xlink:href="#KEY_IntrdProc"/> - <text class="keylabel" - x="396" - y="94">interrupted</text> - <text class="keylabel" - x="396" - y="104">processor</text> - - - <use x="380" y="118" xlink:href="#KEY_IntrSrc"/> - <text class="keylabel" - x="400" - y="124">interrupt</text> - <text class="keylabel" - x="400" - y="134">source</text> - - <text class="keylabel" - x="360" - y="146">x = controller ID</text> - - <text class="keylabel" - x="360" - y="156">y = priority</text> -<!-- - <text class="keylabel" - x="400" - y="134">source</text> - ---> - <rect - x="0" - y="160" - width= "{$BLKD_KEY_W}" - height="16" - style="fill:{$COL_BG_LT}; stroke:none;"/> - - <text class="keyheader" - x="{ceiling($BLKD_KEY_W div 2)} " - y="172">COLORS</text> - - - <text class="keylblul" - x="110" - y="190">Bus Standards</text> - - <xsl:variable name="dcr_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'DCR'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 0)}" - y="200" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$dcr_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + $BLKD_BIFC_W + 4}" - y="{200 + (($BLKD_BIF_H + 4) * 1)}">DCR</text> - - <xsl:variable name="fcb_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'FCB'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 0)}" - y="{200 + (($BLKD_BIFC_H + 4) * 1)}" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$fcb_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + $BLKD_BIFC_W + 4}" - y="{200 + (($BLKD_BIF_H + 4) * 2)}">FCB</text> - - <xsl:variable name="fsl_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'FSL'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 1)}" - y="200" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$fsl_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 1)}" - y="{200 + (($BLKD_BIF_H + 4) * 1)}">FSL</text> - - <xsl:variable name="col_lmb_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'LMB'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 1)}" - y="{200 + (($BLKD_BIFC_H + 4) * 1)}" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$col_lmb_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 1)}" - y="{200 + (($BLKD_BIF_H + 4) * 2)}">LMB</text> - - - <xsl:variable name="opb_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'OPB'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 2)}" - y="200" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$opb_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 2)}" - y="{200 + (($BLKD_BIF_H + 4) * 1)}">OPB</text> - - <xsl:variable name="plb_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'PLB'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 2)}" - y="{200 + (($BLKD_BIFC_H + 4) * 1)}" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$plb_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 2)}" - y="{200 + (($BLKD_BIF_H + 4) * 2)}">PLB</text> - - - <xsl:variable name="ocm_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'OCM'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 3)}" - y="200" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$ocm_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 3)}" - y="{200 + (($BLKD_BIF_H + 4) * 1)}">SOCM</text> - - - <xsl:variable name="xil_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'XIL'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 3)}" - y="{200 + (($BLKD_BIFC_H + 4) * 1)}" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$xil_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 3)}" - y="{200 + (($BLKD_BIF_H + 4) * 2)}">XIL (prefix) P2P</text> - - - <xsl:variable name="trs_col_"> - <xsl:call-template name="BusType2Color"> - <xsl:with-param name="iBusType" select="'TRS'"/> - </xsl:call-template> - </xsl:variable> - - <rect - x="{12 + ((12 + $BLKD_BIFC_W + 36) * 4)}" - y="200" - width= "{$BLKD_BIFC_H}" - height="{$BLKD_BIFC_W}" - style="fill:{$trs_col_}; stroke:none;"/> - <text class="keylabel" - x="{12 + ($BLKD_BIFC_W + 4) + ((12 + $BLKD_BIFC_W + 36) * 4)}" - y="{200 + (($BLKD_BIF_H + 4) * 1)}">GEN. P2P, USER, etc</text> - -</symbol> -</xsl:template> - -<xsl:template name="Define_BlkDiagram_Specs"> - - <xsl:param name="iArch" select="'NA'"/> - <xsl:param name="iPart" select="'NA'"/> - <xsl:param name="iTimeStamp" select="'NA'"/> - <xsl:param name="iEdkVersion" select="'NA'"/> - - <symbol id="BlkDiagram_Specs"> - <rect - x="0" - y="0" - width= "{$BLKD_SPECS_W}" - height="{$BLKD_SPECS_H}" - style="fill:{$COL_BG}; stroke:none;"/> - - <rect - x="0" - y="0" - width= "{$BLKD_SPECS_W}" - height="16" - style="fill:{$COL_BG}; stroke:none;"/> - - <text class="keytitle" - x="{ceiling($BLKD_SPECS_W div 2)} " - y="14">SPECS</text> - - <rect - x="0" - y="20" - width= "{$BLKD_SPECS_W}" - height="16" - style="fill:{$COL_BG_LT}; stroke:none;"/> - - <text class="specsheader" - x="4" - y="32">EDK VERSION</text> - -<!-- - <text class="specsvalue" - x="{($BLKD_SPECS_W + 1) - (string-length($blkd_edkver) * 6.5)}" - y="32"><xsl:value-of select="$blkd_edkver"/></text> ---> - <text class="specsvaluemid" - x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}" - y="32"><xsl:value-of select="$iEdkVersion"/></text> - - <rect - x="0" - y="40" - width= "{$BLKD_SPECS_W}" - height="16" - style="fill:{$COL_BG_LT}; stroke:none;"/> - - <text class="specsheader" - x="4" - y="52">ARCH</text> - -<!-- - <text class="specsvalue" - x="{($BLKD_SPECS_W + 1) - (string-length($blkd_arch) * 6.5)}" - y="52"><xsl:value-of select="$blkd_arch"/></text> ---> - <text class="specsvaluemid" - x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}" - y="52"><xsl:value-of select="$iArch"/></text> - - <rect - x="0" - y="60" - width= "{$BLKD_SPECS_W}" - height="16" - style="fill:{$COL_BG_LT}; stroke:none;"/> - - <text class="specsheader" - x="4" - y="72">PART</text> - -<!-- - <text class="specsvalue" - x="{($BLKD_SPECS_W + 1) - ((string-length($blkd_part) + 2) * 6.5)}" - y="72"><xsl:value-of select="$blkd_part"/></text> ---> - <text class="specsvaluemid" - x="{($BLKD_SPECS_W + 1) - ceiling($BLKD_SPECS_W div 5)}" - y="72"><xsl:value-of select="$iPart"/></text> - - <rect - x="0" - y="80" - width= "{$BLKD_SPECS_W}" - height="16" - style="fill:{$COL_BG_LT}; stroke:none;"/> - - <text class="specsheader" - x="4" - y="92">GENERATED</text> - - <text class="specsvalue" - x="{($BLKD_SPECS_W + 1) - (string-length($iTimeStamp) * 6.5)}" - y="92"><xsl:value-of select="$iTimeStamp"/></text> - - - </symbol> -</xsl:template> - - - - -</xsl:stylesheet> - -<!-- =========================================================================== --> -<!-- FUNCTION TEMPLATE --> -<!-- --> -<!-- =========================================================================== -->
\ No newline at end of file |