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

📄 mdtsvgblkd_ioports.xsl

📁 microblaze下ucos移植源码
💻 XSL
📖 第 1 页 / 共 2 页
字号:
<?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:param name="BLKD_IOP_H"   select="16"/>				<xsl:param name="BLKD_IOP_W"   select="16"/>				<xsl:param name="BLKD_IOP_SPC" select="12"/>				<xsl:param name="MOD_IO_GAP"   select="8"/>				-->	<!-- ======================= DEF BLOCK =============================== --><xsl:template name="Define_IOPorts">		<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="G_IOPort">		<rect  			x="0"  			y="0" 			width= "{$BLKD_IOP_W}" 			height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/> 					<path class="ioport"			  d="M   0,0				 L   {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}				 L   0,{$BLKD_IOP_H}				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>		</symbol>	 <symbol id="G_BIPort">		<rect  			x="0"  			y="0" 			width= "{$BLKD_IOP_W}" 			height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/> 					<path class="btop"			  d="M 0,{ceiling($BLKD_IOP_H div 2)}				 {ceiling($BLKD_IOP_W div 2)},0				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>					 		<path class="bbot"			  d="M 0,{ceiling($BLKD_IOP_H div 2)}				 {ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}				 Z" style="stroke:none; fill:{$COL_SYSPRT}"/>					 	</symbol>	 <symbol id="KEY_IOPort">		<rect  			x="0"  			y="0" 			width= "{$BLKD_IOP_W}" 			height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/> 					<path class="ioport"			  d="M   0,0				 L   {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}				 L   0,{$BLKD_IOP_H}				 Z" style="stroke:none; fill:{$key_col_}"/>		</symbol>		 <symbol id="KEY_BIPort">		<rect  			x="0"  			y="0" 			width= "{$BLKD_IOP_W}" 			height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/> 					<path class="btop"			  d="M 0,{ceiling($BLKD_IOP_H div 2)}				 {ceiling($BLKD_IOP_W div 2)},0				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}				 Z" style="stroke:none; fill:{$key_col_}"/>					 		<path class="bbot"			  d="M 0,{ceiling($BLKD_IOP_H div 2)}				 {ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}				 {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}				 Z" style="stroke:none; fill:{$key_col_}"/>	</symbol>		 <symbol id="KEY_INPort">		<use   x="0"   y="0"   xlink:href="#KEY_IOPort"/>		<rect  			x="{$BLKD_IOP_W}"  			y="0" 			width= "{ceiling($BLKD_IOP_W div 2)}" 			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 	</symbol>		 <symbol id="KEY_OUTPort">		<use   x="0"   y="0"   xlink:href="#KEY_IOPort" transform="scale(-1,1) translate({$BLKD_IOP_W * -1},0)"/>		<rect  			x="{$BLKD_IOP_W}"  			y="0" 			width= "{ceiling($BLKD_IOP_W div 2)}" 			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 	</symbol>	 <symbol id="KEY_INOUTPort">		<use   x="0"   y="0"   xlink:href="#KEY_BIPort"/>		<rect  			x="{$BLKD_IOP_W}"  			y="0" 			width= "{ceiling($BLKD_IOP_W div 2)}" 			height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/> 	</symbol></xsl:template><!-- ======================= DRAW BLOCK =============================== --><xsl:template name="Draw_IOPorts"> 		<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>		<xsl:if test="($ports_count_ &gt; 30)">		<xsl:call-template name="Draw_IOPorts_4Sides"/> 	</xsl:if>		<xsl:if test="($ports_count_ &lt;= 30)">		<xsl:call-template name="Draw_IOPorts_2Sides"/> 	</xsl:if></xsl:template><xsl:template name="Draw_IOPorts_2Sides"> 		<xsl:variable name="ports_count_"    select="count(EXTERNALPORTS/PORT)"/>	<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 2)"/>		<xsl:variable name="h_ofs_">		<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_total_drawarea_W  - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>	</xsl:variable>		<xsl:variable name="v_ofs_">		<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_total_drawarea_H  - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>	</xsl:variable>		<xsl:for-each select="EXTERNALPORTS/PORT">		<xsl:sort data-type="number" select="@INDEX" order="ascending"/>				<xsl:variable name="poffset_" select="0"/>		<xsl:variable name="pcount_"  select="$poffset_ + (position() -1)"/>				<xsl:variable name="pdir_">			<xsl:choose>				<xsl:when test="(@DIR='I'  or @DIR='IN'  or @DIR='INPUT')">I</xsl:when>				<xsl:when test="(@DIR='O'  or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>				<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>				<xsl:otherwise>I</xsl:otherwise>			</xsl:choose>			</xsl:variable>				<xsl:variable name="pside_">			<xsl:choose>				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>				<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">E</xsl:when>				<xsl:otherwise>D</xsl:otherwise>			</xsl:choose>			</xsl:variable>				<xsl:variable name="pdec_">			<xsl:choose>				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>				<xsl:otherwise>0</xsl:otherwise>			</xsl:choose>			</xsl:variable>				<xsl:variable name="px_">			<xsl:choose>				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_total_drawarea_W)"/></xsl:when>				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>				<xsl:otherwise>0</xsl:otherwise>			</xsl:choose>			</xsl:variable>				<xsl:variable name="py_">			<xsl:choose>				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>				<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_total_drawarea_H)"/></xsl:when>				<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>				<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>				<xsl:otherwise>0</xsl:otherwise>			</xsl:choose>			</xsl:variable>					<xsl:variable name="prot_">			<xsl:choose>				<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>								<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>								<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>				<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>				<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>				<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>				<xsl:otherwise>0</xsl:otherwise>			</xsl:choose>			</xsl:variable>						<xsl:variable name="txo_">			<xsl:choose>				<xsl:when test="($pside_  = 'W')">-10</xsl:when>				<xsl:when test="($pside_  = 'S')">6</xsl:when>				 <xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>				<xsl:when test="($pside_  = 'N')">6</xsl:when>				<xsl:otherwise>0</xsl:otherwise>			</xsl:choose>			</xsl:variable>				<xsl:variable name="tyo_">			<xsl:choose>				<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>

⌨️ 快捷键说明

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