Visible to Intel only — GUID: loo1551083312723
Ixiasoft
Visible to Intel only — GUID: loo1551083312723
Ixiasoft
5.1.2.2. PMBus Slave Mode
Agilex™ 7 devices can also be configured in the PMBus slave mode with an external power management controller acting as the PMBus master. The external power management controller that interact with Agilex™ 7 devices over PMBus must support clock stretching. The external power management controller is responsible for driving all PMBus transactions, querying the FPGA for its target voltage requirements and interacting with the voltage regulators to configure them to the FPGA's target voltage.
Command Name | Command Code | Default | PMBus Transaction Type | Number of Bytes |
---|---|---|---|---|
CLEAR_FAULTS | 03h | — | Write byte | 0 |
VOUT_MODE | 20h | 40h | Read byte | 1 |
VOUT_COMMAND | 21h | — | Read word | 2 |
STATUS_BYTE | 78h | 00h | Read byte | 1 |
For the PMBus slave mode with PWRMGT_ALERT, you must follow the guidelines in the following figures and tables for the external PMBus flow.
Sequence | SDM | PMBus Master | Notes |
---|---|---|---|
1 | Asserts the PWRMGT_ALERT signal | — | — |
2 | — | Detects the PWRMGT_ALERT signal | — |
3 | — | Initiates the ARA flow | — |
4 | Responds to the ARA flow and provides its address | — | Only the device which has asserted the PWRMGT_ALERT signal in step 1 responds to the ARA flow by providing its address. |
5 | Deasserts the PWRMGT_ALERT signal | — | The PWRMGT_ALERT signal is only deasserted after the SDM responds with its address in the ARA flow. |
6 | — | Reads the STATUS_BYTE | — |
7 | Returns STATUS_BYTE=0 | — | Indicates the FPGA voltage requires an update. |
8 | — | Sends CLEAR_FAULTS | — |
9 | — | Sends VOUT_COMMAND | The VOUT_COMMAND must be received by the SDM within 200 ms after the PWRMGT_ALERT signal is asserted. Failure to meet this requirement causes configuration error. 19 |
10 | Receives the VOUT_COMMAND, responds with the target voltage | — | Calculated based on the temperature, the VID fuse and the coefficient for the direct format (you need to specify this input). |
11 | — | Sets the voltage regulator to the target voltage in step size not greater than 10 mV/10 ms step | — |
Sequence | SDM | PMBus Master | Notes |
---|---|---|---|
1 | Asserts the PWRMGT_ALERT signal | — | The SDM detects fault and asserts the PWRMGT_ALERT signal. 20 |
2 | — | Detects the PWRMGT_ALERT signal | — |
3 | — | Initiates the ARA flow | — |
4 | Responds to the ARA flow and provides its address | — | Only the device which has asserted the PWRMGT_ALERT signal in step 1 responds to the ARA flow by providing its address. |
5 | Deasserts the PWRMGT_ALERT signal | — | The PWRMGT_ALERT signal is only deasserted after the SDM responds with its address in the ARA flow. |
6 | — | Reads the STATUS_BYTE | — |
7 | Returns the STATUS_BYTE when not equal to 0 | — | Indicates that other fault has occurred |
8 | — | Sends CLEAR_FAULTS | To reset the STATUS_BYTE. |
9 | — | Reads the STATUS_BYTE | To confirm that STATUS_BYTE=0. |
10 | — | External master to handle the faults | — |
The Agilex™ 7 devices in the PMBus slave mode sends the VOUT_COMMAND value in the direct format only. To read the actual voltage value, use the following equation to convert the VOUT_COMMAND value from the Agilex™ 7 devices.
The equation shows how to convert the direct format value where:
- X, is the calculated, real value in mV;
- m, is the slope coefficient, a 2-byte two's complement integer;
- Y, is the 2-byte two's complement integer received from the Agilex™ 7 devices;
- b, is the offset, a 2-byte two's complement integer;
- R, is the exponent, a 1-byte two's complement integer
The following example shows how an external power management controller retrieves values from the Agilex™ 7 devices. Coefficients used in the VOUT_COMMAND are as follows:
- m = 1
- b = 0
- R = 0
If the external power management controller retrieved a value of 0384h, it is equivalent to the following:
X = (1/1) x (0384h x 10-0 - 0) = 900 mV = 0.90 V
The following faults can raise the PWRMGT_ALERT signal:
- PMBUS_ERR_RD_TOO_MANY_BYTES (Error with the length of the PMBus/I2C message length)
- PMBUS_ERR_WR_TOO_MANY_BYTES (Error with the length of the PMBus/I2C message length)
- PMBUS_ERR_UNSUPPORTED_CMD (VOUT_COMMAND, VOUT_MODE, READ_STATUS, and CLEAR_FAULTS are the only supported commands in the PMBUS Slave Mode)
- PMBUS_ERR_READ_FLAG (Received duplicate command before being able to respond to the first command)
- PMBUS_ERR_INVALID_DATA (Invalid or malformed PMBus/I2C message)
If any of the above errors are detected, the PWRMGT_ALERT signal is raised and bit 1 of the status register is set.