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

📄 mdtsvgblkd_peripherals.xsl

📁 microblaze下ucos移植源码
💻 XSL
📖 第 1 页 / 共 4 页
字号:
</xsl:template>			<xsl:template name="Define_StandAlone_MPMC"> 	<!--		<xsl:param name="drawarea_w"  select="500"/>	<xsl:param name="drawarea_h"  select="500"/>-->			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/MPMCSHAPE">				<xsl:variable name="mpmcInst_" select="@INSTANCE"/>		<xsl:variable name="mpmcType_" select="/EDKSYSTEM/MODULES/MODULE[@INSTANCE=$mpmcInst_]/@MODTYPE"/><!--				<xsl:message>Drawing instance <xsl:value-of select="$mpmcInst_"/></xsl:message>-->						<xsl:variable name="mpmc_w_"  select="($G_total_drawarea_W - ($BLKD_INNER_GAP * 2))"/>		<xsl:variable name="label_y_"  select="ceiling($BLKD_MPMC_MOD_H div 2) - ceiling($BLKD_MOD_LABEL_H div 2)"/>				<symbol id="mpmcmodule_{$mpmcInst_}">			<rect x="0"		          y="0"		          width = "{$mpmc_w_}"		          height= "{$BLKD_MPMC_MOD_H}"			      style="fill:{$COL_MPMC_BG}; stroke:{$COL_BLACK}; stroke-width:2"/>			  		    <rect x="{$BLKD_MOD_LANE_H}"		          y="{$label_y_}"			      rx="3"			      ry="3"		          width= "{$BLKD_MOD_LABEL_W}"		          height="{$BLKD_MOD_LABEL_H}"			      style="fill:{$COL_WHITE}; stroke:none;"/>						<text class="bciptype" 				  x="{ceiling(($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_W) div 2)}"				  y="{$label_y_ + 8}">					<xsl:value-of select="$mpmcType_"/>			</text>							<text class="bciplabel" 				  x="{ceiling(($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_W) div 2)}"				  y="{$label_y_ + 16}">					<xsl:value-of select="$mpmcInst_"/>		   </text>						<text class="mpmctitle" 				  x="{ceiling($mpmc_w_ div 2)}"				  y="{$label_y_ + 16}">MPMC Module Interface</text><!--			-->		   		</symbol>				</xsl:for-each>	</xsl:template>		<!-- ======================= END DEF FUNCTIONS ============================ --><!-- ======================= UTILITY FUNCTIONS ============================ --><xsl:template name="_draw_InterruptSource">	<xsl:param name="iIntr_X"   select="0"/>	<xsl:param name="iIntr_Y"   select="0"/>	<xsl:param name="iIntr_PRI" select="0"/>	<xsl:param name="iIntr_IDX" select="0"/>	<xsl:param name="iIntr_COL" select="$COL_INTR_0"/>			<rect  			x="{$iIntr_X}"			y="{$iIntr_Y}"			rx="3"			ry="3"			width= "{$BLKD_INTR_W}" 			height="{ceiling($BLKD_INTR_H div 2)}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 					<line x1="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 			  y1="{$iIntr_Y}"			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 2)}" 			  style="stroke:{$COL_BLACK};stroke-width:1"/>			  		<xsl:variable name="txt_ofs_">			<xsl:if test="($iIntr_PRI &gt; 9)">4.5</xsl:if>			<xsl:if test="not($iIntr_PRI &gt; 9)">0</xsl:if>		</xsl:variable>	  				<text class="intrsymbol" 			  x="{$iIntr_X + 2 - $txt_ofs_}"			  y="{$iIntr_Y + 8}">				<xsl:value-of select="$iIntr_PRI"/>		</text>					<text class="intrsymbol" 			  x="{$iIntr_X + 2 + ceiling($BLKD_INTR_W div 2)}"			  y="{$iIntr_Y + 8}">				<xsl:value-of select="$iIntr_IDX"/>		</text>			</xsl:template><xsl:template name="_draw_InterruptCntrl">	<xsl:param name="iIntr_X"   select="0"/>	<xsl:param name="iIntr_Y"   select="0"/>	<xsl:param name="iIntr_IDX" select="0"/>	<xsl:param name="iIntr_COL" select="$COL_INTR_0"/>			<rect  			x="{$iIntr_X}"			y="{$iIntr_Y}"			rx="3"			ry="3"			width= "{ceiling($BLKD_INTR_W div 2)}" 			height="{$BLKD_INTR_H}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 					<line x1="{$iIntr_X}" 			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4)}"			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4)}" 			  style="stroke:{$COL_BLACK};stroke-width:2"/>			  		<text class="intrsymbol" 			  x="{$iIntr_X + 2}"			  y="{$iIntr_Y + 8 + ceiling($BLKD_INTR_H div 2)}">				<xsl:value-of select="$iIntr_IDX"/>		</text>			</xsl:template><xsl:template name="_draw_InterruptedProc">	<xsl:param name="iIntr_X"   select="0"/>	<xsl:param name="iIntr_Y"   select="0"/>	<xsl:param name="iIntr_IDX" select="0"/>	<xsl:param name="iIntr_COL" select="$COL_INTR_0"/>			<rect  			x="{$iIntr_X}"			y="{$iIntr_Y}"			rx="3"			ry="3"			width= "{ceiling($BLKD_INTR_W div 2)}" 			height="{$BLKD_INTR_H}" style="fill:{$iIntr_COL}; stroke:none; stroke-width:1"/> 					<line x1="{$iIntr_X}" 			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) - 2}"			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) - 2}" 			  style="stroke:{$COL_BLACK};stroke-width:1"/>			  		<line x1="{$iIntr_X}" 			  y1="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) + 2}"			  x2="{$iIntr_X + ceiling($BLKD_INTR_W div 2)}" 			  y2="{$iIntr_Y + ceiling($BLKD_INTR_H div 4) + 2}" 			  style="stroke:{$COL_BLACK};stroke-width:1"/>			  		<text class="intrsymbol" 			  x="{$iIntr_X + 2}"			  y="{$iIntr_Y + 8 + ceiling($BLKD_INTR_H div 2)}">				<xsl:value-of select="$iIntr_IDX"/>		</text>			</xsl:template><xsl:template name="_calc_CStackShapesAbv_Height">	<xsl:param name="iCStackIndex"  select="100"/>	<xsl:param name="iCStackMods_Y" select="1000"/>	<!--		<xsl:message>Stack Index <xsl:value-of select="$cstackIndex"/></xsl:message>		<xsl:message>Stack Y <xsl:value-of select="$cstackModY"/></xsl:message>-->		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@CSTACK_INDEX = $iCStackIndex)])">0</xsl:if>		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@CSTACK_INDEX = $iCStackIndex)]">			<xsl:variable name="shapesAbv_Heights_">			<CSTACK_MOD HEIGHT="0"/>						<!-- Store the heights of all the peripherals above this one heights in a variable -->			<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[((@CSTACK_INDEX = $iCStackIndex) and (@CSTACK_MODS_Y &lt; $iCStackMods_Y))]">								<xsl:variable name="shapeHeight_">										<xsl:choose>												<xsl:when test="@MODCLASS = 'PERIPHERAL'">							<xsl:call-template name="_calc_PeriShape_Height">									<xsl:with-param name="iShapeInst" select="MODULE/@INSTANCE"/>							</xsl:call-template>							</xsl:when>												<xsl:when test="@MODCLASS = 'MEMORY_UNIT'">							<xsl:call-template name="_calc_MemoryUnit_Height">									<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>							</xsl:call-template>							</xsl:when>												<xsl:otherwise>0</xsl:otherwise>					</xsl:choose>				</xsl:variable>				<!--								<xsl:message>Calculated height of cstack shape of type <xsl:value-of select="@MODCLASS"/> as <xsl:value-of select="$shapeHeight_"/></xsl:message>-->											<CSTACK_MOD HEIGHT="{$shapeHeight_ + $BLKD_BIF_H}"/>			</xsl:for-each>		</xsl:variable>		<!--				<xsl:message>Calculated height of cstack as <xsl:value-of select="sum(exsl:node-set($shapesAbv_Heights_)/CSTACK_MOD/@HEIGHT)"/></xsl:message>-->						<xsl:value-of select="sum(exsl:node-set($shapesAbv_Heights_)/CSTACK_MOD/@HEIGHT)"/>	</xsl:if>	</xsl:template><xsl:template name="_calc_PeriShape_Height">	<xsl:param name="iShapeInst"  select="'_shape_'"/>	<!--		<xsl:message>Calculating height of <xsl:value-of select="$shapeInst"/></xsl:message>-->			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H) and not(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">0</xsl:if>		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>				<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>	</xsl:if>		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/BRIDGESHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>				<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>	</xsl:if>		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H)">		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/PROCSHAPES/MODULE[(@INSTANCE = $iShapeInst)]/@BIFS_H"/>				<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * $bifs_h_) + ($BLKD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>	</xsl:if>	</xsl:template>	<xsl:template name="_calc_Shape_Height">	<xsl:param name="iShapeId"  select="_shape_"/>	<!--		<xsl:message>Calculating height of <xsl:value-of select="$shapeId"/></xsl:message>-->			<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)])">0</xsl:if>		<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE/@BIFS_H)">		<xsl:variable name="bifs_h_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE/@BIFS_H"/>				<xsl:value-of select="($BLKD_MOD_LABEL_H + ($BIF_H * $bifs_h_) + ($BLKD_BIF_GAP_V * $bifs_h_) + ($BLKD_MOD_LANE_H * 2))"/>	</xsl:if>	</xsl:template><xsl:template name="_calc_MemoryUnit_Height">	<xsl:param name="iShapeId"  select="1000"/>		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)])">0</xsl:if>		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]">			<!-- Store the memory controller heights in a variable -->			<xsl:variable name="memC_heights_">				<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')])">				<MEM_CNTLR INSTANCE="{@INSTANCE}" HEIGHT="0"/>			</xsl:if>						<xsl:if test="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')])">				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[(@MODCLASS = 'MEMORY_CNTLR')]">					<xsl:variable name="memC_height_">						<xsl:call-template name="_calc_PeriShape_Height">								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>						</xsl:call-template>					</xsl:variable>					<MEM_CNTLR INSTANCE="{@INSTANCE}" HEIGHT="{$memC_height_}"/>				</xsl:for-each>			</xsl:if>		</xsl:variable>				<!-- Store the bram heights in a variable -->			<xsl:variable name="bram_heights_">				<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')])">				<BRAM INSTANCE="{@INSTANCE}" HEIGHT="0"/>			</xsl:if>			<xsl:if test="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')]">				<xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(@SHAPE_ID = $iShapeId)]/MODULE[not(@MODCLASS = 'MEMORY_CNTLR')]">					<xsl:variable name="bram_height_">						<xsl:call-template name="_calc_PeriShape_Height">								<xsl:with-param name="iShapeInst" select="@INSTANCE"/>						</xsl:call-template>					</xsl:variable>					<BRAM INSTANCE="{@INSTANCE}" HEIGHT="{$bram_height_}"/>				</xsl:for-each>			</xsl:if>		</xsl:variable>				<!-- Select the maximum of them -->		<xsl:variable name="max_bram_height_" select="math:max(exsl:node-set($bram_heights_)/BRAM/@HEIGHT)"/>		<xsl:variable name="max_memC_height_" select="math:max(exsl:node-set($memC_heights_)/MEM_CNTLR/@HEIGHT)"/>				<xsl:value-of select="$max_bram_height_ + $max_memC_height_"/>	</xsl:if></xsl:template><xsl:template name="_calc_SbsBucket_Height">	<xsl:param name="iBucketId"  select="100"/>	<!--		<xsl:message>Looking of height of bucket <xsl:value-of select="$bucketId"/></xsl:message>-->		<xsl:variable name="bkt_gap_" select="$BLKD_BIF_H"/>		<xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)])">0</xsl:if>		<xsl:if test="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)]">		<xsl:variable name="mods_h_" select="/EDKSYSTEM/BLKDSHAPES/SBSBUCKETS/SBSBUCKET[(@BUSINDEX = $iBucketId)]/@MODS_H"/>				<xsl:value-of select="((($BLKD_MOD_BKTLANE_H * 2) + ((($BLKD_MOD_H + $BLKD_BIFC_H) * $mods_h_) + ($BLKD_MOD_BUCKET_G * ($mods_h_ - 1)))) + $bkt_gap_)"/>	</xsl:if></xsl:template>	<!--	===============================================			Symbol Naming Functions		===============================================-->				<xsl:template name="_gen_Proc_StackName"><xsl:param name="iProcInst"  select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iProcInst"/></xsl:template>	<xsl:template name="_gen_Proc_GroupName"><xsl:param name="iProcInst"  select="'_unknown_'"/>symbol_GROUP_<xsl:value-of select="$iProcInst"/></xsl:template>		<xsl:template name="_gen_Space_Name"><xsl:param name="iStackToEast"    select="'NONE'"/><xsl:param name="iStackToWest"  select="'NONE'"/>symbol_SPACE_WEST_<xsl:value-of select="$iStackToWest"/>_EAST_<xsl:value-of select="$iStackToEast"/></xsl:template><xsl:template name="_gen_Stack_Name"><xsl:param name="iHorizIdx"       select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iHorizIdx"/></xsl:template><xsl:template name="_gen_Stack_SymbolName"><xsl:param name="iHorizIdx" select="'_unknown_'"/><xsl:param name="iVertiIdx" select="'_unknown_'"/>symbol_STACK_<xsl:value-of select="$iHorizIdx"/>_SHAPE_<xsl:value-of select="$iVertiIdx"/></xsl:template>	<!-- ======================= END UTILITY FUNCTIONS  ======================= --></xsl:stylesheet>

⌨️ 快捷键说明

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