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

📄 mdtsvgblkd_calculations.xsl

📁 microblaze下ucos移植源码
💻 XSL
📖 第 1 页 / 共 3 页
字号:
		</xsl:if>					<xsl:variable name="sbsBuckets_H_">			<xsl:call-template name="_calc_Stack_SbsBuckets_Height">				<xsl:with-param name="iStackIdx" select="$iStackIdx"/>			</xsl:call-template>			</xsl:variable>						<STACKSHAPE HEIGHT="{$sbsBuckets_H_}"/><!--						<xsl:message>Sbs Bucket H : <xsl:value-of select="$sbsBuckets_H_"/></xsl:message>-->		</xsl:variable>		<!--				<xsl:message>vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv</xsl:message>-->				<xsl:value-of select="sum(exsl:node-set($stack_heights_)/STACKSHAPE/@HEIGHT)"/>	</xsl:template>	<xsl:template name="_calc_Stack_SbsBuckets_Height">	<xsl:param name="iStackIdx"  select="1000"/>		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)])">0</xsl:if>		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">			<!-- Store the all buckets heights in a variable -->		<xsl:variable name="bkt_heights_">			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">						<xsl:variable name="bkt_height_">					<xsl:call-template name="_calc_SbsBucket_Height">							<xsl:with-param name="iBucketId" select="@BUSINDEX"/>					</xsl:call-template>					</xsl:variable><!--								<xsl:message>Found shared buckets height as <xsl:value-of select="$bkt_height_"/></xsl:message>-->								<BKT HEIGHT="{$bkt_height_ + $BLKD_BIF_H}"/>			</xsl:for-each>		</xsl:variable>				<xsl:value-of select="sum(exsl:node-set($bkt_heights_)/BKT/@HEIGHT)"/>	</xsl:if></xsl:template>	<xsl:template name="_calc_Max_Stack_BlwSbs_Height">	<!-- Store the heights in a variable -->		<xsl:variable name="blwSbs_heights_">				<!-- Default, in case there are no modules or ports -->				<BLW HEIGHT="0"/>				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]">	<!--						<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>-->							<xsl:variable name="stack_height_">				<xsl:call-template name="_calc_Stack_BlwSbs_Height">					<xsl:with-param name="iStackIdx"  select="@EAST"/>				</xsl:call-template>			</xsl:variable>									<BLW HEIGHT="{$stack_height_}"/>					</xsl:for-each>				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@WEST = (/EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH -1))]">			<!--						<xsl:message>Last stack of index <xsl:value-of select="@WEST"/></xsl:message>-->									<xsl:variable name="stack_height_">				<xsl:call-template name="_calc_Stack_BlwSbs_Height">					<xsl:with-param name="iStackIdx"  select="@WEST"/>				</xsl:call-template>			</xsl:variable>									<BLW HEIGHT="{$stack_height_}"/>					</xsl:for-each>					</xsl:variable>	<!--		<xsl:message>Found Blw Sbs max as <xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:message>-->		<!-- Return the max of them -->		<xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:template>		<xsl:template name="_calc_Max_Stack_AbvSbs_Height">	<!-- Store the heights in a variable -->		<xsl:variable name="abvSbs_heights_">				<!-- Default, in case there are no modules or ports -->				<ABV HEIGHT="0"/>				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST &lt; /EDKSYSTEM/BLKDSHAPES/@STACK_HORIZ_WIDTH)]"><!--						<xsl:message>Found a space of index <xsl:value-of select="@EAST"/></xsl:message>-->							<xsl:variable name="stack_height_">				<xsl:call-template name="_calc_Stack_AbvSbs_Height">					<xsl:with-param name="iStackIdx"  select="@EAST"/>				</xsl:call-template>			</xsl:variable>			<!--						<xsl:message>Found stack of height <xsl:value-of select="$stack_height_"/></xsl:message>			<xsl:message>==============================</xsl:message>-->									<ABV HEIGHT="{$stack_height_}"/>					</xsl:for-each>					</xsl:variable>	<!--		<xsl:message>Found Blw Sbs max as <xsl:value-of select="math:max(exsl:node-set($blwSbs_heights_)/BLW/@HEIGHT)"/></xsl:message>-->		<!-- Return the max of them -->		<xsl:value-of select="math:max(exsl:node-set($abvSbs_heights_)/ABV/@HEIGHT)"/></xsl:template>	<xsl:template name="_calc_MultiProc_Stack_Height">	<xsl:param name="iMPStack_Blkd_X"  select="100"/>			<xsl:variable name="mpStk_ShpHeights_">			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@HAS_MULTIPROCCONNS) and (@PSTACK_BLKD_X = $iMPStack_Blkd_X))])">				<MPSHAPE HEIGHT="0"/>			</xsl:if>						<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@HAS_MULTIPROCCONNS) and (@PSTACK_BLKD_X = $iMPStack_Blkd_X))]">				<xsl:variable name="shpClass_" select="@MODCLASS"/> 				<xsl:variable name="shpHeight_">					<xsl:choose>						<xsl:when test="$shpClass_ = 'PERIPHERAL'"><!--														<xsl:message>Found Multi Proc Peripheral</xsl:message> -->								<xsl:call-template name="_calc_PeriShape_Height">									<xsl:with-param name="iShapeInst" select="MODULE/@INSTANCE"/>							</xsl:call-template>							</xsl:when>						<xsl:when test="$shpClass_ = 'MEMORY_UNIT'"><!--														<xsl:message>Found Multi Proc Memory Unit</xsl:message> -->								<xsl:call-template name="_calc_MemoryUnit_Height">									<xsl:with-param name="iShapeIndex"  select="@CSHAPE_INDEX"/>							</xsl:call-template>							</xsl:when>						<xsl:otherwise>0</xsl:otherwise>					</xsl:choose>				</xsl:variable>				<!--								<xsl:message>Found <xsl:value-of select="$shpHeight_"/></xsl:message>-->												<MPSHAPE HEIGHT="{$shpHeight_}"/>			</xsl:for-each>	</xsl:variable>	<!--		<xsl:message>Found stack of height <xsl:value-of select="sum(exsl:node-set($mpStk_ShpHeights_)/MPSHAPE/@HEIGHT)"/></xsl:message>-->			<xsl:value-of select="sum(exsl:node-set($mpStk_ShpHeights_)/MPSHAPE/@HEIGHT)"/></xsl:template><xsl:template name="_calc_Max_MultiProc_Stack_Height">		<!-- Store the heights in a variable -->			<xsl:variable name="mpStks_Heights_">		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE)">			<MPSTK HEIGHT="0"/>		</xsl:if>		<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@PSTACK_BLKD_X)]">			<xsl:variable name="mpstack_height_">				<xsl:call-template name="_calc_MultiProc_Stack_Height">					<xsl:with-param name="iMPStack_Blkd_X" select="(@PSTACK_BLKD_X + 1)"/>				</xsl:call-template>			</xsl:variable>			<!--						<xsl:message>Found <xsl:value-of select="$mpstack_height_"/></xsl:message>-->						<MPSTK HEIGHT="{$mpstack_height_}"/>		</xsl:for-each>			</xsl:variable>		<!-- Return the max of them -->		<xsl:value-of select="math:max(exsl:node-set($mpStks_Heights_)/MPSTK/@HEIGHT)"/>	</xsl:template><xsl:template name="_calc_Stack_Shape_Y">		<xsl:param name="iHorizIdx"  select="100"/>	<xsl:param name="iVertiIdx"  select="100"/>		<!--		<xsl:message>Y at H index <xsl:value-of select="$iHorizIdx"/></xsl:message>	<xsl:message>Y at V index <xsl:value-of select="$iVertiIdx"/></xsl:message>	<xsl:param name="sbsGap"    select="0"/>	<xsl:variable name="numSBSs_"     select="count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE)"/>		<xsl:variable name="sbs_LANE_H_"    select="($numSBSs_ * $BLKD_SBS_LANE_H)"/>	<xsl:variable name="sbsGap_"   select="($BLKD_PROC2SBS_GAP + $sbs_LANE_H_)"/>-->			<xsl:variable name="sbsGap_" select="((count(/EDKSYSTEM/BLKDSHAPES/SBSSHAPES/MODULE) * $BLKD_SBS_LANE_H) + $BLKD_PROC2SBS_GAP)"/>			<xsl:if test="(not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]) and  		           not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(  (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]) and		           not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(     (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]))">0</xsl:if>			<xsl:if test="((/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])   or  		           (/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(  (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])   or		           (/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(     (@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]))">		<!-- Store the spaces above this one in a variable -->		<xsl:variable name="spaces_above_">					<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))])">				<SPACE HEIGHT="0"/>			</xsl:if>						<!-- Store the height of all peripherals and memory units above this one-->			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">								<xsl:if test="not(@MODCLASS='MEMORY_UNIT')">						<xsl:variable name="peri_height_">						<xsl:call-template name="_calc_Shape_Height">								<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>						</xsl:call-template>						</xsl:variable><!--										<xsl:message>Found peri height <xsl:value-of select="$peri_height_"/></xsl:message>-->						<SPACE HEIGHT="{$peri_height_ + $BLKD_BIF_H}"/>				</xsl:if>								<xsl:if test="(@MODCLASS='MEMORY_UNIT')">						<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>Found unit height <xsl:value-of select="$memu_height_"/></xsl:message>-->										<SPACE HEIGHT="{$memu_height_ + $BLKD_BIF_H}"/>				</xsl:if>							</xsl:for-each>						<!-- Store the height of all the processors above this one-->			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">				<xsl:variable name="proc_height_">						<xsl:call-template name="_calc_PeriShape_Height">								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>						</xsl:call-template>					</xsl:variable>								<SPACE HEIGHT="{$proc_height_ + $BLKD_BIF_H}"/>			</xsl:for-each>						<!-- If its a peripheral that is below the shared busses, or its a shared bus bucket -->			<!-- add the height of the shared busses and the processor.                           -->			<xsl:if  test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))]/@IS_BLWSBS)">				<SPACE HEIGHT="{$sbsGap_}"/>			</xsl:if>			<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[((@STACK_HORIZ_INDEX = $iHorizIdx) and (@SHAPE_VERTI_INDEX = $iVertiIdx))])">				<SPACE HEIGHT="{$sbsGap_}"/>			</xsl:if>						<!-- Store the height of all shared bus buckets above this one-->			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[((@STACK_HORIZ_INDEX = $iHorizIdx)  and (@SHAPE_VERTI_INDEX &lt; $iVertiIdx))]">				<xsl:variable name="bkt_height_">					<xsl:call-template name="_calc_SbsBucket_Height">						<xsl:with-param name="iBucketId" select="@BUSINDEX"/>					</xsl:call-template>					</xsl:variable>								<SPACE HEIGHT="{$bkt_height_ + $BLKD_BIF_H}"/>			</xsl:for-each>					</xsl:variable>				<xsl:value-of select="sum(exsl:node-set($spaces_above_)/SPACE/@HEIGHT)"/>	</xsl:if>	</xsl:template>		<xsl:template name="_calc_Max_BusConnLane_BifY">		<xsl:param name="iBusName" select="'_busname_'"/>		<!-- Store the heights in a variable -->		<xsl:variable name="busConnYs_">				<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE/BUSCONN)">			<BUSCONNY HEIGHT="0"/>		</xsl:if>				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/BUSCONNS/BUSCONNLANE[(@BUSNAME = $iBusName)]/BUSCONN">						<xsl:variable name="peri_cstk_y_">				<xsl:call-template name="_calc_CStackShapesAbv_Height">					<xsl:with-param name="iCStackIndex"  select="../@CSTACK_INDEX"/>					<xsl:with-param name="ICStackModY"   select="@CSTACK_MODS_Y"/>				</xsl:call-template>				</xsl:variable>									<xsl:variable name="peri_bif_dy_">					<xsl:value-of select="(($BLKD_BIF_H + $BLKD_BIF_GAP_H)  * @BIF_Y)"/>				</xsl:variable>								<xsl:variable name="peri_bc_y_">					<xsl:value-of select="($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_BIF_GAP_H + $peri_bif_dy_ + ceiling($BLKD_BIF_H div 2)) - ceiling($BLKD_BIFC_H div 2)"/>				</xsl:variable>			<!--						<xsl:message>Found a busconn lane</xsl:message>-->						<BUSCONNY HEIGHT="{$peri_cstk_y_ + $peri_bif_dy_ + $peri_bc_y_}"/>		</xsl:for-each>			</xsl:variable>		<!-- Return the max of them -->		<xsl:value-of select="math:max(exsl:node-set($busConnYs_)/BUSCONNY/@HEIGHT)"/>	</xsl:template>		<xsl:template name="_calc_Min_BusConnLane_BifY">	

⌨️ 快捷键说明

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