Agilex™ 7 パワー・マネジメント・ユーザーガイド

ID 683373
日付 4/01/2024
Public
ドキュメント目次

5.1.2.2. PMBusスレーブモード

Agilex 7デバイスは、PMBusマスターとして機能する外部電源管理コントローラーを使用して、PMBusスレーブモードでコンフィグレーションすることもできます。PMBusを介してAgilex 7デバイスと相互作用する外部電源管理コントローラーは、クロックストレッチをサポートする必要があります。外部電源管理コントローラーはすべてのPMBusトランザクションを駆動し、FPGAにターゲット電圧要件を照会し、電圧レギュレーターと相互作用してFPGAのターゲット電圧にコンフィグレーションする役割を担います。

図 24. PMBusスレーブモード
表 23.  PMBusスレーブモードでサポートされているコマンド
コマンド名 コマンドコード デフォルト PMBusトランザクション・タイプ バイト数
CLEAR_FAULTS 03h - 書き込みバイト 0
VOUT_MODE 20h 40h 読み出しバイト 1
VOUT_COMMAND 21h - 読み出しワード 2
STATUS_BYTE 78h 00h 読み出しバイト 1

PWRMGT_ALERT 信号を使用したPMBusスレーブモードの場合、外部PMBusフローについては以下の図および表に示すガイドラインに従う必要があります。

図 25.  PWRMGT_ALERT 信号を使用したPMBusスレーブモードでの外部PMBusマスターとFPGA間のハンドシェイク・フロー
表 24.   PWRMGT_ALERT 信号がアサートされ STATUS_BYTE=0の場合の外部PMBusマスターのステージフロー
シーケンス SDM PMBusマスター 注記
1 PWRMGT_ALERT 信号をアサートします。 -
2 PWRMGT_ALERT 信号を検出します。 -
3 ARAフローを開始します。
4 ARAフローに応答し、そのアドレスを提供します。 手順1で PWRMGT_ALERT 信号をアサートしたデバイスのみが、そのアドレスを提供することでARAフローに応答します。
5 PWRMGT_ALERT 信号をデアサートします。 PWRMGT_ALERT 信号は、SDMがARAフローのアドレスで応答した後でのみ、デアサートされます。
6 STATUS_BYTE を読み出します。
7 STATUS_BYTE=0を返します。 FPGA電圧に更新が必要なことを示します。
8 CLEAR_FAULTS を送信します。
9 VOUT_COMMAND を送信します。 VOUT_COMMAND は、PWRMGT_ALERT 信号がアサートされてから200ミリ秒以内にSDMによって受信される必要があります。この要件を満たさないと、コンフィグレーション・エラーが発生します。18
10 VOUT_COMMAND を受信し、ターゲット電圧で応答します。 - 温度、VIDヒューズおよび直接フォーマットの係数に基づいて計算されます (この入力を指定する必要があります)。
11 電圧レギュレーターを10mV/10ms ステップ未満のステップサイズでターゲット電圧に設定します。 -
表 25.   PWRMGT_ALERT 信号がアサートされ STATUS_BYTE=0でない場合の外部PMBusマスターのステージフロー
シーケンス SDM PMBusマスター 注記
1 PWRMGT_ALERT 信号をアサートします。 - SDMは障害を検出し、PWRMGT_ALERT 信号をアサートします。19
2 PWRMGT_ALERT 信号を検出します。 -
3 ARAフローを開始します。
4 ARAフローに応答し、そのアドレスを提供します。 手順1で PWRMGT_ALERT 信号をアサートしたデバイスのみが、そのアドレスを提供することでARAフローに応答します。
5 PWRMGT_ALERT 信号をデアサートします。 PWRMGT_ALERT 信号は、SDMがARAフローのアドレスで応答した後でのみ、デアサートされます。
6 STATUS_BYTE を読み出します。
7 0以外の場合、STATUS_BYTE を返します。 - その他の障害が発生したことを示します。
8 CLEAR_FAULTS を送信します。 STATUS_BYTE をリセットします。
9 STATUS_BYTE を読み出します。 STATUS_BYTE=0であることを確認します。
10 障害を処理する外部マスターです。
図 26.  PWRMGT_ALERT を使用したPMBusスレーブモードでの外部PMBusマスターとFPGA間のハンドシェイク・タイミング図

PMBusスレーブモードのAgilex 7デバイスでは、VOUT_COMMAND 値の送信を直接フォーマットでのみ行います。実際の電圧値を読み出すには、次の式を使って VOUT_COMMAND 値をAgilex 7デバイスから変換します。

図 27. 直接フォーマット式

この式では、直接フォーマット値の変換方法を示しています。条件は、

  • Xは計算された実数値で、単位はmV。
  • mは勾配係数で、2バイトの2の補数の整数。
  • Yは2バイトの2の補数の整数で、Agilex 7デバイスから受け取る。
  • bはオフセットで、2バイトの2の補数の整数。
  • Rは指数で、1バイトの2の補数の整数。

次の例では、外部電源管理コントローラーでインテルAgilexデバイスから値を取得する方法を示しています。VOUT_COMMAND で使用される係数は次の通りです。

  • m = 1
  • b = 0
  • R = 0

外部電源管理コントローラーで 0384h の値を取得した場合、それは次と同等です。

X = (1/1) x (0384h x 10-0 - 0) = 900mV = 0.90V

18 指定された時間内に VOUT_COMMAND を受信しなかったためにSDMによってトリガーされたエラーが発生した場合、デバイスの電源を入れ直して、エラーから回復する必要があります。デバイスの電源を入れ直さずにエラーから回復しようとした場合、デバイスの正常なコンフィグレーションができなくなります。
19

以下の障害により、PWRMGT_ALERT 信号が発生する可能性があります。

  • PMBUS_ERR_RD_TOO_MANY_BYTES (PMBus/I2Cメッセージ長の長さのエラーです)
  • PMBUS_ERR_WR_TOO_MANY_BYTES (PMBus/I2Cメッセージ長の長さのエラーです)
  • PMBUS_ERR_UNSUPPORTED_CMD (VOUT_COMMANDVOUT_MODEREAD_STATUS、および CLEAR_FAULTS のみがPMBUSスレーブモードでサポートされているコマンドです)
  • PMBUS_ERR_READ_FLAG (最初のコマンドに応答する前に、重複コマンドを受信しました)
  • PMBUS_ERR_INVALID_DATA (無効または不正なPMBus/I2Cメッセージです)

上記のエラーのいずれかが検出されると、PWRMGT_ALERT 信号が生成され、ステータスレジスターのビット1の値が設定されます。