Skip to content

Add new multi-format DivSqrt unit from openC910 (FP64, FP32, FP16 + SIMD support)

Eclipse Webmaster requested to merge feature/new_multifmt_divsqrt into develop

Created by: lucabertaccini

This PR adds a new multi-format DivSqrt unit leveraging the DivSqrt module included in the open-source T-Head openC910 core. The DivSqrt operation group block leveraging the openC910 DivSqrt unit supports:

  • FP64
  • FP32
  • FP16
  • SIMD operations

The unit from the openC910 is vendorized in the vendor/openc910 folder. To choose among the three supported dividers, the PulpDivsqrt top-level parameter has been replaced with the DivSqrtSel parameter that can be set to:

  • PULP to select the PULP DivSqrt unit, which supports FP64, FP32, FP16, FP16ALT, FP8 and SIMD operations
  • TH32 to select the E906 DivSqrt unit, which supports only FP32 scalar operations (no SIMD support)
  • THMULTI to select the the C910 DivSqrt unit, which supports FP64, FP32, FP16 and SIMD operations

The default choice is set to THMULTI. The THMULTI option is supported even when enabling FP16ALT and/or FP8, from the FPU top level, but the related DivSqrt modules will not be instantiated.

Merge request reports

Loading