Component Modes - 2023.1 English

Vivado Design Suite User Guide: System-Level Design Entry (UG895)

Document ID
UG895
Release Date
2023-05-16
Version
2023.1 English

The <component_modes> section describes the different modes in which a component can be used. The <component_modes> section can include one or more <component_mode> tags nested within. Each component mode includes details like associated interfaces, preferred IP, and enabling dependencies.

<component name="phy_onboard" display_name="Onboard PHY" type="chip"
sub_type="ethernet" major_group="Ethernet Configurations" 
part_name="M88E1111_BAB1C000" vendor="Marvell" spec_url="www.marvell.com">
  <description>PHY on the board</description>
  <parameters>
    <parameter name="devicetree_vendor" value="marvell"/>
  </parameters>
  <component_modes>
    <component_mode name="mii" display_name="MII mode">
      <description>To enable this mode jumpers need to be {J29_P1_P2 true} 
      {J30_P1_P2 true} {J64 false}</description>
      <interfaces>
        <interface name="mii" order="0"/>
        <interface name="mdio_io" order="1" optional="true"/>
        <interface name="phy_reset_out" order="2" optional="true"/>
      </interfaces>
      <preferred_ips>
        <preferred_ip vendor="xilinx.com" library="ip" name="axi_ethernet"
        order="0"/>
      </preferred_ips>
    </component_mode>
    <component_mode name="gmii" display_name="GMII mode">
      <description>To enable this mode jumpers need to be {J29_P1_P2 true} 
      {J30_P1_P2 true} {J64 false}</description>
      <interfaces>
        <interface name="gmii"/>
        <interface name="mdio_io"/>
        <interface name="phy_reset_out" optional="true"/>
      </interfaces>
      <preferred_ips>
        <preferred_ip vendor="xilinx.com" library="ip" name="axi_ethernet"
        order="0"/>
      </preferred_ips>
    </component_mode>
</component>

When one mode of the component is selected in the Board tab, all the interfaces listed in this mode are automatically added in IP integrator. Order for interface in a mode defines the order in which the interfaces should be connected. If no order is mentioned, interfaces will be added in IP integrator in the order mentioned in list.

For <interfaces> listed under a <component_mode>, the 'optional=' attribute helps in the filtering of IP when you connect the interface in the Board tab of Vivado IP integrator. The default value is "optional=false", meaning that the IP must have this interface listed for the mode being used. If “optional=true" the interface is not required for the specified mode. When “optional=true", any IP which has the required interfaces, but not the optional interfaces, will also be listed for use with the component mode being used.

<interfaces>
  <interface name="mii" order="0"/>
  <interface name="mdio_io" order="1" optional="true"/>
  <interface name="phy_reset_out" order="2" optional="true"/>
</interfaces>
Tip: Preferred IPs mentioned in <component_modes> have a higher priority than the ones mentioned in individual <interfaces>.

The <enablement_dependencies> list the jumper settings required to enable a specific <component_mode>. The information regarding the jumper settings to use on the board, based on selected component modes, is available in the Vivado Design Suite.

<enablement_dependencies>
  <jumpers>
    <jumper name="J29_P1_P2">true</jumper>
    <jumper name="J30_P1_P2">true</jumper>
    <jumper name="J64">false</jumper>
    </jumpers>
</enablement_dependencies>