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

📄 mdtsvgblkd_main.xsl

📁 microblaze下ucos移植源码
💻 XSL
📖 第 1 页 / 共 4 页
字号:
<?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 &gt; ($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 &gt; ($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="($unkBucketBifs_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/>				<xsl:value-of select="($total_UnkBif_H_ + $total_UnkMod_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>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>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>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>&#10;</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 &lt; /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>

⌨️ 快捷键说明

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