FP32 multiplication mode(FP32乘法模式) |
该模式执行单精度乘法操作。
此模式应用以下方程式:
- fp32_result = fp32_result = fp32_mult_a*fp32_mult_b
|
- fp32_mult_overflow
- fp32_mult_underflow
- fp32_mult_inexact
- fp32_mult_invalid
|
FP32 addition or subtraction mode(FP32加法或减法模式) |
该模式执行单精度加法或减法运算。
此模式应用以下方程式:
- fp32_result = fp32_adder_b+fp32_adder_a
- fp32_result = fp32_adder_b-fp32_adder_a
|
- fp32_adder_overflow
- fp32_adder_underflow
- fp32_adder_inexact
- fp32_adder_invalid
|
FP32 multiplication with addition or subtraction mode(FP32乘法以及加法或减法模式) |
该模式执行单精度乘法,而后进行加法或减法操作。
此模式应用以下方程式:
- 启用chainin功能时:
- fp32_result = (fp32_mult_a*fp32_mult_b) + fp32_chainin
- fp32_result = (fp32_mult_a*fp32_mult_b) - fp32_chainin
- 当禁用 chainin功能时:
- fp32_result = (fp32_mult_a*fp32_mult_b) + fp32_adder_a
- fp32_result = (fp32_mult_a*fp32_mult_b) - fp32_adder_a
|
- fp32_mult_overflow
- fp32_mult_underflow
- fp32_mult_inexact
- fp32_mult_invalid
- fp32_adder_overflow
- fp32_adder_underflow
- fp32_adder_inexact
- fp32_adder_invalid
|
FP32 multiplication with accumulation mode(FP32乘法以及累加模式) |
该模式执行浮点乘法,而后通过之前的乘法所得结果进行浮点加法或减法。
此模式应用以下方程式:
- 当accumulate信号被驱动为高电平时:
- fp32_result(t) = [fp32_mult_a(t)*fp32_mult_b(t)] + fp32_result(t-1)
- fp32_result(t) = [fp32_mult_a(t)*fp32_mult_b(t) - fp32_result(t-1)
- 当accumulate信号被驱动为低电平时:
- fp32_result = fp32_mult_a*fp32_mult_b。
|
FP32 vector one mode(FP32 vector one模式) |
该模式执行浮点乘法,而后通过前面精度可调DSP块的chainin输入进行浮点加法或减法。
此模式应用以下方程式:
- 使能chainin功能时:
- fp32_result = (fp32_mult_a * fp32_mult_b) + fp32_chainin, fp32_chainout = fp32_adder_a
- fp32_result = (fp32_mult_a * fp32_mult_b) - fp32_chainin, fp32_chainout = fp32_adder_a
- 禁用chainin功能时:
- fp32_result = fp32_mult_a * fp32_mult_b, fp32_chainout = fp32_adder_a
|
FP32 vector two mode(FP32 vector two模式) |
此模式执行浮点乘法,其中乘法结果直接馈送到chainout。该chainin从之前的可变精度DSP Block来,并作为输出结果被添加到Ax输入或从其中减去。 此模式应用以下方程式:
- 启用chainin功能时:
- fp32_result = fp32_adder_a + fp32_chainin, fp32_chainout = fp32_mult_a * fp32_mult_b
- fp32_result = fp32_adder_a - fp32_chainin, fp32_chainout = fp32_mult_a * fp32_mult_b
- 当禁用chainin功能时:
- fp32_result = fp32_adder_a, fp32_chainout = fp32_mult_a * fp32_mult_b
|
Sum of two FP16 multiplication mode(两个FP16乘法求和模式) |
此模式执行两个半精度乘法的求和,并提供单精度结果。
此模式应用以下方程式:
- fp32_result = (fp16_mult_top_a*fp16_mult_top_b) + (fp16_mult_bot_a*fp16_mult_bot_b)
- fp32_result = (fp16_mult_top_a*fp16_mult_top_b) - (fp16_mult_bot_a*fp16_mult_bot_b)
|
支持的flushed和bfloat16格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_overflow
- fp16_mult_top_underflow
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_overflow
- fp16_mult_bot_underflow
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_overflow
- fp16_adder_underflow
支持的扩展格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_infinite
- fp16_mult_top_zero
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_infinite
- fp16_mult_bot_zero
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_infinite
- fp16_adder_zero
|
Sum of two FP16 multiplication with FP32 addition mode(两个FP16乘法与FP32加法求和模式) |
此模式执行两个半精度乘法的求和,并提供单精度结果。
此模式应用以下方程式:
- fp32_result = (fp16_mult_top_a*fp16_mult_top_b) + (fp16_mult_bot_a*fp16_mult_bot_b) - fp32_adder_a
- fp32_result = (fp16_mult_top_a*fp16_mult_top_b) - (fp16_mult_bot_a*fp16_mult_bot_b) - fp32_adder_a
- fp32_result = (fp16_mult_top_a*fp16_mult_top_b) + (fp16_mult_bot_a*fp16_mult_bot_b) + fp32_adder_a
- fp32_result = (fp16_mult_top_a*fp16_mult_top_b) - (fp16_mult_bot_a*fp16_mult_bot_b) + fp32_adder_a
|
支持的flushed和bfloat16格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_overflow
- fp16_mult_top_underflow
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_overflow
- fp16_mult_bot_underflow
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_overflow
- fp16_adder_underflow
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
支持的扩展格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_infinite
- fp16_mult_top_zero
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_infinite
- fp16_mult_bot_zero
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_infinite
- fp16_adder_zero
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
|
Sum of two FP16 multiplication with accumulation mode(两个FP16乘法与累加求和模式) |
此模式执行两个半精度乘法并将该值累加成单精度格式:
此模式应用以下方程式:
- 当accumulate信号被驱动为高电平时:
- fp32_result (t) = [fp16_mult_top_a(t) * fp16_mult_top_b(t)] + [fp16_mult_bot_a(t) * fp16_mult_bot_b(t)] + fp32_result(t-1)
- fp32_result (t) = [fp16_mult_top_a(t) * fp16_mult_top_b(t)] - [fp16_mult_bot_a(t) * fp16_mult_bot_b(t)] + fp32_result(t-1)
- fp32_result (t) = [fp16_mult_top_a(t) * fp16_mult_top_b(t)] + [fp16_mult_bot_a(t) * fp16_mult_bot_b(t)] - fp32_result(t-1)
- fp32_result (t) = [fp16_mult_top_a(t) * fp16_mult_top_b(t)] - [fp16_mult_bot_a(t) * fp16_mult_bot_b(t)] - fp32_result(t-1)
- 当accumulate信号被驱动为低电平时:
- fp32_result = [fp16_mult_top_a * fp16_mult_top_b] + [fp16_mult_bot_a * fp16_mult_bot_b]
- fp32_result = [fp16_mult_top_a * fp16_mult_top_b] - [fp16_mult_bot_a * fp16_mult_bot_b]
|
flushed和bfloat16格式中支持的异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_overflow
- fp16_mult_top_underflow
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_overflow
- fp16_mult_bot_underflow
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_overflow
- fp16_adder_underflow
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
支持的扩展格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_infinite
- fp16_mult_top_zero
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_infinite
- fp16_mult_bot_zero
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_infinite
- fp16_adder_zero
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
|
FP16 vector one mode(FP16 vector one模式) |
该模式通过从先前可变精度DSP模块来的chainin输入执行两个半精度乘法的求和。该输出是一个单精度浮点值,并被馈入chainout。
此模式应用以下方程式:
- 启用chainin功能时:
- fp32_result = (fp16_mult_top_a * fp16_mult_top_b) + (fp16_mult_bot_a * fp16_mult_bot_b) + fp32_chainin, fp32_chainout = fp32_adder_a
- fp32_result = (fp16_mult_top_a * fp16_mult_top_b) - (fp16_mult_bot_a * fp16_mult_bot_b) + fp32_chainin, fp32_chainout = fp32_adder_a
- fp32_result = (fp16_mult_top_a * fp16_mult_top_b) + (fp16_mult_bot_a * fp16_mult_bot_b) - fp32_chainin, fp32_chainout = fp32_adder_a
- fp32_result = (fp16_mult_top_a * fp16_mult_top_b) - (fp16_mult_bot_a * fp16_mult_bot_b) - fp32_chainin, fp32_chainout = fp32_adder_a
- 禁用chainin功能时:
- fp32_result = (fp16_mult_top_a * fp16_mult_top_b) + (fp16_mult_bot_a * fp16_mult_bot_b), fp32_chainout = fp32_adder_a
- fp32_result = (fp16_mult_top_a * fp16_mult_top_b) - (fp16_mult_bot_a * fp16_mult_bot_b), fp32_chainout = fp32_adder_a
|
flushed和bfloat16格式中支持的异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_overflow
- fp16_mult_top_underflow
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_overflow
- fp16_mult_bot_underflow
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_overflow
- fp16_adder_underflow
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
支持的扩展格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_infinite
- fp16_mult_top_zero
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_infinite
- fp16_mult_bot_zero
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_infinite
- fp16_adder_zero
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
|
FP16 vector two mode(FP16 vector two模式) |
此模式运行两个半精度乘法运算求和,并被馈入chainout。然后从可变精度DSP模块来的chainin输入被加入fp32_adder_a或从其中减去后作为输出结果。
此模式应用以下方程式:
- 启用chainin功能时:
- fp32_result = fp32_adder_a + fp32_chainin, fp32_chainout = (fp16_mult_top_a * fp16_mult_top_b) + (fp16_mult_bot_a * fp16_mult_bot_b)
- fp32_result = fp32_adder_a - fp32_chainin, fp32_chainout = (fp16_mult_top_a * fp16_mult_top_b) + (fp16_mult_bot_a * fp16_mult_bot_b)
- fp32_result = fp32_adder_a + fp32_chainin, fp32_chainout = (fp16_mult_top_a * fp16_mult_top_b) - (fp16_mult_bot_a * fp16_mult_bot_b)
- fp32_result = fp32_adder_a - fp32_chainin, fp32_chainout = (fp16_mult_top_a * fp16_mult_top_b) - (fp16_mult_bot_a * fp16_mult_bot_b)
- 禁用chainin 功能时:
- fp32_result = fp32_adder_a, fp32_chainout = (fp16_mult_top_a * fp16_mult_top_b) + (fp16_mult_bot_a * fp16_mult_bot_b)
- fp32_result = fp32_adder_a, fp32_chainout = (fp16_mult_top_a * fp16_mult_top_b) - (fp16_mult_bot_a * fp16_mult_bot_b)
|
flushed和bfloat16格式中支持的异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_overflow
- fp16_mult_top_underflow
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_overflow
- fp16_mult_bot_underflow
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_overflow
- fp16_adder_underflow
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
支持的扩展格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_infinite
- fp16_mult_top_zero
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_infinite
- fp16_mult_bot_zero
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_infinite
- fp16_adder_zero
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
|
FP16 Vector Three |
此模式执行单精度累加和两个半精度乘法的求和。
此模式应用以下方程式:
- 当accumulate被驱动为高电平时:
-
fp32_result(t) = fp32_adder_a(t) + fp32_result(t-1), fp32_chainout = {fp16_mult_top_a * fp16_mult_top_b} + {fp16_mult_bot_a * fp16_mult_bot_b}
- fp32_result(t) = fp32_adder_a(t) - fp32_result(t-1), fp32_chainout = {fp16_mult_top_a * fp16_mult_top_b} + {fp16_mult_bot_a * fp16_mult_bot_b}
-
fp32_result(t) = fp32_adder_a(t) + fp32_result(t-1), fp32_chainout = {fp16_mult_top_a * fp16_mult_top_b} - {fp16_mult_bot_a * fp16_mult_bot_b}
- fp32_result(t) = fp32_adder_a(t) - fp32_result(t-1), fp32_chainout = {fp16_mult_top_a * fp16_mult_top_b} - {fp16_mult_bot_a * fp16_mult_bot_b}
- 当accumulate被驱动为低电平时:
- fp32_result = fp32_adder_a, fp32_chainout = {fp16_mult_top_a * fp16_mult_top_b} + {fp16_mult_bot_a * fp16_mult_bot_b}
- fp32_result = fp32_adder_a, fp32_chainout = {fp16_mult_top_a * fp16_mult_top_b} - {fp16_mult_bot_a * fp16_mult_bot_b}
|
flushed和bfloat16格式中支持的异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_overflow
- fp16_mult_top_underflow
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_overflow
- fp16_mult_bot_underflow
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_overflow
- fp16_adder_underflow
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
支持的扩展格式异常标志:
- fp16_mult_top_invalid
- fp16_mult_top_inexact
- fp16_mult_top_infinite
- fp16_mult_top_zero
- fp16_mult_bot_invalid
- fp16_mult_bot_inexact
- fp16_mult_bot_infinite
- fp16_mult_bot_zero
- fp16_adder_invalid
- fp16_adder_inexact
- fp16_adder_infinite
- fp16_adder_zero
- fp32_adder_invalid
- fp32_adder_inexact
- fp32_adder_overflow
- fp32_adder_underflow
|