⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdtsvgblkd_calculations.xsl

📁 microblaze下ucos移植源码
💻 XSL
📖 第 1 页 / 共 3 页
字号:
<?xml version="1.0" standalone="no"?><xsl:stylesheet version="1.0"           xmlns:svg="http://www.w3.org/2000/svg"           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"           xmlns:exsl="http://exslt.org/common"           xmlns:math="http://exslt.org/math"           xmlns:xlink="http://www.w3.org/1999/xlink"           extension-element-prefixes="math">                <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"	       doctype-public="-//W3C//DTD SVG 1.0//EN"		   doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>	<xsl:template name="_calc_Proc_Height">	<xsl:param name="iProcInst"  select="_processor_"/>		<xsl:variable name="tot_bifs_h_">		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H)">0</xsl:if>				<xsl:if test="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H">			<xsl:variable name="bifs_h_" select="(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iProcInst)]/@BIFS_H)"/>			<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP_H) * $bifs_h_)"/>			</xsl:if>	</xsl:variable>			<xsl:value-of select="(($BLKD_MOD_LANE_H * 2) + $tot_bifs_h_ + ($BLKD_MOD_LABEL_H + $BLKD_BIF_GAP_H))"/>	</xsl:template><xsl:template name="_calc_Max_Proc_Height">	<!-- Store the heights in a variable -->		<xsl:variable name="proc_heights_">			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">			<PROC HEIGHT="0"/>		</xsl:if>				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE">			<xsl:variable name="procInst_" select="@INSTANCE"/> 			<xsl:variable name="proc_height_">				<xsl:call-template name="_calc_Proc_Height">						<xsl:with-param name="iProcInst" select="$procInst_"/>				</xsl:call-template>				</xsl:variable>			<!--						<xsl:message>Found Proc height as <xsl:value-of select="$proc_height_"/></xsl:message>-->						<PROC HEIGHT="{$proc_height_}"/>		</xsl:for-each>	</xsl:variable>		<!-- Return the max of them -->	<!--		<xsl:message>Found Proc ax as <xsl:value-of select="math:max(exsl:node-set($proc_heights_)/PROC/@HEIGHT)"/></xsl:message>-->		<xsl:value-of select="math:max(exsl:node-set($proc_heights_)/PROC/@HEIGHT)"/></xsl:template><xsl:template name="_calc_Proc_MemoryUnits_Height">	<xsl:param name="iProcInst"  select="_processor_"/>		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS = 'MEMORY_UNIT'))])">0</xsl:if>		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS='MEMORY_UNIT'))]">			<xsl:variable name="peri_gap_">		<xsl:choose>			<xsl:when test="not(@CSTACK_INDEX)">				<xsl:value-of select="$BLKD_BIF_H"/>			</xsl:when>			<xsl:otherwise>0</xsl:otherwise>		</xsl:choose>		</xsl:variable>								<!-- Store the all memory unit heights in a variable -->		<xsl:variable name="memU_heights_">			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and (@MODCLASS='MEMORY_UNIT'))]"><!--								<xsl:variable name="unitId_" select="@PSTACK_MODS_Y"/>-->								<xsl:variable name="unitHeight_">					<xsl:call-template name="_calc_MemoryUnit_Height">							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>					</xsl:call-template>					</xsl:variable>								<MEM_UNIT HEIGHT="{$unitHeight_ + $peri_gap_}"/>			</xsl:for-each>		</xsl:variable>				<xsl:value-of select="sum(exsl:node-set($memU_heights_)/MEM_UNIT/@HEIGHT)"/>	</xsl:if></xsl:template>	<xsl:template name="_calc_Proc_Peripherals_Height">	<xsl:param name="iProcInst"  select="_processor_"/>		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS = 'MEMORY_UNIT'))])">0</xsl:if>		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS='MEMORY_UNIT'))]">			<xsl:variable name="peri_gap_">			<xsl:if test="@CSTACK_INDEX">				<xsl:value-of select="$BLKD_BIF_H"/>			</xsl:if>			<xsl:if test="not(@IS_CSTACK)">0</xsl:if>		</xsl:variable>			<!-- Store the all peripheral heights in a variable -->		<xsl:variable name="peri_heights_">						<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@PROCESSOR = $iProcInst) and not(@MODCLASS='MEMORY_UNIT'))]">				<xsl:for-each select="MODULE"><!--										<xsl:message><xsl:value-of select="@INSTANCE"/></xsl:message>		-->										<xsl:variable name="peri_height_">						<xsl:call-template name="_calc_PeriShape_Height">								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>						</xsl:call-template>						</xsl:variable>					<PERI HEIGHT="{$peri_height_ + $peri_gap_}"/>				</xsl:for-each>					</xsl:for-each>		</xsl:variable>				<xsl:value-of select="sum(exsl:node-set($peri_heights_)/PERI/@HEIGHT)"/>	</xsl:if></xsl:template>		<xsl:template name="_calc_Space_AbvSbs_Height">	<xsl:param name="iStackToEast"  select="'NONE'"/>	<xsl:param name="iStackToWest"  select="'NONE'"/>			<xsl:variable name = "stackAbvSbs_West_H_">		<xsl:choose>			<xsl:when test="(($iStackToEast = '0')   and     ($iStackToWest = 'NONE'))">0</xsl:when>			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">				<xsl:call-template name="_calc_Stack_AbvSbs_Height">					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>				</xsl:call-template>			</xsl:when>			<xsl:when test="(not($iStackToEast = '0') and ($iStackToWest = 'NONE'))">				<xsl:call-template name="_calc_Stack_AbvSbs_Height">					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>				</xsl:call-template>			</xsl:when>			<xsl:otherwise>0</xsl:otherwise>		</xsl:choose>	</xsl:variable>		<xsl:variable name = "stackAbvSbs_East_H_">		<xsl:call-template name="_calc_Stack_AbvSbs_Height">			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>		</xsl:call-template>	</xsl:variable>		<xsl:variable name="stackAbvSbs_heights_">		<STACK HEIGHT="{$stackAbvSbs_East_H_}"/>		<STACK HEIGHT="{$stackAbvSbs_West_H_}"/>	</xsl:variable>		<xsl:value-of select="math:max(exsl:node-set($stackAbvSbs_heights_)/STACK/@HEIGHT)"/></xsl:template>	<xsl:template name="_calc_Space_BlwSbs_Height">	<xsl:param name="iStackToEast"  select="'NONE'"/>	<xsl:param name="iStackToWest"  select="'NONE'"/>			<xsl:variable name = "stackBlwSbs_West_H_">		<xsl:choose>			<xsl:when test="(($iStackToEast = '0')    and    ($iStackToWest = 'NONE'))">0</xsl:when>			<xsl:when test="(($iStackToEast = 'NONE') and not($iStackToWest = 'NONE'))">				<xsl:call-template name="_calc_Stack_BlwSbs_Height">					<xsl:with-param name="iStackIdx"  select="$iStackToWest"/>				</xsl:call-template>			</xsl:when>			<xsl:when test="(not($iStackToEast = '0') and    ($iStackToWest = 'NONE'))">				<xsl:call-template name="_calc_Stack_BlwSbs_Height">					<xsl:with-param name="iStackIdx"  select="($iStackToEast - 1)"/>				</xsl:call-template>			</xsl:when>		</xsl:choose>	</xsl:variable>			<xsl:variable name = "stackBlwSbs_East_H_">		<xsl:call-template name="_calc_Stack_BlwSbs_Height">			<xsl:with-param name="iStackIdx"  select="$iStackToEast"/>		</xsl:call-template>	</xsl:variable>		<xsl:variable name="stackBlwSbs_heights_">		<STACK HEIGHT="{$stackBlwSbs_East_H_}"/>		<STACK HEIGHT="{$stackBlwSbs_West_H_}"/>	</xsl:variable>		<xsl:value-of select="math:max(exsl:node-set($stackBlwSbs_heights_)/STACK/@HEIGHT)"/></xsl:template>		<xsl:template name="_calc_Stack_AbvSbs_Height">	<xsl:param name="iStackIdx"  select="100"/><!--		<xsl:message>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</xsl:message>-->			<xsl:if test="(not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]) and				   not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]))"><xsl:value-of select="$BLKD_PROC2SBS_GAP"/></xsl:if>		<xsl:if test="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]) or				   (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[      (@STACK_HORIZ_INDEX = $iStackIdx)]))">					<!--				<xsl:message>The gap is <xsl:value-of select="$peri_gap_"/></xsl:message>		<xsl:message>The gap is <xsl:value-of select="$peri_gap_"/></xsl:message>		<xsl:message>================================</xsl:message>		<xsl:message>================================</xsl:message>		<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>		<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_"/></xsl:message>-->					<!-- Store the all peripheral heights in a variable -->		<xsl:variable name="peri_heights_">						<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT') and (@IS_ABVSBS))]">				<xsl:for-each select="MODULE"><!--										<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>-->															<xsl:variable name="peri_height_"><!--												<xsl:call-template name="_calc_Shape_Height">								<xsl:with-param name="shapeId" select="@SHAPE_ID"/>						</xsl:call-template>	-->	 							<xsl:call-template name="_calc_PeriShape_Height">								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>						</xsl:call-template>						</xsl:variable>										<PERI HEIGHT="{$peri_height_ + $BLKD_BIF_H}"/>				</xsl:for-each>			</xsl:for-each>						<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS = 'MEMORY_UNIT') and (@IS_ABVSBS))]">							<xsl:variable name="memu_height_">					<xsl:call-template name="_calc_MemoryUnit_Height">							<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>					</xsl:call-template>					</xsl:variable>			<!--								<xsl:message>Mem_Unit : <xsl:value-of select="@SHAPE_ID"/> : <xsl:value-of select="$memu_height_ + $peri_gap_"/></xsl:message>				<xsl:message>This is above <xsl:value-of select="@INSTANCE"/></xsl:message>                <xsl:message>===================================</xsl:message>-->								<PERI HEIGHT="{$memu_height_ + $BLKD_BIF_H}"/>						</xsl:for-each>						<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_ABVSBS))]">									<xsl:variable name="proc_height_">					<xsl:call-template name="_calc_PeriShape_Height">							<xsl:with-param name="iShapeInst" select="@INSTANCE"/>					</xsl:call-template>					</xsl:variable>				<!--						<xsl:message>Processor : <xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_ + $peri_gap_"/></xsl:message>				<PERI HEIGHT="{$proc_height_ + $BLKD_PROC2SBS_GAP }"/>-->									<PERI HEIGHT="{$proc_height_ + $BLKD_BIF_H}"/>							</xsl:for-each>				</xsl:variable>		<!--			<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_ + $peri_gap_"/></xsl:message>	<xsl:message>================================</xsl:message>-->		<!--			<xsl:message>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</xsl:message>-->				<xsl:value-of select="sum(exsl:node-set($peri_heights_)/PERI/@HEIGHT)"/>	</xsl:if>	</xsl:template>	<xsl:template name="_calc_Stack_BlwSbs_Height">	<xsl:param name="iStackIdx"  select="100"/>			<!-- Store the all peripheral heights in a variable -->		<xsl:variable name="stack_heights_">						<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_BLWSBS))])">				<STACKSHAPE HEIGHT="0"/>			</xsl:if>						<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@IS_BLWSBS))]">					<xsl:variable name="peri_gap_">					<xsl:choose>						<xsl:when test="(@SHAPE_VERTI_INDEX)">							<xsl:value-of select="$BLKD_BIF_H"/>						</xsl:when>						<xsl:otherwise>0</xsl:otherwise>					</xsl:choose>					</xsl:variable>									<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT') and (@IS_BLWSBS))]">					<xsl:for-each select="MODULE"><!--										<xsl:message>This is below <xsl:value-of select="@INSTANCE"/></xsl:message>-->							<xsl:variable name="peri_height_">							<xsl:call-template name="_calc_PeriShape_Height">									<xsl:with-param name="iShapeInst" select="@INSTANCE"/>							</xsl:call-template>							</xsl:variable>						<!--							<xsl:message><xsl:value-of select="@INSTANCE"/> : <xsl:value-of select="$peri_height_"/></xsl:message>-->																		<STACKSHAPE HEIGHT="{$peri_height_ + $peri_gap_}"/>					</xsl:for-each>				</xsl:for-each>						<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS = 'MEMORY_UNIT') and (@IS_BLWSBS))]">								<xsl:variable name="memu_height_">						<xsl:call-template name="_calc_MemoryUnit_Height">								<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>						</xsl:call-template>						</xsl:variable>								<STACKSHAPE HEIGHT="{$memu_height_ + $peri_gap_}"/>				<!--								<xsl:message>Mem_Unit : <xsl:value-of select="@SHAPE_ID"/> : <xsl:value-of select="$memu_height_ + $peri_gap_"/></xsl:message>-->							</xsl:for-each>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -