Login

Floating Point

ARM Floating Point architecture (VFP) provides hardware support for floating point operations in half-, single- and double-precision floating point arithmetic. It is fully IEEE 754 compliant with full software library support.   

The floating point capabilities of the ARM VFP offer increased performance for floating point arithmetic used in automotive powertrain and body control applications, imaging applications such as scaling, transforms and font generation in printing, 3D transforms, FFT and filtering in graphics.  The next generation of consumer products such as Internet appliances, set-top boxes, and home gateways, can directly benefit from the ARM VFP.

VFP Applications

  • Automotive control applications
    • Powertrain
    • ABS, Traction control & active suspension
  • 3D Graphics
    • Digital consumer products
    • Set-top boxes, games consoles
  • Imaging
  • Industrial control systems
    • Motion controls

Many real-time control applications in the industrial and automotive fields benefit from the dynamic range and precision of floating-point offered by the ARM VFP. Automotive powertrain, anti-lock braking, traction control, and active suspension systems are all mission-critical applications where precision and predictability are essential requirements.

VFP architecture versions

Before the ARMv7 architecture, VFP stood for Vector Floating-point Architecture, used for vector operations.

Provision of  hardware floating point is essential for many applications, and can be used as part of a System on Chip (SoC) design flow using high-level design tools (eg MatLab, MATRIXx and LabVIEW) to directly model the system and derive the application code. Using hardware floating point combined with the NEON™ multimedia processing capability, performance of imaging applications such as scaling, 2D and 3D transforms, font generation, and digital filters can be increased.

There have been three main versions of VFP to date:

  1. VFPv1 is obsolete. Details are available on request from ARM.
  2. VFPv2 is an optional extension to the ARM instruction set in the ARMv5TE, ARMv5TEJ and ARMv6 architectures.
  3. VFPv3 is an optional extension to the ARM, Thumb® and ThumbEE instruction sets in the ARMv7-A and ARMv7-R profiles. VFPv3 implementation is with either thirty-two or sixteen double word registers. The terms VFPv3-D32 and VFPv3-D16 distinguish between these two implementation options. Extending VFPv3 uses the half-precision extensions that provide conversion functions in both directions between half-precision floating-point and single-precision floating-point.
 
 


VFP9-S

The ARM VFP9-S synthesizable Vector Floating Point (VFP) coprocessor is compatible with all of the ARM9E™ family of processor cores. It supports both single and double precision floating point; giving full IEEE754 compliance with ARM support software, or near IEEE754 compliance with hardware only. The support code has two components, a library of routines which perform unimplemented functions (such as transcendental functions) and some supported functions (such as division) and a set of exception handlers for processing exception conditions.

VFP9-S features

  • ARM VFPv2 ISA
  • 16 double precision or 32 single precision registers
  • Full IEEE754 compliance with ARM support code
  • Run-Fast mode for near IEEE754 compliance (hardware only)
  • Binary compatible with VFP10 and VFP11
  • Portable to any process with supporting tools and cell library
  • 100 - 130K gates
  • 1.3Mflops/MHz
  • Area <1.0mm2 TSMC 0.13µm G
  • 180 - 210MHz (worst case) TSMC 0.13µm G
  • <0.4mW/MHz (typical) power consumption on TSMC 0.13µm G

VFP9-S Benefits

The vector processing capability of the ARM VFP9-S offers increased performance for floating point arithmetic used in automotive powertrain and body control applications, imaging applications such as scaling, transforms and font generation in printing, 3D transforms, FFT and filtering in graphics. The next generation of consumer products such as Internet appliances, set-top boxes, and home gateways, can directly benefit from the ARM VFP9.

VFP9-S Applications

  • Automotive control applications:
    • Powertrain
    • ABS, Traction control & active suspension
  • 3D Graphics
  • Digital consumer products
    • Set-top boxes, games consoles
  • Imaging
    • Laser printers, still digital cameras, digital video cameras
  • Industrial control systems
    • Motion controls

Many real-time control applications in the industrial and automotive fields benefit from the dynamic range and precision of floating-point offered by the ARM VFP9-S. Automotive powertrain, anti-lock braking, traction control, and active suspension systems are all mission-critical applications where precision and predictability are essential requirements.

Incorporating the VFP9-S into a SoC design can give faster development and a more reliable performance. Using technical computing tools (MatLab, MATRIxx, etc.) to directly model the system and derive the application code, ensuring that the behavior of the system design is more precise, reliable, and predictable.  


VFP10

The ARM VFP10 is a hard macrocell Vector Floating Point (VFP) coprocessor compatible with all of the ARM10E™ family of CPU cores. It supports both single and double precision floating point; giving full IEEE754 compliance with ARM support software, or near IEEE754 compliance with hardware only. The support code has two components, a library of routines which perform unimplemented functions (such as transcendental functions) and some supported functions (such as division) and a set of exception handlers for processing exception conditions.

VFP10 Features

  • ISA is ARM VFPv2
  • 16 double precision or 32 single precision registers
  • Large independent register file with 64-bit LD/ST interface
  • Full IEEE754 compliance with ARM support code
  • Run-Fast mode for near IEEE754 compliance (hardware only)
  • Binary compatible with VFP9 and VFP11
  • Scalar and vector operation support (ideal for FP DSP)
  • Parallel LD/ST, FMAC, and DIV/SQRT execution engines
  • 2.0Mflops/MHz
  • Area ~1.16mm 2 TSMC 0.13µm LV
  • Up to 325MHz (worst case) TSMC 0.13µm LV
  • <0.4mW/MHz (typical) power consumption on TSMC 0.13µm LV

VFP10 Instruction Set (VFPv2)

  • Arithmetic:
    • Add, Sub, Mult, Neg-Mult, Negate, Abs Value, Compare, Div, Square Root
  • FMAC (Single and double versions):
    • Multiply-Add, Multiply-Subtract, Neg-Multiply-Add, Neg-Multiply-Subtract
  • Type conversions
  • Load/Store scalars and vectors, 64-bits per cycle

VFP10 Benefits

The vector processing capability of the ARM VFP10 offers increased performance for floating point arithmetic used in automotive powertrain and body control applications, imaging applications such as scaling, transforms, and font generation in printing, 3D transforms, FFT, and filtering in graphics. The next generation of consumer products such as Internet appliances, set-top boxes and home gateways can directly benefit from the ARM VFP10.

Many applications inherently benefit from the dynamic range and precision of floating point. Many applications are migrating to embedded applications and these have been floating point based for many years. The inclusion of VFP10 will enable a more simple transition to the embedded world using technical computing tools like MatLab or MATRIxx.

VFP10 Applications

  • Automotive control applications
    • Powertrain
    • ABS
    • Traction control & active suspension
  • Digital consumer products
    • Set-top boxes, games consoles
  • 3D Graphics
    • FFT & FIR Filtering
  • Imaging
    • Laser printers, still digital cameras, digital video cameras
  • Industrial control systems
    • Motion controls

Many real-time control applications in the industrial and automotive fields benefit from the dynamic range and precision of floating-point offered by the ARM VFP10. Automotive powertrain, anti-lock braking, traction control, and active suspension systems are all mission-critical applications where precision and predictability are essential requirements. Incorporating the VFP9-S into a SoC design can give faster development and a more reliable performance. Using technical computing tools (MatLab, MATRIxx, etc.) to directly model the system and derive the application code, ensuring that the behavior of the system design is more precise, reliable, and predictable.   


Maximise


Cookies

We use cookies to give you the best experience on our website. By continuing to use our site you consent to our cookies.

Change Settings

Find out more about the cookies we set