You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When performing floating-point division using the fdiv.d instruction in CVA6, under specific conditions where the expected result is the smallest representable negative double-precision floating-point number (0xffefffffffffffff), CVA6 incorrectly returns negative infinity (0xfff0000000000000).
Hi,
There are no information about the cvfpu version or hash number and nothing about cvfpu configuration used when finding this bug so it is quite hard to answer.
But looking at some comments it seems original PULP DIV/SQRT unit is used.
This unit had some bugs reported when using Single-Precision format so another DIV/SQRT unit from T-Head E906 core was added to replace it but it was supporting SP only (v0.8.1 tag).
As this PULP DIV/SQRT unit had some bugs when using Double-Precision format as well, another unit from T-Head C910 was added to cope with multi-format support (FP64, FP32, FP16 and SIMD operations).
This is available in develop branch.
To use it top level parameter should be assigned like that :
module fpnew_top #(
// FPU configuration
// DivSqrtSel chooses among PULP, TH32, or THMULTI (see documentation and fpnew_pkg.sv for further details)
parameter fpnew_pkg::divsqrt_unit_t DivSqrtSel = fpnew_pkg::THMULTI,
Try again with THMULTI config to see if this bug still exists.
Bug Description
When performing floating-point division using the
fdiv.d
instruction in CVA6, under specific conditions where the expected result is the smallest representable negative double-precision floating-point number (0xffefffffffffffff
), CVA6 incorrectly returns negative infinity (0xfff0000000000000
).Steps to Reproduce:
fa7
with0xc024000000000000
.fs3
with0x00000000000002cc
.fdiv.d ft6, fa7, fs3
.ft6
.The log is as follows::
See: openhwgroup/cva6#2060
The text was updated successfully, but these errors were encountered: