📄 mdtsvgblkd_buslanespaces.xsl
字号:
<xsl:value-of select="$vert_line_y2_"/> </xsl:when> <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> <xsl:value-of select="$vert_line_y1_"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="v_bus_ul_x_"> <xsl:choose> <xsl:when test="@ORIENTED='WEST'"> <xsl:value-of select="($vert_line_x_ + $BLKD_BIF_GAP_H)"/> </xsl:when> <xsl:when test="@ORIENTED='EAST'"> <xsl:value-of select="($vert_line_x_ - $BLKD_BIF_GAP_H)"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/> <xsl:variable name="v_bus_height_"> <xsl:choose> <xsl:when test="$vert_line_y1_ > $vert_line_y2_"> <xsl:value-of select="($vert_line_y1_ - $vert_line_y2_) - $BLKD_P2P_BUS_W"/> </xsl:when> <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> <xsl:value-of select="($vert_line_y2_ - $vert_line_y1_) - $BLKD_P2P_BUS_W"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="h_bus_ul_x_"> <xsl:choose> <xsl:when test="@ORIENTED='WEST'"> <xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/><!-- <xsl:value-of select="$v_bus_ul_x_"/>--> </xsl:when> <xsl:when test="@ORIENTED='EAST'"> <xsl:value-of select="$v_bus_ul_x_"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="h_bus_ul_y_"> <xsl:choose> <xsl:when test="$vert_line_y1_ > $vert_line_y2_"> <xsl:value-of select="$vert_line_y2_ - ceiling($BLKD_P2P_BUS_W div 2)"/> </xsl:when> <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> <xsl:value-of select="$vert_line_y1_ - ceiling($BLKD_P2P_BUS_W div 2)"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="h_bus_height_" select="$BLKD_P2P_BUS_W"/> <xsl:variable name="h_bus_width_"> <xsl:choose> <xsl:when test="@ORIENTED='WEST'"> <xsl:value-of select="$v_bus_ul_x_ - $h_bus_ul_x_ + $BLKD_P2P_BUS_W"/> </xsl:when> <xsl:when test="@ORIENTED='EAST'"> <xsl:value-of select="($bc_X_ - $v_bus_ul_x_) + ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2) + 1"/> </xsl:when> </xsl:choose> </xsl:variable> <!-- <xsl:if test="(@ORIENTED = 'WEST')"> </xsl:if> <xsl:message>bc_X_ <xsl:value-of select="$bc_X_"/></xsl:message> <xsl:message>v_bus_ul_x <xsl:value-of select="$v_bus_ul_x_"/></xsl:message> <xsl:message>h_bus_width <xsl:value-of select="$h_bus_width_"/></xsl:message> <xsl:message>h_bus_ul_y <xsl:value-of select="$h_bus_ul_y_"/></xsl:message>--> <rect x="{$v_bus_ul_x_}" y="{$v_bus_ul_y_ + 2}" width= "{$v_bus_width_}" height="{$v_bus_height_}" style="stroke:none; fill:{$busColor_}"/> <rect x="{$h_bus_ul_x_}" y="{$h_bus_ul_y_}" width= "{$h_bus_width_}" height="{$h_bus_height_}" style="stroke:none; fill:{$busColor_}"/> <!-- <xsl:message>Proc diff <xsl:value-of select="$procStack_H_diff_"/></xsl:message> <xsl:message>Proc inst <xsl:value-of select="$procInst_"/></xsl:message> <xsl:message>Proc Bif Name <xsl:value-of select="$procBifName_"/></xsl:message> <xsl:message>Proc Bif Rank <xsl:value-of select="$procBifRank_"/></xsl:message>--> </xsl:template> <!-- =========================================================== Handle non Processor Sharedebus connections. ===========================================================--> <xsl:template name="BCLaneSpace_NonProcBifToSharedBus"> <xsl:param name="iBusStd" select="'NONE'"/> <xsl:param name="iBusName" select="'NONE'"/> <xsl:param name="iBifRank" select="'NONE'"/> <xsl:param name="iStackToEast" select="'NONE'"/> <xsl:param name="iStackToWest" select="'NONE'"/> <xsl:param name="iStackToEast_W" select="0"/> <xsl:param name="iStackToWest_W" select="0"/> <xsl:param name="iLaneInSpace_X" select="0"/> <xsl:param name="iSpaceSharedBus_Y" select="0"/> <xsl:variable name="sbs_idx_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE= $iBusName)]/@BUSINDEX"/> <xsl:variable name="sbs_bc_y_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/><!-- <xsl:variable name="sbs_bc_y_" select="($G_SharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H))"/>--> <xsl:variable name="cmplxInst_" select="BUSCONN/@INSTANCE"/> <xsl:variable name="cmplxBif_Y_" select="((($BLKD_BIF_H + $BLKD_BIF_GAP_V) * BUSCONN/@BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_BIF_GAP_V))"/> <xsl:variable name="cmplxBifName_" select="BUSCONN/@BUSINTERFACE"/> <xsl:variable name="cmplxBifSide_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $cmplxInst_)]/BUSINTERFACE[(@NAME = $cmplxBifName_)]/@BIF_X"/> <xsl:variable name="cmplxBifRank_" select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $cmplxInst_)]/BUSINTERFACE[(@NAME = $cmplxBifName_)]/@BIFRANK"/> <xsl:variable name="cmplxshp_hori_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $cmplxInst_)])]/@STACK_HORIZ_INDEX"/> <xsl:variable name="cmplxshp_vert_idx_" select="/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[(MODULE[(@INSTANCE = $cmplxInst_)])]/@SHAPE_VERTI_INDEX"/> <xsl:variable name="is_abvSbs_" select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $cmplxInst_)]]/@IS_ABVSBS)"/> <xsl:variable name="is_blwSbs_" select="(/EDKSYSTEM/BLKDSHAPES/CMPLXSHAPES/CMPLXSHAPE[MODULE[(@INSTANCE = $cmplxInst_)]]/@IS_BLWSBS)"/> <!-- <xsl:message>iStackToEast <xsl:value-of select="$iStackToEast"/></xsl:message> <xsl:message>iStackToWest <xsl:value-of select="$iStackToWest"/></xsl:message> <xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_blwSbs_"/></xsl:message> <xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_abvSbs_"/></xsl:message> <xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_blwSbs_"/></xsl:message> <xsl:message><xsl:value-of select="$cmplxInst_"/> : <xsl:value-of select="$is_abvSbs_"/></xsl:message> <xsl:message>Stack horiz <xsl:value-of select="$cmplxshp_hori_idx_"/></xsl:message> <xsl:message>Stack verti <xsl:value-of select="$cmplxshp_vert_idx_"/></xsl:message> <xsl:message>Proc Bif Y <xsl:value-of select="$procBif_Y_"/></xsl:message>--> <xsl:variable name="busColor_"> <xsl:call-template name="BusType2Color"> <xsl:with-param name="iBusType" select="$iBusStd"/> </xsl:call-template> </xsl:variable> <xsl:variable name="space_W_"> <xsl:call-template name="_calc_Space_Width"> <xsl:with-param name="iStackToEast" select="$iStackToEast"/> <xsl:with-param name="iStackToWest" select="$iStackToWest"/> </xsl:call-template> </xsl:variable> <xsl:variable name ="extSpaceWest_W_" select="ceiling($iStackToWest_W div 2)"/> <xsl:variable name ="extSpaceEast_W_" select="ceiling($iStackToEast_W div 2)"/> <xsl:variable name="cmplxshp_Y_"> <xsl:call-template name="_calc_Stack_Shape_Y"> <xsl:with-param name="iHorizIdx" select="$cmplxshp_hori_idx_"/> <xsl:with-param name="iVertiIdx" select="$cmplxshp_vert_idx_"/> </xsl:call-template> </xsl:variable> <!-- <xsl:message>Complex shape Y <xsl:value-of select="$cmplxshp_Y_"/></xsl:message>--> <xsl:variable name="stackToEast_"> <xsl:choose> <xsl:when test="not($iStackToEast = 'NONE')"><xsl:value-of select="$iStackToEast"/></xsl:when> <xsl:otherwise>NONE</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="stackToWest_"> <xsl:choose> <xsl:when test=" not($iStackToWest = 'NONE')"><xsl:value-of select="$iStackToWest"/></xsl:when> <xsl:when test="(not($iStackToEast = 'NONE') and not($iStackToEast = '0'))"><xsl:value-of select="($iStackToEast - 1)"/></xsl:when> <xsl:otherwise>NONE</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="cmplxStack_H_diff_"> <xsl:choose> <xsl:when test=" (($stackToEast_ = 'NONE') or ($stackToWest_ = 'NONE'))">0</xsl:when> <xsl:when test="not(($stackToEast_ = 'NONE') or ($stackToWest_ = 'NONE'))"> <xsl:variable name="stackToWest_AbvSbs_H_"> <xsl:call-template name="_calc_Stack_AbvSbs_Height"> <xsl:with-param name="iStackIdx" select="$stackToWest_"/> </xsl:call-template> </xsl:variable> <xsl:variable name="stackToEast_AbvSbs_H_"> <xsl:call-template name="_calc_Stack_AbvSbs_Height"> <xsl:with-param name="iStackIdx" select="$stackToEast_"/> </xsl:call-template> </xsl:variable> <!-- <xsl:message>stack to west H <xsl:value-of select="$stackToWest_AbvSbs_H_"/></xsl:message> <xsl:message>stack to east H <xsl:value-of select="$stackToEast_AbvSbs_H_"/></xsl:message>--> <xsl:choose> <xsl:when test="(($cmplxshp_hori_idx_ = $stackToEast_) and ($stackToWest_AbvSbs_H_ > $stackToEast_AbvSbs_H_))"> <xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/> </xsl:when> <xsl:when test="(($cmplxshp_hori_idx_ = $stackToWest_) and ($stackToEast_AbvSbs_H_ > $stackToWest_AbvSbs_H_))"> <xsl:value-of select="($stackToEast_AbvSbs_H_ - $stackToWest_AbvSbs_H_)"/> </xsl:when> <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="bc_Y_" select="($cmplxshp_Y_ + $cmplxBif_Y_ + ceiling($BIF_H div 2) + $cmplxStack_H_diff_) - ceiling($BLKD_BIFC_H div 2)"/> <!-- <xsl:message>Sstack H Diff <xsl:value-of select="$cmplxStack_H_diff_"/></xsl:message> <xsl:message>BC Y <xsl:value-of select="$bc_Y_"/></xsl:message> <xsl:variable name="bc_x_" select="($laneInSpace_X + ceiling($BLKD_BIFC_W div 2))"/> <xsl:variable name="bc_x_" select="0"/>--> <xsl:variable name="bc_X_"> <xsl:choose> <xsl:when test="$cmplxBifSide_ = '0'"> <xsl:value-of select="($space_W_ + $extSpaceWest_W_ + $extSpaceEast_W_ - (ceiling($BLKD_MOD_W div 2) + $BLKD_BIFC_W))"/> </xsl:when> <xsl:when test="$cmplxBifSide_ = '1'"> <xsl:value-of select="ceiling($BLKD_MOD_W div 2)"/> </xsl:when> <xsl:otherwise>0</xsl:otherwise> </xsl:choose> </xsl:variable> <use x="{$bc_X_}" y="{$bc_Y_}" xlink:href="#{$iBusStd}_busconn_{$cmplxBifRank_}"/> <!-- <xsl:message>Bif Rank <xsl:value-of select="$cmplxBifRank_"/></xsl:message>--> <xsl:variable name="vert_line_x_" select="($iLaneInSpace_X + ceiling($BLKD_BIFC_W div 2))"/> <xsl:variable name="vert_line_y1_" select="($cmplxshp_Y_ + $cmplxBif_Y_ + ceiling($BLKD_BIF_H div 2) + $cmplxStack_H_diff_)"/> <xsl:variable name="vert_line_y2_" select="($iSpaceSharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/><!-- <xsl:variable name="vert_line_y2_" select="($G_SharedBus_Y + ($sbs_idx_ * $BLKD_SBS_LANE_H) + ceiling($BLKD_BIFC_W div 2))"/>--> <xsl:variable name="v_bus_ul_y_"> <xsl:choose> <xsl:when test="$vert_line_y1_ > $vert_line_y2_"> <xsl:value-of select="$vert_line_y2_"/> </xsl:when> <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> <xsl:value-of select="$vert_line_y1_"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="v_bus_ul_x_"> <xsl:choose> <xsl:when test="@ORIENTED='WEST'"> <xsl:value-of select="($vert_line_x_ + $BLKD_BIF_GAP_H)"/> </xsl:when> <xsl:when test="@ORIENTED='EAST'"> <xsl:value-of select="($vert_line_x_ - $BLKD_BIF_GAP_H)"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="v_bus_width_" select="$BLKD_P2P_BUS_W"/> <xsl:variable name="v_bus_height_"> <xsl:choose> <xsl:when test="$vert_line_y1_ > $vert_line_y2_"> <xsl:value-of select="($vert_line_y1_ - $vert_line_y2_) - $BLKD_P2P_BUS_W + 8"/> </xsl:when> <xsl:when test="$vert_line_y2_ > $vert_line_y1_"> <xsl:value-of select="($vert_line_y2_ - $vert_line_y1_) - $BLKD_P2P_BUS_W + 8"/> </xsl:when> </xsl:choose> </xsl:variable> <xsl:variable name="h_bus_ul_x_"> <xsl:choose> <xsl:when test="@ORIENTED='WEST'"> <xsl:value-of select="($bc_X_ + $BLKD_BIFC_W - ceiling(($BLKD_BIFC_W - $BLKD_BIFC_Wi) div 2))"/> </xsl:when> <xsl:when test="@ORIENTED='EAST'"> <xsl:value-of select="$v_bus_ul_x_"/> </xsl:when> </xsl:choose>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -