Microchip 32-bit Microcontrollers Gain High-Precision Floating Point Capabilities

Submitted by BDTI on Mon, 11/16/2015 - 22:03

The decreasing cost-per-transistor delivered by modern semiconductor processes means that a number of previously rare embedded processor options are now increasingly common. This trend includes floating-point coprocessors, which are especially useful when migrating code originally developed on a PC to an embedded system. Recall that floating-point support on the PC wasn't a "given" until the first 1993-era Pentium processor-based systems hit the scene; earlier i486 CPUs offered the integrated FPU core only as an option, and on 386-class and earlier processors, the FPU came on a separate "87" coprocessor chip. As part of a similar evolution in the microcontroller space, Microchip Technology has introduced an integrated floating-point unit in its PIC32 embedded controllers with the newly launched 48-chip PIC32MZ EF family.

As InsideDSP noted at the initial PIC32 architecture unveiling, with PIC32 Microchip expanded beyond its historical reliance on proprietary architectures to leverage MIPS 32-bit CPU cores. PIC32 comprises two primary product families, PIC32MX and PIC32MZ. Initial PIC32MX products used the MIPS M4K core, while newer PIC32MZ devices transition to the MIPS microAptive core. Among other improvements, the newer core supports higher performance L1 instruction and data caches, along with implementing the microMIPS enhanced MIPS32 instruction set that optionally uses both 16- and 32-bit opcodes for reduced memory size.

PIC32MZ further subdivides into the initial "EC" and latest "EF" families. Both families implement 159 fixed-point DSP instructions. The EF family adds a single- and double-precision floating-point unit. As noted by Microchip's Bill Hutchings and Anand Rangarajan, a subset of the company's target customers are involved in very high dynamic range applications that demand a FPU. More generally, however, many of Microchip's customers just don't want to deal with floating- to fixed-point conversion. For example, MATLAB simulations can be more directly correlated to end device functionality if the target processor supports floating-point math.

And, according to Hutchings, adding the IEEE 754-compliant FPU had no cost impact; although both EC and EF products are fabricated from the same 90 nm process, a more optimized layout of the latter, newer products enabled Microchip to add the FPU without increasing die size. As a result, PIC32MZ EF products are the Microchip-recommended option for all new PIC32-based designs, regardless of whether or not the customer plans to use the FPU.

The MIPS-developed FPU uses a dedicated 7-stage pipeline, operating in parallel with core integer pipeline, and supports both MIPS32 and microMIPS instructions. It operates at the same clock speed as the main MCU core. Most FPU instructions execute with single-cycle throughput and four-cycle latency, according to Microchip. And its potential benefits include improved code density and performance on applications that leverage floating-point computations (Table 1).

Fifth-order Polynomial Calculation



Code Size (bytes)



Time (µsec)



Table 1. A Microchip-provided example illustrates the potential advantages of using the integrated FPU found in latest-generation PIC32MZ EF 32-bit embedded controllers.

The 48-member PIC32MZ EF family runs at up to 200 MHz and is in full production, with samples of all variants now available. An optional cryptography core is included in 16 of the products. Flash memory is integrated on-chip (512 KBytes, 1 MByte, or 2 MBytes, depending on the family member), along with 512 KBytes of RAM (Figure 1). Packaging options include 64-pin QFN (9x9 mm) and TQFP (10x10 mm), 100-pin TQFP (12x12 and 14x14 mm), 124-pin VTLA (9x9 mm), 144-pin TQFP (16x16 mm) and LQFP (20x20 mm). Pricing begins at $5.48 (10,000-unit quantities).

Figure 1. In addition to the FPU and optional cryptography unit, the 48-member PIC32MZ EF family embeds RAM, multiple flash memory density options, and a diversity of peripherals

Development tool support includes Microchip’s free MPLAB X IDE, which integrates the MPLAB Harmony Integrated Software Framework, and the company's MPLAB XC32 compilers. Also available are the $200 MPLAB ICD 3 In-Circuit Debugger and $500 MPLAB REAL ICE In-Circuit Emulator System, along with four new hardware development platforms:

The PIC32MZ EF series is also supported in a new version of the Arduino-compatible Digilent chipKIT Wi-FIRE development board. Microchip's addition of floating point support in the PIC32MZ EF family is to be commended, particularly given that the company isn't charging a price premium for it, and should notable simplify PC-to-embedded and simulation-to-production software development transitions. It will also provide a straightforward floating point-inclusive upgrade for existing PIC32MZ customers.

However, new customers evaluating Microchip's MIPS-based products might be left wondering why the company and its core-supplying partner, Imagination Technologies, took this long to get to this point. ARM's Cortex-M4, introduced in early 2010, offered single-precision floating point as a feature set option; last year's Cortex-M7 broadened this support to include optional double-precision floating point facilities. If double-precision floating point hardware is a necessity in your application, Microchip's offerings are relatively timely. However, if single-precision floating point silicon will suffice, ARM-based MCUs have been available for a half-decade.

Add new comment

Log in or register to post comments