There have been interesting developments in the world of small FPGA's over the last five years. Tiny "chip scale" FPGAs under 4.5 mm x 4.5 mm containing a large number [6,000 (for Lattice Crosslink MD6000) - 8,000 (for the Intel/Altera MAX 10M08)] of LUTs have become available. This is equivalent to the largest Xilinx XC4000 series FPGA from the year 2000. In fact, these new FPGAs are much better; they have built-in configuration flash, which is capable of self-updating. They also have block RAMs (378 Kb for the 10M08), cost less than 1/10 the price, have built-in clock oscillators, use less power, and, of course, are much faster.
NK Labs has found numerous uses for these FPGAs in modern hardware. One product we designed contains a network of tiny sensor modules. Each module use a small FPGA, which costs less than a dollar in volume and fits in a few square millimeters of PCB area. Each of these tiny FPGA's contains a simple network switch which allows for the construction of an arbitrarily-sized, multi-port, packet-based serial network running at fast Ethernet speeds and requiring no external components aside from the connectors. Each FPGA also contains an interface to a high speed A/D converter followed by signal conditioning logic. Finally, each FPGA has typical maintenance functions, including firmware updates (of the FPGA configuration over the network), battery voltage monitoring, LED indicators and diagnostics.
Of course, this product could have been designed around a network of microprocessors, but the FPGA version is smaller, cheaper, and quicker to develop. Just try to find a single chip solution --- including RAM, FLASH, multiple fast network ports, and an A/D interface. You might succeed, but then compare the size, power usage, and price. This is where custom logic can beat software. The development time is reduced as well, since a relatively simple chip design is actually quicker to develop and test than a real-time software-only solution based on layers of libraries running on a complex SoC. Another benefit is that it is easy to verify that the FPGA design will meet the requirements with RTL simulation.
Incidentally, these parts are more than large enough for 32-bit soft CPU cores. They typically provide extra unused configuration flash memory which can be used to store the firmware for the CPU. Dedicated MCUs are cheaper and provide more memory, but when a custom peripheral is needed, FPGAs can't be beat.
Amazingly, the recent developments in low-end programmable logic chips do not stop there. At the extreme low-end, we have ultra-tiny (below 2 mm x 2 mm) parts including ICE40 FPGAs from SiliconBlue (now Lattice Semiconductor) and GreenPAK Programmable Mixed-Signal Matrix from Silego Technologies (soon to be acquired by Dialog Semiconductor). The Silego parts are one-time programmable parts, but are not FPGAs. Instead, relatively high-level function blocks are connected together using a graphical interface. Once you are happy with the design, Silego instantly creates a custom part number for you to order. They then program the parts for you as part of their shipping process. As an FPGA engineer, I naturally prefer RTL for programmable logic, but for ultra-simple logic, the Silego solution is very compelling, especially because of their wide supply range (1.8V - 5V). We use them frequently as power sequencers and controllers, powered directly from lithium ion cells.
NK Labs, LLC is a product development engineering firm in Cambridge, MA. We have broad experience in the design of consumer electronics, robotics, and other innovative products. Please consider us for your next engineering design project!