For more than 20 years, embedded systems developers have dreamed
the impossible dream: the reprogrammable Anything Chip.
The essential elements of such "impossible" anything chips include:
1) the software
reprogrammability of a general purpose microprocessor or
microcontroller, 2) the
hardware reprogrammability of an FPGA, 3)
the gate density of an ASIC and 4) the
functional density of a dedicated System-on-chip. Initially focused
only on digital functions, the move is now on to incorporate reprogrammability into the
linear and analog elements of a system design as well.
One of the earliest articles on Embedded.com and in Embedded
Systems Design on this topic is "Programming
your own MCU," in 1989. Another ESD oldie-but-goodie is "Compiling software to gates."
One company that has been pushing this concept to its limits is
Cypress Semiconductor, with its PSoC family of devices. Indeed, company
founder T.J. Rodgers is banking on PSoC's to drive
growth at Cypress.
Some recent Embedded.com articles on PSoC topics include:
designing with distributed processing
blocks, transitioning from 8-to 32-bit MCU design,
using PSoCs to design response
filters and digital
filters, doing mixed signal capacitive sensor design, integrating sensors and
MCUs, transforming silicon design with dynamic
reconfiguration, doing codefree design with a PSoC, upgrading USB firmware
with PSoCs, and building MEMS gyroscopes.
A key element in the Cypress PSoC strategy is the availability of
easy to use design tools. In addition to its current correct-by-design PSoC Designer
environment, the company is
now moving to a next
generation tool called PSoC Creator.
Of course, as noted below in the selection of articles from
Embedded.com, Cypress is not alone in reaching for this goal. A variety
of companies, including Xilinx, Altera, Actel, Lattice, and Atmel, have developed their own
under such names as softcore-based
system chips, soft processors, flexible CPUs, and metal
programmable customizable MCU-based SoCs.
What approaches are you using or considering? Is such an ultimate
Anything Chip possible? Is it even necessary, or are the traditional
ways of partitioning designs more than enough? What other variations
have you heard about and used? Where do you think the technology should