System platform-based design(1) is one of a number of high-level initiatives to tackle the spiraling problems of design complexity, hardware/software integrity and cost. The approach aims to stratify a system design problem into bite-size layers. It also aims to deliver higher, unified abstractions from existing digital EDA flows. Each platform must:
-map an instance in an (upper) application space to another in a (lower) architecture space
-communicate constraints between these spaces in forms suitable to each
-package the application solution in a form suitable for deployment and integration by the platform above it
This demands massive standardization of methodology. Such discussions have been largely irrelevant to analog design which is very much a custom process, independent of the rest of the system design (whether it be integrated or discrete).
However for the first time, real abstraction-to-software of analog design is available through new programmable analog products and tools.(2) These products, and the technology on which they’re based, are the key to a groundbreaking software-driven analog / mixed-signal methodology for design and integration.
Programmable analog technology offers the ability to abstract to a software-based functional platform, and from there to abstract further to block-based design and verification as part of an extended system toolset. As implemented in field-programmable analog arrays (FPAAs), it also has the ability to support dynamic modification of the analog design through automatic API generation.
The basic components of platform-based design using FPAAs include pre-qualified programmable hardware, a library of virtual components, and EDA tools that enable rapid product development, integration, and verification.
The Physical Platform – the FPAA
In the case of platform-based analog design, the reusable hardware takes the form of an FPAA built on a switched-capacitor (SC) architecture which delivers a precision and predictability of implementation that is required for a reusable design approach. It also neatly contains the many variables that typically exist in the analog architecture space: SC functional implementations have a remarkable regularity of form.
The SC-based FPAA is so versatile that it can be considered as a general analog signal processing platform. Being programmable and dynamically programmable means it offers features never previously available.
The Functional Platform – the CAM
For programmable analog, the library of virtual components takes the form of configurable analog modules (CAMs) that insulate the designer from the underlying circuit design and silicon by transforming analog design know-how into functional software elements. These elements abstract the physical implementation to a functional representation – the analog equivalent of the logic gate.
Examples of such elements are filter stages, gain stages, summing/difference stages, voltage multiplication, phase/voltage comparators, rectifiers, oscillators, and references. New, highly customizable functions such arbitrary waveform synthesis or arbitrary voltage transfer functions further exploit the programmable nature of the FPAA. As a functional abstraction, the CAM in fact offers much higher complexity and flexibility than a logic gate.
The main component parts of a CAM are (i) a circuit netlist or netlists, (ii) algorithms to modify the sub-circuit according to high level parameter settings, and (iii) a simulation model.
Figure 1 – CAM User Interface
Take as an example a biquad filter such as that shown in Figure 1. It may have design parameters of corner frequency, passband gain, and Q-factor. These parameters might modify component values, or the circuit structure itself. Factors such as clock frequency, parameter settings, resource availability, and performance of the silicon components (e.g. op-amp gain bandwidth product), are all known to the CAM , and will influence the “operational envelope”, which is continuously re-evaluated and reported.
The CAM is thus entirely self-contained and is a full representation, in software, of a physical analog signal processing function. As such, it can be seen as an analog “standard cell”, with all the associated compatibilities with AHDLs and module-based system development tools such as MatLab.
Figure 2 – FPAA Platforms and Integration
Further Abstraction and Integration
Having achieved the first level of abstraction away from the physical layer, the opportunity to abstract further is clear. Figure 2 indicates the information flows that exist at the boundaries between and within layers of abstraction in an FPAA design tool. At the functional level, there is a dialogue between the CAMs (which request FPAA resources to realize a given function) and the design software, which manages the allocation of FPAA resources.
At a higher level, the design synthesis tools can be used to automatically assemble a more complex design, such as a Chebyshev filter or a PID (proportional, integral, derivative) controller, using the CAM building blocks, which in turn relay information such as achieved parameter settings back to the synthesis tool.
The interface which makes this dialog possible also allows for the full integration of the programmable analog EDA software with third-party system design tools, so that synthesis to FPAA can be realized as part of a top-down design and verification flow.
The ‘abstract to software’ theme is enhanced further with the use of automatically generated APIs which convey programming data, and rules for manipulating it, to system processors – these APIs come in the form of high-level ‘C’ routines which are transparently customized for a given design. This allows real-time in-system management of the analog application.
(1) Carloni, De Bernardinis, Sangiovanni-Vincentelli, Sgroi, “The Art and Science of Integrated Systems Design”, ESSCIRC 2002.
(2) Pour Your Own Programmable Analog, Cover Story, EDN, June 12 th 2003