URL
https://opencores.org/ocsvn/vspi/vspi/trunk
Subversion Repositories vspi
[/] [vspi/] [trunk/] [projnav/] [xps/] [__xps/] [edw2xtl_sav_view_groups.xsl] - Rev 14
Compare with Previous | Blame | View Log
<!DOCTYPE stylesheet [
<!ENTITY ALPUPRS "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY ALPLWRS "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPR2LWS " '&ALPUPRS;' , '&ALPLWRS;' ">
<!ENTITY HEXUPPER "ABCDEFxx0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
<!ENTITY DIV2SLSH " 'div' , '/' ">
<!ENTITY NOT_ELM_CONN "not(name() = 'PARAMETER') and not(name() = 'PORT') and not(name() = 'BUSINTERFACE')">
<!ENTITY NOT_BEF_CONN "not(name() = 'DOCUMENT') and not(name() = 'DOCUMENTATION') and not(name() = 'DESCRIPTION') and not(name() = 'LICENSEINFO')">
<!ENTITY NOT_AFT_CONN "not(name() = 'MEMORYMP') and not(name() = 'PERIPHERALS') and not(name() = 'INTERRUPTINFO')">
]>
<!-- ==============================================================
This XSL file converts BLOCK xml to SAV XTeller
============================================================== -->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math exsl dyn xlink">
<xsl:output method="xml"
version="1.0"
indent="yes"
encoding="UTF-8"/>
<!--
===================================================
THE MAIN TEMPLATE FOR PORT VIEW SELECTED FOCUS
===================================================
-->
<xsl:template name="WRITE_VIEW_PORT_FOCUSED">
<xsl:choose>
<xsl:when test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:call-template name="WRITE_VIEW_EXTP_TREE_SET"/>
</xsl:when>
<xsl:when test="$G_ROOT/SAV/@MODE = 'FLAT'">
<xsl:call-template name="WRITE_VIEW_EXTP_FLAT_SET"/>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="$G_SYS_MODS/MODULE" mode="_port_view_focusing_on_selected"/>
</xsl:template>
<!--
====================================================
THE MAIN TEMPLATE FOR BIF VIEW BUS FOCUS
====================================================
-->
<xsl:template name="WRITE_VIEW_BIF_FOCUS_ON_BUSES">
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message>Focusing on busses</xsl:message></xsl:if>
<!--
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="$G_GROUPS"/>
</xsl:call-template>
-->
<xsl:apply-templates select="$G_SYS_MODS/MODULE" mode="_bif_view_focusing_on_buses"/>
<xsl:if test="$G_ROOT/SAV/@MODE = 'TREE'"> <!-- The separator -->
<xsl:element name="SET">
<xsl:attribute name="ID">MODULES WITH POTENTIAL CONNECTIONS TO FOCUSED BUS</xsl:attribute>
<xsl:attribute name="CLASS">SEPARATOR</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">Name</xsl:attribute>
<xsl:attribute name="VALUE">POTENTIAL MODULES BELOW HERE</xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">MODTYPE</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Version</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">HWVERSION</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Classification</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">IPCLASS</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE"></xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">TYPE</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Bus Standard</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">BUSSTD</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:template>
<!--
====================================================
THE MAIN TEMPLATE FOR BIF VIEW PROCESSOR FOCUS
====================================================
-->
<xsl:template name="WRITE_VIEW_BIF_FOCUS_ON_PROCS">
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="$G_GROUPS"/>
</xsl:call-template>
<xsl:if test="$G_ROOT/SAV/@MODE = 'TREE'"> <!-- The separator -->
<xsl:element name="SET">
<xsl:attribute name="ID">MODULES WITH POTENTIAL CONNECTIONS TO THIS SUBSYSTEM</xsl:attribute>
<xsl:attribute name="CLASS">SEPARATOR</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">Name</xsl:attribute>
<xsl:attribute name="VALUE">POTENTIAL MODULES BELOW HERE</xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">MODTYPE</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Version</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">HWVERSION</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Classification</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">IPCLASS</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE"></xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">TYPE</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Bus Standard</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">BUSSTD</xsl:attribute>
<xsl:attribute name="VALUE"></xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:template>
<!--
===============================================
COPY TRANSFORMS FOR FOCUSING IN BIF VIEW
===============================================
-->
<!-- Root copy template for connected -->
<xsl:template match="node() | @*" mode="_bif_view_focusing_on_connected">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="_bif_view_focusing_on_connected"/>
</xsl:copy>
</xsl:template>
<!-- Root copy template for potentials -->
<xsl:template match="node() | @*" mode="_bif_view_focusing_on_potentials">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="_bif_view_focusing_on_potentials"/>
</xsl:copy>
</xsl:template>
<xsl:template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES"> <!-- Recursive !! -->
<xsl:param name="iModules"/>
<xsl:for-each select="$iModules/BLOCK[@ID and not(BLOCK) and not(@C)]">
<xsl:variable name="m_id_" select="@ID"/>
<xsl:if test="(count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $m_id_]) > 0)">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING BUS <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_module_" select="$G_SYS_MODS/MODULE[@INSTANCE = $m_id_]"/>
<xsl:apply-templates select="$m_module_" mode="_bif_view_focusing_on_connected"/>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="$iModules/BLOCK[@ID and BLOCK]">
<xsl:choose>
<!-- An actual module that needs to be written -->
<xsl:when test="not(starts-with(@ID,'__')) and BLOCK[@C] and (not(BLOCK/BLOCK) or BLOCK/BLOCK[@CP])">
<xsl:variable name="m_id_" select="@ID"/>
<xsl:variable name="m_module_" select="$G_SYS_MODS/MODULE[@INSTANCE = $m_id_]"/>
<xsl:apply-templates select="$m_module_" mode="_bif_view_focusing_on_connected"/>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_PROCESSOR__.') or starts-with(@ID,'__GROUP_MASTER__.')">
<!--
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>MASTER GROUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
-->
<xsl:variable name="master_id_">
<xsl:choose>
<xsl:when test="starts-with(@ID,'__GROUP_MASTER__.')"><xsl:value-of select="substring-after(@ID,'__GROUP_MASTER__.')"/> </xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_PROCESSOR__.')"><xsl:value-of select="substring-after(@ID,'__GROUP_PROCESSOR__.')"/> </xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="num_focused_on_" select="count($G_ROOT/SAV/MASTER[(@INSTANCE = $master_id_)])"/>
<xsl:choose>
<xsl:when test="$num_focused_on_ > 0">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>CONNECTED MASTER GROUP <xsl:value-of select="$master_id_"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>POTENTIAL MASTER GROUP <xsl:value-of select="$master_id_"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_SHARED__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>SHARED GROUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="p_id_" select="substring-after(@ID,'__GROUP_SHARED__')"/>
<xsl:variable name="num_focused_on_" select="count($G_ROOT/SAV/MASTER[contains($p_id_,@INSTANCE)])"/>
<xsl:choose>
<xsl:when test="$num_focused_on_ > 0">
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_MEMORY__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> MEMORY GROUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_id_" select="substring-after(@ID,'__GROUP_MEMORY__')"/>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_PERIPHERAL__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PERIPHERAL GROUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_SLAVES__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>SLAVE GROUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="(starts-with(@ID,'__GROUP_IP__') and not($G_ROOT/SAV/@VIEW = 'BUSINTERFACE'))">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>IP GROUP<xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_CONNECTED_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_FLOATING__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>FLOATING GROUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> IGNORING <xsl:value-of select="@ID"/></xsl:message></xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<!--
===============================================
TRANSFORMS FOR FOCUSED POTENTIAL MODULES
===============================================
-->
<xsl:template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES"> <!-- Recursive !! -->
<xsl:param name="iModules"/>
<!-- BUS -->
<xsl:for-each select="$iModules/BLOCK[@ID and not(BLOCK) and not(@C)]">
<xsl:variable name="m_id_" select="@ID"/>
<xsl:if test="(count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $m_id_]) > 0)">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING BUS <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_module_" select="$G_SYS_MODS/MODULE[@INSTANCE = $m_id_]"/>
<xsl:apply-templates select="$m_module_" mode="_bif_view_focusing_on_connected"/>
</xsl:if>
</xsl:for-each>
<!-- GROUP -->
<xsl:for-each select="$iModules/BLOCK[@ID and BLOCK]">
<xsl:choose>
<xsl:when test="not(starts-with(@ID,'__')) and BLOCK[@C] and (not(BLOCK/BLOCK) or BLOCK/BLOCK[@CP])">
<xsl:variable name="m_id_" select="@ID"/>
<xsl:variable name="m_module_" select="$G_SYS_MODS/MODULE[@INSTANCE = $m_id_]"/>
<xsl:variable name="m_class_" select="$m_module_/@MODCLASS"/>
<xsl:choose>
<xsl:when test ="not($m_class_ = 'PROCESSOR')">
<xsl:variable name="potential_bifs_">
<xsl:for-each select="$m_module_/BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="b_std_" select="@BUSSTD"/>
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><CONNECTED/></xsl:if>
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_std_]) > 0"><POTENTIAL/></xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_potential_" select="count(exsl:node-set($potential_bifs_)/POTENTIAL)"/>
<xsl:variable name="num_connected_" select="count(exsl:node-set($potential_bifs_)/CONNECTED)"/>
<xsl:if test=" ($num_potential_ > 0)">
<xsl:apply-templates select="$m_module_" mode="_bif_view_focusing_on_potentials"/>
</xsl:if>
</xsl:when>
<xsl:when test="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $m_id_)]) > 0">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PERI PROCESSOR <xsl:value-of select="$m_id_"/></xsl:message></xsl:if>
<xsl:apply-templates select="$m_module_" mode="_bif_view_focusing_on_potentials"/>
</xsl:when>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_MEMORY__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING MEMORY <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_id_" select="substring-after(@ID,'__GROUP_MEMORY__')"/>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_PERIPHERAL__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING POTENTIAL GROUP OF PERIPHERALS <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_SLAVES__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING POTENTIAL GROUP OF SLAVES <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_FOCUSED_POTENTIAL_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> IGNORING <xsl:value-of select="@ID"/></xsl:message></xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<!--
+++++++++++++++++++++++++++++++++++++++++++++++++++++
MODULE TEMPLATES
+++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!--
===================================================
THE MODULE TEMPLATE FOR PORT VIEW SELECTED FOCUS
===================================================
-->
<xsl:template match="MODULE" mode="_port_view_focusing_on_selected">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:if test="count($G_ROOT/SAV/SELECTED[(@INSTANCE = $m_inst_)]) > 0">
<xsl:choose>
<xsl:when test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:call-template name="WRITE_VIEW_PORT_TREE_SET">
<xsl:with-param name="iModRef" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$G_ROOT/SAV/@MODE = 'FLAT'">
<xsl:call-template name="WRITE_VIEW_PORT_FLAT_SET">
<xsl:with-param name="iModRef" select="self::node()"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:template>
<!--
===================================================
THE MODULE TEMPLATE FOR BIF VIEW BUS FOCUS
===================================================
-->
<xsl:template match="MODULE" mode="_bif_view_focusing_on_buses">
<xsl:variable name="m_instance_" select="@INSTANCE"/>
<xsl:variable name="m_modclass_" select="@MODCLASS"/>
<xsl:variable name="is_focused_bus_" select="count($G_ROOT/SAV/BUS[(@INSTANCE = $m_instance_)])"/>
<xsl:variable name="bif_scope_">
<xsl:if test="$is_focused_bus_ = 0"> <!-- No need to waste time if we know its one of the focused bus -->
<xsl:for-each select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:variable name="b_bstd_" select="@BUSSTD"/>
<xsl:variable name="b_on_focused_bus_" select="count($G_ROOT/SAV/BUS[(@INSTANCE = $b_bus_)])"/>
<xsl:variable name="b_of_focused_bstd_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_bstd_])"/>
<xsl:if test="$b_on_focused_bus_ > 0"><CONNECTED/></xsl:if>
<xsl:if test="$b_of_focused_bstd_ > 0"><POTENTIAL/></xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:variable>
<xsl:variable name="on_focused_bus_" select="count(exsl:node-set($bif_scope_)/CONNECTED)"/>
<xsl:variable name="of_focused_bstd_" select="count(exsl:node-set($bif_scope_)/POTENTIAL)"/>
<xsl:if test="(($is_focused_bus_ + $on_focused_bus_ + $of_focused_bstd_) > 0)">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING MODULE ON BUS <xsl:value-of select="@INSTANCE"/></xsl:message></xsl:if>
<xsl:choose>
<!-- TREE VIEW -->
<xsl:when test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@INSTANCE"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:if test="($is_focused_bus_ > 0)">
<xsl:attribute name="RGB_BG"><xsl:value-of select="$COL_FOCUSED_MASTER"/></xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="(($is_focused_bus_ + $on_focused_bus_) > 0)">
<xsl:attribute name="CONNECTED_INDEX"><xsl:value-of select="@MHS_INDEX"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="POTENTIAL_INDEX"><xsl:value-of select="@MHS_INDEX"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<!-- CR452579 Can only modify INSTANCE name in Hierarchal view. -->
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Name" NAME="INSTANCE" VALUE="{@INSTANCE}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{@MODTYPE}" VIEWICON="{LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{@HWVERSION}"/>
<xsl:variable name="ipClassification_">
<xsl:call-template name="F_ModClass_To_IpClassification">
<xsl:with-param name="iModClass" select="@MODCLASS"/>
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Classification" NAME="IPCLASS" VALUE="{$ipClassification_}"/>
<xsl:for-each select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:variable name="b_bstd_" select="@BUSSTD"/>
<xsl:variable name="b_on_focused_bus_" select="count($G_ROOT/SAV/BUS[(@INSTANCE = $b_bus_)])"/>
<xsl:variable name="b_of_focused_bstd_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_bstd_])"/>
<xsl:variable name="bif_col_">
<xsl:choose>
<xsl:when test="(not($b_bus_ ='__NOC__') and ($b_on_focused_bus_ = 0) and ($b_of_focused_bstd_ > 0))"><xsl:value-of select="$COL_BG_OUTOF_FOCUS_CONNECTIONS"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="(($b_on_focused_bus_ + $b_of_focused_bstd_) > 0)">
<xsl:if test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:call-template name="WRITE_VIEW_BIF_TREE_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
<xsl:with-param name="iBifCol" select="$bif_col_"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$G_ROOT/SAV/@MODE = 'FLAT'">
<xsl:call-template name="WRITE_VIEW_BIF_FLAT_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
<xsl:with-param name="iBifCol" select="$bif_col_"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:when>
<!-- FLAT VIEW -->
<xsl:otherwise>
<xsl:for-each select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:variable name="b_on_focused_bus_" select="count($G_ROOT/SAV/BUS[(@INSTANCE = $b_bus_)])"/>
<xsl:if test="($b_on_focused_bus_ > 0)">
<xsl:if test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:call-template name="WRITE_VIEW_BIF_TREE_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$G_ROOT/SAV/@MODE = 'FLAT'">
<xsl:call-template name="WRITE_VIEW_BIF_FLAT_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!--
===================================================
THE MODULE TEMPLATE FOR CONNECTED MODULES
IN BIF VIEW PROC FOCUS
===================================================
-->
<xsl:template match="MODULE" mode="_bif_view_focusing_on_connected">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>EXAMINING CONNECTED MODULE <xsl:value-of select="@INSTANCE"/></xsl:message></xsl:if>
<xsl:variable name="m_instance_" select="@INSTANCE"/>
<xsl:variable name="m_class_" select="@MODCLASS"/>
<xsl:variable name="bif_scope_">
<xsl:for-each select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="b_std_" select="@BUSSTD"/>
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:variable name="b_name_" select="@NAME"/>
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')"><POTENTIAL/></xsl:when>
<xsl:when test="((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR')) and (count(key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]) > 0)">
<xsl:variable name="p2p_scope_">
<xsl:for-each select="$G_SYS_MODS">
<xsl:for-each select="key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]">
<xsl:variable name="b_instance_" select="../../@INSTANCE"/>
<xsl:variable name="b_modclass_" select="../../@MODCLASS"/>
<xsl:variable name="b_bifname_" select="@NAME"/>
<xsl:if test="not(($b_bifname_ = $b_name_) and ($b_instance_ = $m_instance_))">
<xsl:variable name="num_mast_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_])"/>
<xsl:variable name="num_peri_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $b_instance_)])"/>
<xsl:if test="(($num_mast_connections_ + $num_peri_connections_) > 0)"><INSCOPE/></xsl:if>
<xsl:if test="(($num_mast_connections_ + $num_peri_connections_) = 0) and not($m_class_ = 'MEMORY') and not($m_class_ = 'MEMORY_CNTLR')"><UNFOCUSED/></xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_p2p_inscope_" select="count(exsl:node-set($p2p_scope_)/INSCOPE)"/>
<xsl:variable name="num_p2p_unfocused_" select="count(exsl:node-set($p2p_scope_)/UNFOCUSED)"/>
<xsl:if test="$num_p2p_inscope_ > 0"><CONNECTED/></xsl:if>
<xsl:if test="$num_p2p_unfocused_ > 0"><UNFOCUSED/></xsl:if>
</xsl:when>
<!--
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> P2P <xsl:value-of select="$b_instance_"/> == <xsl:value-of select="$num_peri_connections_"/> UNFOCUSED</xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> P2P <xsl:value-of select="$m_instance_"/>.<xsl:value-of select="$b_name_"/> = <xsl:value-of select="$num_p2p_unfocused_"/> UNFOCUSED</xsl:message></xsl:if>
-->
<xsl:when test="((@TYPE = 'SLAVE') and not(MASTERS/MASTER)) or (@TYPE = 'MASTER')">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><CONNECTED/></xsl:if>
<xsl:if test="($b_bus_ = '__NOC__') and count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_std_]) > 0"><POTENTIAL/></xsl:if>
</xsl:when>
<xsl:when test="(MASTERS/MASTER)">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><POTENTIAL/></xsl:if>
<xsl:for-each select="MASTERS/MASTER">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:choose>
<xsl:when test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:when test="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:otherwise><UNFOCUSED/></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:if test="$m_class_ = 'BUS'">
<xsl:variable name="num_bifs_on_bus_" select="count(key('G_MAP_ALL_BIFS_BY_BUS',$m_instance_))"/>
<!-- <xsl:if test="$G_DEBUG='TRUE'"><xsl:message>BBBBBB <xsl:value-of select="$m_instance_"/> has <xsl:value-of select="$num_bifs_on_bus_"/> bifs </xsl:message></xsl:if> -->
<xsl:for-each select="key('G_MAP_ALL_BIFS_BY_BUS',$m_instance_)">
<xsl:variable name="b_name_" select="@NAME"/>
<xsl:variable name="b_type_" select="@TYPE"/>
<xsl:variable name="b_inst_" select="../../@INSTANCE"/>
<xsl:variable name="b_icls_" select="../../@MODCLASS"/>
<xsl:variable name="is_mast_in_focus_" select="count($G_ROOT/SAV/MASTER[(@INSTANCE = $b_inst_)])"/>
<xsl:variable name="is_peri_in_focus_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[@NAME = $b_inst_])"/>
<xsl:if test="(($is_peri_in_focus_ + $is_mast_in_focus_) = 0)"><UNFOCUSED/></xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:variable>
<xsl:variable name="mod_id_" select="@INSTANCE"/>
<xsl:variable name="potential_masts_id_" select="concat('__GROUP_MASTER__.',@INSTANCE)"/>
<xsl:variable name="is_master_" select="count($G_GROUPS/BLOCK[(@ID = $potential_masts_id_)])"/>
<xsl:variable name="is_focused_on_" select="count($G_ROOT/SAV/MASTER[(@INSTANCE = $mod_id_)])"/>
<xsl:variable name="is_peripheral_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[@NAME = $mod_id_])"/>
<xsl:variable name="num_potential_bifs_" select="count(exsl:node-set($bif_scope_)/POTENTIAL)"/>
<xsl:variable name="num_connected_bifs_" select="count(exsl:node-set($bif_scope_)/CONNECTED)"/>
<xsl:variable name="num_unfocused_bifs_" select="count(exsl:node-set($bif_scope_)/UNFOCUSED)"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> CONNECTED BIFS <xsl:value-of select="$num_connected_bifs_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> POTENTIAL BIFS <xsl:value-of select="$num_potential_bifs_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> IS PERIPHERAL <xsl:value-of select="$is_peripheral_"/></xsl:message></xsl:if>
<xsl:if test="((@MODCLASS = 'BUS') or ($num_connected_bifs_ + $is_focused_on_ + $num_potential_bifs_ + $is_peripheral_) > 0)">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PLACING MODULE <xsl:value-of select="@INSTANCE"/></xsl:message></xsl:if>
<xsl:choose>
<xsl:when test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@INSTANCE"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:choose>
<xsl:when test="((@MODCLASS = 'BUS') or (($num_connected_bifs_ + $is_peripheral_ + $is_focused_on_) > 0))">
<xsl:attribute name="CONNECTED_INDEX"><xsl:value-of select="@MHS_INDEX"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="POTENTIAL_INDEX"><xsl:value-of select="@MHS_INDEX"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $mod_id_)]) > 0">
<xsl:attribute name="RGB_BG"><xsl:value-of select="$COL_FOCUSED_MASTER"/></xsl:attribute>
</xsl:when>
<xsl:when test="$num_unfocused_bifs_ > 0">
<xsl:attribute name="RGB_FG"><xsl:value-of select="$COL_BG_OUTOF_FOCUS_CONNECTIONS"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<!--
CR452579
Can only modify INSTANCE name in Hierarchal view.
-->
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Name" NAME="INSTANCE" VALUE="{@INSTANCE}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{@MODTYPE}" VIEWICON="{LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{@HWVERSION}"/>
<xsl:variable name="ipClassification_">
<xsl:call-template name="F_ModClass_To_IpClassification">
<xsl:with-param name="iModClass" select="@MODCLASS"/>
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Classification" NAME="IPCLASS" VALUE="{$ipClassification_}"/>
<xsl:apply-templates select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]" mode="_bif_view_focusing_on_connected"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]" mode="_bif_view_focusing_on_connected"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!--
===================================================
THE MODULE TEMPLATE FOR POTENTIAL MODULES
IN BIF VIEW PROC FOCUS
===================================================
-->
<xsl:template match="MODULE" mode="_bif_view_focusing_on_potentials">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>EXAMINING POTENTIAL MODULE <xsl:value-of select="@INSTANCE"/></xsl:message></xsl:if>
<xsl:variable name="m_instance_" select="@INSTANCE"/>
<xsl:variable name="m_modclass_" select="@MODCLASS"/>
<xsl:variable name="bif_scope_">
<xsl:for-each select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="b_std_" select="@BUSSTD"/>
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')"><POTENTIAL/></xsl:when>
<xsl:when test="((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR')) and (count(key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]) > 0)">
<xsl:variable name="p2p_scope_">
<xsl:for-each select="$G_SYS_MODS"> <!-- To set the right scope for the keys -->
<xsl:for-each select="key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]">
<xsl:variable name="b_instance_" select="../../@INSTANCE"/>
<xsl:variable name="b_modclass_" select="../../@MODCLASS"/>
<xsl:variable name="num_mast_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_])"/>
<xsl:variable name="num_peri_connections_">
<xsl:choose>
<xsl:when test="((($m_modclass_ = 'PROCESSOR') and ($b_modclass_ = 'PROCESSOR')) or not($b_modclass_ = 'PROCESSOR'))">
<xsl:value-of select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $b_instance_)])"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="(($num_mast_connections_ + $num_peri_connections_) > 0)"><INSCOPE/></xsl:if>
<xsl:if test="(($num_mast_connections_ + $num_peri_connections_) = 0) and not($m_modclass_ = 'MEMORY') and not($m_modclass_ = 'MEMORY_CNTLR')"><UNFOCUSED/></xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_p2p_inscope_" select="count(exsl:node-set($p2p_scope_)/INSCOPE)"/>
<xsl:variable name="num_p2p_unfocused_" select="count(exsl:node-set($p2p_scope_)/UNFOCUSED)"/>
<xsl:if test="$num_p2p_inscope_ > 0"><CONNECTED/></xsl:if>
<xsl:if test="$num_p2p_unfocused_ > 0"><UNFOCUSED/></xsl:if>
</xsl:when>
<xsl:when test="(@TYPE = 'SLAVE') and not(MASTERS/MASTER)">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><CONNECTED/></xsl:if>
<xsl:if test="($b_bus_ = '__NOC__') and count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_std_]) > 0"><POTENTIAL/></xsl:if>
</xsl:when>
<xsl:when test="(MASTERS/MASTER)">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><POTENTIAL/></xsl:if>
<xsl:for-each select="MASTERS/MASTER">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:choose>
<xsl:when test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:when test="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:otherwise><UNFOCUSED/></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:if test="$m_modclass_ = 'BUS'">
<xsl:variable name="num_bifs_on_bus_" select="count(key('G_MAP_ALL_BIFS_BY_BUS',$m_instance_))"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>BUS <xsl:value-of select="$m_instance_"/> has <xsl:value-of select="$num_bifs_on_bus_"/> bifs </xsl:message></xsl:if>
<xsl:for-each select="key('G_MAP_ALL_BIFS_BY_BUS',$m_instance_)">
<xsl:variable name="b_name_" select="@NAME"/>
<xsl:variable name="b_type_" select="@TYPE"/>
<xsl:variable name="b_inst_" select="../../@INSTANCE"/>
<xsl:variable name="b_icls_" select="../../@MODCLASS"/>
<xsl:variable name="is_mast_in_focus_" select="count($G_ROOT/SAV/MASTER[(@INSTANCE = $b_inst_)])"/>
<xsl:variable name="is_peri_in_focus_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[@NAME = $b_inst_])"/>
<xsl:if test="(($is_peri_in_focus_ + $is_mast_in_focus_) = 0)"><UNFOCUSED/></xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:variable>
<xsl:variable name="mod_id_" select="@INSTANCE"/>
<xsl:variable name="potential_masts_id_" select="concat('__GROUP_MASTER__.',@INSTANCE)"/>
<xsl:variable name="is_master_" select="count($G_GROUPS/BLOCK[(@ID = $potential_masts_id_)])"/>
<xsl:variable name="is_peripheral_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[@NAME = $mod_id_])"/>
<xsl:variable name="num_potential_bifs_" select="count(exsl:node-set($bif_scope_)/POTENTIAL)"/>
<xsl:variable name="num_connected_bifs_" select="count(exsl:node-set($bif_scope_)/CONNECTED)"/>
<xsl:variable name="num_unfocused_bifs_" select="count(exsl:node-set($bif_scope_)/UNFOCUSED)"/>
<!--
-->
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> <xsl:value-of select="$num_connected_bifs_"/> connected BIFS</xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> <xsl:value-of select="$num_potential_bifs_"/> potential bifs </xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> <xsl:value-of select="$num_unfocused_bifs_"/> unfocused bifs </xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> <xsl:value-of select="$is_peripheral_"/> is a peripheral</xsl:message></xsl:if>
<xsl:if test="(($num_connected_bifs_ + $num_potential_bifs_ + $is_peripheral_) > 0)">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING POTENTIAL MODULE <xsl:value-of select="@INSTANCE"/></xsl:message></xsl:if>
<xsl:choose>
<xsl:when test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@INSTANCE"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:choose>
<xsl:when test="(($is_peripheral_ > 0) or ($num_connected_bifs_ > 0))">
<xsl:attribute name="CONNECTED_INDEX"><xsl:value-of select="@MHS_INDEX"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="POTENTIAL_INDEX"><xsl:value-of select="@MHS_INDEX"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $mod_id_)]) > 0">
<xsl:attribute name="RGB_BG"><xsl:value-of select="$COL_FOCUSED_MASTER"/></xsl:attribute>
</xsl:when>
<xsl:when test="$num_unfocused_bifs_ > 0">
<xsl:attribute name="RGB_FG"><xsl:value-of select="$COL_BG_OUTOF_FOCUS_CONNECTIONS"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<!-- CR452579 Can only modify INSTANCE name in Hierarchal view. -->
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Name" NAME="INSTANCE" VALUE="{@INSTANCE}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{@MODTYPE}" VIEWICON="{LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{@HWVERSION}"/>
<xsl:variable name="ipClassification_">
<xsl:call-template name="F_ModClass_To_IpClassification">
<xsl:with-param name="iModClass" select="@MODCLASS"/>
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Classification" NAME="IPCLASS" VALUE="{$ipClassification_}"/>
<xsl:apply-templates select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]" mode="_bif_view_focusing_on_potentials"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]" mode="_bif_view_focusing_on_potentials"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!--
+++++++++++++++++++++++++++++++++++++++++++++++++++++
BUS INTERFACE TEMPLATES
+++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!--
===================================================
THE BIF TEMPLATE FOR CONNECTED MODULES
IN BIF VIEW PROC FOCUS
===================================================
-->
<xsl:template match="BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]" mode="_bif_view_focusing_on_connected">
<xsl:variable name="m_instance_" select="../../@INSTANCE"/>
<xsl:variable name="b_std_" select="@BUSSTD"/>
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:variable name="b_name_" select="@NAME"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> EXAMINING CONNECTED INTERFACE <xsl:value-of select="$m_instance_"/>.<xsl:value-of select="$b_name_"/></xsl:message></xsl:if>
<xsl:variable name="bif_scope_">
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')"><POTENTIAL/></xsl:when>
<xsl:when test="((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR')) and (count(key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]) > 0)">
<xsl:variable name="p2p_scope_">
<xsl:for-each select="$G_SYS_MODS"> <!-- to put in right scope for key below -->
<xsl:for-each select="key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]">
<xsl:variable name="p2p_bifname_" select="@NAME"/>
<xsl:variable name="p2p_instance_" select="../../@INSTANCE"/>
<xsl:variable name="num_proc_connections_" select="count(key('G_MAP_PROCESSORS',$p2p_instance_))"/>
<xsl:variable name="num_mast_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_])"/>
<xsl:variable name="num_peri_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $p2p_instance_)])"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> <xsl:value-of select="$p2p_instance_"/>.<xsl:value-of select="$p2p_bifname_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PROC CONNECTIONS <xsl:value-of select="$num_proc_connections_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> MAST CONNECTIONS <xsl:value-of select="$num_mast_connections_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PERI CONNECTIONS <xsl:value-of select="$num_peri_connections_"/></xsl:message></xsl:if>
<xsl:if test="($num_mast_connections_ = 0) and ($num_proc_connections_ > 0)"><OUTSCOPE/></xsl:if>
<xsl:if test="($num_mast_connections_ > 0) or ($num_peri_connections_ > 0)"><INSCOPE/></xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_p2p_inscope_" select="count(exsl:node-set($p2p_scope_)/INSCOPE)"/>
<xsl:variable name="num_p2p_outscope_" select="count(exsl:node-set($p2p_scope_)/OUTSCOPE)"/>
<xsl:if test="(($num_p2p_inscope_ > 0) and ($num_p2p_outscope_ = 0))"><CONNECTED/></xsl:if>
</xsl:when>
<xsl:when test="(@TYPE = 'MASTER')">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><CONNECTED/></xsl:if>
</xsl:when>
<xsl:when test="(@TYPE = 'SLAVE') and not(MASTERS/MASTER)">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><CONNECTED/></xsl:if>
<xsl:if test="($b_bus_ = '__NOC__') and count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_std_]) > 0"><POTENTIAL/></xsl:if>
</xsl:when>
<xsl:when test="(MASTERS/MASTER)">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><POTENTIAL/></xsl:if>
<xsl:for-each select="MASTERS/MASTER">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:choose>
<xsl:when test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:when test="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:otherwise><UNFOCUSED/></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="num_scope_unfocuseds_" select="count(exsl:node-set($bif_scope_)/UNFOCUSED)"/>
<xsl:variable name="num_scope_potentials_" select="count(exsl:node-set($bif_scope_)/POTENTIAL)"/>
<xsl:variable name="num_scope_connecteds_" select="count(exsl:node-set($bif_scope_)/CONNECTED)"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> CONNECTED SCOPE <xsl:value-of select="$num_scope_connecteds_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> POTENTIAL SCOPE <xsl:value-of select="$num_scope_potentials_"/></xsl:message></xsl:if>
<xsl:variable name="include_bif_">
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')">TRUE</xsl:when>
<xsl:when test="(((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR')) and ($num_scope_connecteds_ > 0))">TRUE</xsl:when>
<xsl:when test="((@TYPE = 'MASTER') or (@TYPE = 'SLAVE') or (@TYPE = 'MASTER_SLAVE')) and (($num_scope_potentials_ > 0) or ($num_scope_connecteds_ > 0))">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="($include_bif_ = 'TRUE')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PLACING CONNECTED INTERFACE <xsl:value-of select="$m_instance_"/>.<xsl:value-of select="$b_name_"/></xsl:message></xsl:if>
<xsl:variable name="bif_col_">
<xsl:choose>
<xsl:when test="($num_scope_unfocuseds_ > 0)"><xsl:value-of select="$COL_BG_OUTOF_FOCUS_CONNECTIONS"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:call-template name="WRITE_VIEW_BIF_TREE_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
<xsl:with-param name="iBifCol" select="$bif_col_"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$G_ROOT/SAV/@MODE = 'FLAT'">
<xsl:call-template name="WRITE_VIEW_BIF_FLAT_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
<xsl:with-param name="iBifCol" select="$bif_col_"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
<!--
===================================================
THE BIF TEMPLATE FOR POTENTIAL MODULES
IN BIF VIEW PROC FOCUS
===================================================
-->
<xsl:template match="BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]" mode="_bif_view_focusing_on_potentials">
<xsl:variable name="m_instance_" select="../../@INSTANCE"/>
<xsl:variable name="b_name_" select="@NAME"/>
<xsl:variable name="b_std_" select="@BUSSTD"/>
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> EXAMINING POTENTIAL INTERFACE <xsl:value-of select="$m_instance_"/>.<xsl:value-of select="$b_name_"/></xsl:message></xsl:if>
<xsl:variable name="bif_scope_">
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')"><POTENTIAL/></xsl:when>
<xsl:when test="((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR')) and (count(key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]) > 0)">
<xsl:variable name="p2p_scope_">
<xsl:for-each select="$G_SYS_MODS">
<xsl:for-each select="key('G_MAP_P2P_BIFS',$b_bus_)[not(@BUSNAME = '__NOC__')]">
<xsl:variable name="b_instance_" select="../../@INSTANCE"/>
<xsl:variable name="num_proc_connections_" select="count(key('G_MAP_PROCESSORS',$b_instance_))"/>
<xsl:variable name="num_mast_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_])"/>
<xsl:variable name="num_peri_connections_" select="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $b_instance_)])"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PROC CONNECTIONS <xsl:value-of select="$num_proc_connections_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> MAST CONNECTIONS <xsl:value-of select="$num_mast_connections_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PERI CONNECTIONS <xsl:value-of select="$num_peri_connections_"/></xsl:message></xsl:if>
<xsl:if test="($num_mast_connections_ = 0) and ($num_proc_connections_ > 0)"><OUTSCOPE/></xsl:if>
<xsl:if test="($num_mast_connections_ > 0) or ($num_peri_connections_ > 0)"><INSCOPE/></xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_p2p_inscope_" select="count(exsl:node-set($p2p_scope_)/INSCOPE)"/>
<xsl:variable name="num_p2p_outscope_" select="count(exsl:node-set($p2p_scope_)/OUTSCOPE)"/>
<xsl:if test="(($num_p2p_inscope_ > 0) and ($num_p2p_outscope_ = 0))"><CONNECTED/></xsl:if>
</xsl:when>
<xsl:when test="(((@TYPE = 'SLAVE') and not(MASTERS/MASTER)) or (@TYPE = 'MASTER'))">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><CONNECTED/></xsl:if>
<xsl:if test="($b_bus_ = '__NOC__') and count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@BUSSTD = $b_std_]) > 0"><POTENTIAL/></xsl:if>
</xsl:when>
<xsl:when test="(MASTERS/MASTER)">
<xsl:if test="count(exsl:node-set($G_FOCUSED_SCOPE)/BUS[@NAME = $b_bus_]) > 0"><POTENTIAL/></xsl:if>
<xsl:for-each select="MASTERS/MASTER">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:choose>
<xsl:when test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:when test="count(exsl:node-set($G_FOCUSED_SCOPE)/PERIPHERAL[(@NAME = $m_inst_)]) > 0"><CONNECTED/></xsl:when>
<xsl:otherwise><UNFOCUSED/></xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="num_scope_potentials_" select="count(exsl:node-set($bif_scope_)/POTENTIAL)"/>
<xsl:variable name="num_scope_connecteds_" select="count(exsl:node-set($bif_scope_)/CONNECTED)"/>
<xsl:variable name="num_scope_unfocuseds_" select="count(exsl:node-set($bif_scope_)/UNFOCUSED)"/>
<xsl:variable name="include_bif_">
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')">TRUE</xsl:when>
<xsl:when test="(((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR')) and ($num_scope_connecteds_ > 0))">TRUE</xsl:when>
<xsl:when test="((@TYPE = 'MASTER') or (@TYPE = 'SLAVE') or (@TYPE = 'MASTER_SLAVE')) and (($num_scope_potentials_ > 0) or ($num_scope_connecteds_ > 0))">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="bif_col_">
<xsl:choose>
<xsl:when test="($num_scope_unfocuseds_ > 0)"><xsl:value-of select="$COL_BG_OUTOF_FOCUS_CONNECTIONS"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="($include_bif_ = 'TRUE')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> PLACING POTENTIAL INTERFACE <xsl:value-of select="$m_instance_"/>.<xsl:value-of select="$b_name_"/></xsl:message></xsl:if>
<xsl:if test="$G_ROOT/SAV/@MODE = 'TREE'">
<xsl:call-template name="WRITE_VIEW_BIF_TREE_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
<xsl:with-param name="iBifCol" select="$bif_col_"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$G_ROOT/SAV/@MODE = 'FLAT'">
<xsl:call-template name="WRITE_VIEW_BIF_FLAT_SET">
<xsl:with-param name="iModRef" select="../.."/>
<xsl:with-param name="iBifRef" select="self::node()"/>
<xsl:with-param name="iBifCol" select="$bif_col_"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
<!-- THINGS TO IGNORE -->
<!-- Ignore all non valid bus interfaces -->
<xsl:template match="MODULE/DESCRIPTION" mode="_bif_view_focusing_on_potentials">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/PARAMETERS" mode="_bif_view_focusing_on_potentials">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/DOCUMENTATION" mode="_bif_view_focusing_on_potentials">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/LICENSEINFO" mode="_bif_view_focusing_on_potentials">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<!-- Ignore all non valid bus interfaces -->
<xsl:template match="BUSINTERFACES/BUSINTERFACE[(@IS_VALID = 'FALSE')]" mode="_bif_view_focusing_on_potentials">
</xsl:template>
<xsl:template match="MODULE/DESCRIPTION" mode="_bif_view_focusing_on_connected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/PARAMETERS" mode="_bif_view_focusing_on_connected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/DOCUMENTATION" mode="_bif_view_focusing_on_connected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/LICENSEINFO" mode="_bif_view_focusing_on_connected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="BUSINTERFACES/BUSINTERFACE[(@IS_VALID = 'FALSE')]" mode="_bif_view_focusing_on_connected">
</xsl:template>
<!-- Ignore all non valid bus interfaces -->
<xsl:template match="SAV" mode="_port_view_focusing_on_selected">
</xsl:template>
<xsl:template match="MODULE/DESCRIPTION" mode="_port_view_focusing_on_selected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/PARAMETERS" mode="_port_view_focusing_on_selected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/DOCUMENTATION" mode="_port_view_focusing_on_selected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<xsl:template match="MODULE/LICENSEINFO" mode="_port_view_focusing_on_selected">
<!-- <xsl:message>Ignoring invalid bus interface <xsl:value-of select="@NAME"/></xsl:message> -->
</xsl:template>
<!-- Ignore all non valid bus interfaces -->
<xsl:template match="BUSINTERFACES/BUSINTERFACE[(@IS_VALID = 'FALSE')]" mode="_port_view_focusing_on_selected">
</xsl:template>
<!--
Only write bus interfaces that are valid for non point to point interfaces
that have busstds the processor can see
-->
<!--
===============================================
GROUP VIEW TRANSFORMS
===============================================
-->
<xsl:template name="WRITE_VIEW_GROUPS">
<xsl:param name="iModules"/>
<xsl:if test="$G_DEBUG='TRUE'">
<!--
<xsl:message>BLKD AREA = <xsl:value-of select="$blkd_full_w_"/> X <xsl:value-of select="$blkd_full_h_"/></xsl:message>
<xsl:message>NUMOF BUSSTD COLORS = <xsl:value-of select="$COL_BUSSTDS_NUMOF"/></xsl:message>
<xsl:message>NUMOF INTERFACE TYPES= <xsl:value-of select="$G_IFTYPES_NUMOF"/></xsl:message>
<xsl:message>NUMOF DIRS = <xsl:value-of select="$G_BLKD_COMPASS_DIRS_NUMOF"/></xsl:message>
<xsl:apply-templates select="$G_BLOCKS/node()" mode="_place_module_blocks_"/>
-->
</xsl:if>
<xsl:element name="SET">
<xsl:attribute name="CLASS">PROJECT</xsl:attribute>
<xsl:attribute name="VIEW_ID">BUSINTERFACE</xsl:attribute>
<xsl:attribute name="DISPLAYMODE">TREE</xsl:attribute>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="$G_BLOCKS"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="WRITE_VIEW_BIF_GROUPS">
<xsl:param name="iModules"/>
<xsl:for-each select="$iModules/BLOCK[@ID and not(BLOCK) and not(@C)]">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING BUS <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_id_" select="@ID"/>
<xsl:variable name="m_module_" select="$G_SYS_MODS/MODULE[@INSTANCE = $m_id_]"/>
<xsl:variable name="m_instance_" select="$m_module_/@INSTANCE"/>
<xsl:variable name="m_version_" select="$m_module_/@HWVERSION"/>
<xsl:variable name="m_type_" select="$m_module_/@MODTYPE"/>
<xsl:variable name="m_class_" select="$m_module_/@MODCLASS"/>
<xsl:variable name="m_busstd_" select="$m_module_/@BUSSTD"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@ID"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE">TEXTBOX</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_instance_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">MODTYPE</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_type_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Version</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">HWVERSION</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_version_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Classification</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">IPCLASS</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_busstd_"/> BUS</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="$iModules/BLOCK[@ID and BLOCK]">
<xsl:choose>
<xsl:when test="not(starts-with(@ID,'__')) and BLOCK[@C] and (not(BLOCK/BLOCK) or BLOCK/BLOCK[@CP])">
<!--
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING MODULE <xsl:value-of select="@ID"/></xsl:message></xsl:if>
-->
<xsl:variable name="m_id_" select="@ID"/>
<xsl:variable name="m_module_" select="$G_SYS_MODS/MODULE[@INSTANCE = $m_id_]"/>
<xsl:variable name="m_instance_" select="$m_module_/@INSTANCE"/>
<xsl:variable name="m_type_" select="$m_module_/@MODTYPE"/>
<xsl:variable name="m_class_" select="$m_module_/@MODCLASS"/>
<xsl:variable name="m_version_" select="$m_module_/@HWVERSION"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@ID"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE">TEXTBOX</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_instance_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">MODTYPE</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_type_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Version</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">HWVERSION</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_version_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">IP Classification</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">IPCLASS</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$m_class_"/></xsl:attribute>
</xsl:element>
<xsl:for-each select="BLOCK[@C and @ID]">
<xsl:variable name="b_bus_" select="@C"/>
<xsl:variable name="b_name_" select="@ID"/>
<xsl:variable name="b_if_" select="$m_module_/BUSINTERFACES/BUSINTERFACE[(@NAME = $b_name_)]"/>
<xsl:variable name="b_type_" select="$b_if_/@TYPE"/>
<xsl:variable name="b_busstd_" select="$b_if_/@BUSSTD"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING BIF <xsl:value-of select="$b_name_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> TYPE <xsl:value-of select="$b_type_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> BUS <xsl:value-of select="$b_bus_"/></xsl:message></xsl:if>
<xsl:variable name="b_busNameViewType_">
<xsl:choose>
<xsl:when test="$b_type_ = 'INITIATOR'">TEXTBOX</xsl:when>
<xsl:when test="starts-with(@ID,'S_AXI')">BUTTON</xsl:when>
<xsl:when test="starts-with(@ID,'S0_AXI')">BUTTON</xsl:when>
<xsl:when test="starts-with(@ID,'S1_AXI')">BUTTON</xsl:when>
<xsl:otherwise>DROPDOWN</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="b_busName_">
<xsl:choose>
<xsl:when test="$b_if_/MASTERS/MASTER">
<xsl:variable name="mastersList_"><xsl:for-each select="$b_if_/MASTERS/MASTER"><xsl:if test="position() > 1"> & </xsl:if><xsl:value-of select="concat(@INSTANCE,'.',@BUSINTERFACE)"/></xsl:for-each></xsl:variable>
<xsl:variable name="mastersConn_" select="concat($b_bus_,':',$mastersList_)"/>
<xsl:value-of select="$mastersConn_"/>
</xsl:when>
<xsl:otherwise><xsl:value-of select="$b_bus_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> VIEWTYPE <xsl:value-of select="$b_busNameViewType_"/></xsl:message></xsl:if>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message> BUSNAME <xsl:value-of select="$b_busName_"/></xsl:message></xsl:if>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@ID"/></xsl:attribute>
<xsl:attribute name="CLASS">BUSINTERFACE</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">NAME</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">NAME</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$b_name_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE"><xsl:value-of select="$b_busNameViewType_"/></xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$b_busName_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Type</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">TYPE</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$b_type_"/></xsl:attribute>
</xsl:element>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">Bus Standard</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">BUSSTD</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$b_busstd_"/></xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_PROCESSOR__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PROCESSOR GROUP<xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="p_id_" select="substring-after(@ID,'__GROUP_PROCESSOR__')"/>
<xsl:variable name="m_id_" select="concat('PROCESSOR',$p_id_)"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="$m_id_"/></xsl:attribute>
<xsl:attribute name="CLASS">GROUP</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">NAME</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE">Subsystem of <xsl:value-of select="$p_id_"/></xsl:attribute>
</xsl:element>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_MASTER__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>MASTER GROUP<xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="p_id_" select="substring-after(@ID,'__GROUP_MASTER__')"/>
<xsl:variable name="m_id_" select="concat('MASTER',$p_id_)"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="$m_id_"/></xsl:attribute>
<xsl:attribute name="CLASS">GROUP</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">NAME</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE">Subsystem of <xsl:value-of select="$p_id_"/></xsl:attribute>
</xsl:element>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_SHARED__')">
<xsl:variable name="s_id_" select="substring-after(@ID,'__GROUP_SHARED__')"/>
<xsl:variable name="m_id_" select="concat('SHARED',$s_id_)"/>
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING SHARED PERIPHERALS <xsl:value-of select="$s_id_"/></xsl:message></xsl:if>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="$m_id_"/></xsl:attribute>
<xsl:attribute name="CLASS">GROUP</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">NAME</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE">Peripherals shared by <xsl:value-of select="$s_id_"/></xsl:attribute>
</xsl:element>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_MEMORY__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING MEMORY <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_id_" select="substring-after(@ID,'__GROUP_MEMORY__')"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="$m_id_"/></xsl:attribute>
<xsl:attribute name="CLASS">GROUP</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">NAME</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE">(Memory) <xsl:value-of select="$m_id_"/></xsl:attribute>
</xsl:element>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_PERIPHERAL__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING PERIPHERAL <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(@ID,'__GROUP_SLAVES__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING SLAVES <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:when>
<!--
<xsl:when test="starts-with(@ID,'__GROUP_SLAVES__')">
<xsl:if test="$G_DEBUG='TRUE'"><xsl:message>PLACING SLAVES GOUP <xsl:value-of select="@ID"/></xsl:message></xsl:if>
<xsl:variable name="m_id_" select="substring-after(@ID,'__GROUP_SLAVES__')"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="$m_id_"/></xsl:attribute>
<xsl:attribute name="CLASS">GROUP</xsl:attribute>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWDISP">NAME</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE">(Slaves of) <xsl:value-of select="$m_id_"/></xsl:attribute>
</xsl:element>
<xsl:call-template name="F_Write_XTeller_MODULES">
<xsl:with-param name="iModules" select="self::node()"/>
</xsl:call-template>
</xsl:element>
</xsl:when>
-->
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>