Consider an example of operating at 100Mbps, and the bandwidth to be allotted to Channel 2 is 60Mbps.
Parameters to be programmed: 1. Send Slope 2. Idle Slope 3. High Credit 4. Low Credit
Since bandwidth allocated for Channel 2 is 60%, idleSlope should be 60Mbps.
Credit accumulation rate = idleSlope = 60 Mbps
Credit accumulated per cycle (40ns for 100Mbps operation) = 60 Mbps * 40ns = 2.4 bits
Channel2 idleSlopeCredit Register = 2.4*1024 = 0x99A
Channel2 sendSlope
Since bandwidth allocated for Channel 2 is 60%, sendSlope should be (100-60)Mbps = 40Mbps Credit drain rate = sendSlope = 40 Mbps Credit drained per cycle (40ns for 100Mbps operation) = 40 Mbps * 40ns = 1.6 bits Channel2 sendSlopeCredit Register = 1.6*1024 = 0x666
High Credit Value
This is the maximum value that can be accumulated in the credit parameter, specified in bits scaled by 1,024. The maximum value is maxInterferenceSize, that is, best-effort maximum frame size which is 16,384 bytes or 131,072 bits. The value to be specified is 131,072 * 1,024 = 134,217,728 or 0x0800_0000.
Low Credit Value
This is the minimum value that can be accumulated in the credit parameter, specified in bits scaled by 1,024. The maximum value is maxInterferenceSize, that is, best-effort maximum frame size which is 16,384 bytes or 131,072 bits. The value to be specified is 131,072 * 1,024 = 134,217,728 or 0x0800_0000. The programmed value is 2's complement (negative number), that is, 0xF800_0000.