次のドキュメントの表 13-3 (13-5 ページ) で説明されている MDIO コアのレジスターマップにエラーが生じます。
表には、MDIO_DEVAD、MDIO_PRTAD、MDIO_REGADのアドレスオフセットが0x20、0x21はMDIO_ACCESSに使用することが記載されています。しかし、これらはドキュメント内で入れ替わっているため、実際には0x21と0x20をそれぞれ読んでいるはずです。
注:指定されたレジスターアドレスオフセット (0x20、0x21) は実際にはワードアドレスであり、対応するバイトアドレスはそれぞれ0x80、0x84されます。
書き込みアクセス
外部 PHY への書き込みアクセスは、MDIO インターフェイスを使用して次のように行うことができます。
- アドレス・オフセット・0x21で MDIO コア・レジスターへのAvalon®-MM マスター書き込みを実行し、外部 PHY デバイスアドレス (MDIO_DEVAD)、ポートアドレス (MDIO_PRTAD) およびレジスターアドレス (MDIO_REGAD) を指定します。
- MDIO_ACCESS・レジスター・オフセット・0x20に 32 ビット・データのAvalon-MM マスター書き込みを実行します。
MDIO コアの動作について
データがMDIO_ACCESSレジスターに配置されると、MDIO コアは、オフセット0x20および0x21でレジスターに提供される情報を含む MDIO 書き込みフレームの生成を開始します。フレームは、MDIO_REGADで指定されているアドレス (オフセット・0x21で MDIO コア・レジスターのビット [31:16]) のターゲット PHY レジスターに転送されます。
読み取りアクセス
外部 PHY からの読み取りアクセスは、MDIO インターフェイスを使用して次のように実行できます。
- アドレス・オフセット・0x21で MDIO コア・レジスターへのAvalon-MM マスター書き込みを実行し、外部 PHY デバイスアドレス (MDIO_DEVAD)、ポートアドレス (MDIO_PRTAD) およびレジスターアドレス (MDIO_REGAD) を指定します。
- オフセット0x20で 32 ビット・MDIO_ACCESS・レジスターのAvalon MM マスター・リードを発行します。
MDIO コアの動作について
MDIO_ACCESSレジスターへの読み取りアクセスが発行されると、MDIO コアは、オフセット0x21でレジスターに提供される情報を含む MDIO READ フレームの生成を開始します。MDIO を介したこの READ コマンドへの応答として、外部 PHY は指定されたレジスターの値を MDIO コアに戻します。この値は、オフセット0x20で MDIO コアのMDIO_ACCESSレジスターにロードされます。つまり、ローカルAvalon-MM レジスターをオフセット0x20で読み取っているかのように見えます。
この問題は MegaWizard® および SOPC Builder flow の両方に影響します。