In an earlier blog, I took it upon myself to declare field programmable analog arrays (FPAAs) a technology that is dead on arrival. In Field Programmable Analog & Gallium Arsenide, I drew a distinction between reconfigurable analog such as the ispPAC parts from Cypress Semiconductor and a true FPAA where the programmability is fine grained, similar to a field programmable gate array (FPGA).
While reconfigurable analog has enjoyed some success, no one can yet claim that software configurability is the way of the future. Or is it? Maybe what is standing in the way is the lack of a common, manufacturer-independent, analog development flow similar to what is available for digital design.
In the digital circuit world, designers have standardized tools where the learning curve is a penalty paid once, and the knowledge is then applied ubiquitously regardless of the hardware platform or manufacturer. For example, a very basic hardware description language (HDL) for digital design is Verilog. More recently there has been a wider adoption of the next higher-level HDL called System Verilog. And the future of digital design appears to be headed toward an even higher HDL known as System C.
From this analog designer's perspective, System C is a confluence of computer programmers working with C++ language (who know very little about electronics), with the digital circuit designers whose job requires less and less knowledge of electronics with every process node step put out by Intel or TSMC. After all, what is the functional difference between telling an Intel digital-gate microprocessor what to do via a compiled C program versus telling an FPGA how to operate via a synthesized Verilog HDL?
Many analog designers are already familiar with an HDL called Verilog-A, but that is used primarily for analog behavioral modeling. What I am calling for is a design language counterpart to System C. Let's call it System A. The language would have syntax specifically related to analog. For example, an analog-to-digital converter (ADC) block could be instantiated in the schematic where the design parameters would be something akin to resolution, input range, linearity, signal-to-noise ratio, and sample rate. Then the design could be compiled, and a list of compatible parts would pop up on the screen. The available parts would be installed as libraries from manufacturers with all the supporting models and collateral data. The user would simply enable the preferred parts.
The concept could even be expanded to hardware configurable standard parts. In this case, the manufacturers would have canned designs for the high-level blocks that would be synthesized, along with PC board artwork, a bill of materials, and a high-level simulation model. In this particular example I'm thinking about switching power regulators.
In some respects this already exists with Linear Technology's LTSPICE and Texas Instrument's WEBENCH. But aside from these being proprietary design tools, which is the antithesis of a common design language, the design entry methodology of drawing detailed schematics is also at too low of a level to facilitate rapid system engineering and comparative part evaluation. Do we really need to draw in decoupling capacitors for a high-level design, or the resistor that sets a programmed current, at such an early stage of the design?
If the analog design world is relegated for the foreseeable future to continue building systems with lots of parts on a board, there at least needs to be a much quicker and more efficient method for studying and optimizing a design before committing to the board. In fact, I suspect that may be the biggest impediment to wider adoption of reconfigurable analog parts.
Here's why: There is a huge learning curve with every vendor's parts and proprietary tools. In most cases the analog designers know precisely what they need, but they don't want to wade through multiple datasheets, spend time learning a vendor-specific design tool, and then build expensive PCBs only to discover the reconfigurable IC is not adequate for the problem.
A great byproduct of a common language would be empowerment of those less skilled in analog and more skilled in designing with software tools. Second in line would be the filtering out of all marketing fluff found on datasheets where, for example, things labeled as 16-bit ADCs operate equivalent to that of a 14-bit part.
Do you think an analog HDL would be adopted by users and supported by manufacturers?