<component_modes> セクションには、コンポーネントが使用されるモードを記述します。<component_modes> セクションには、1 つまたは複数の <component_mode> タグを入れ子にできます。各コンポーネント モードには、関連付けられているインターフェイス、IP、依存関係などの詳細が含められます。
<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>
コンポーネントのモードを [Board] タブで選択すると、そのモードにリストされているインターフェイスがすべて自動的に IP インテグレーターに追加されます。モード内のインターフェイスの order= では、インターフェイスの接続順序を定義します。順序が指定されていない場合は、インターフェイスはリストされている順序で IP インテグレーターに追加されます。
<component_mode> の下にリストされる <interface> に optional= 属性を使用すると、Vivado IP インテグレーターの [Board] タブでインターフェイスを接続するときに、IP がフィルタリングしやすくなります。デフォルトの optional=false の場合、使用されるモードに対してこのインターフェイスが必ずリストされます。optional=true にすると、指定したモードではそのインターフェイスが必須ではなくなります。また、必要なインターフェイスを含んでいてもオプションのインターフェイスは含まない IP もそのコンポーネント モードで使用できるようにリストされます。
<interfaces>
<interface name="mii" order="0"/>
<interface name="mdio_io" order="1" optional="true"/>
<interface name="phy_reset_out" order="2" optional="true"/>
</interfaces>
<enablement_dependencies> には、特定の <component_mode> をイネーブルにするのに必要なジャンパー設定がリストされます。選択したコンポーネント モードに基づいたボードで使用するジャンパー設定に関する情報は、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>