Hacker News new | ask | show | jobs
by jwm 5553 days ago
> it would be fascinating if someone came up with the analog equivalent to a CLB in an FPGA and an HDL for describing non-linear computation

What you have described do indeed exist as Field Programmable Analog Arrays (FPAAs).

The Wikipedia article (http://en.wikipedia.org/wiki/FPAA) gives a good overview of them, but basically they consist of multiple configurable analog blocks (CABs), which can be configured to perform some analog operation on a signal, and multiple CABs can be connected together to form a signal path. All the signal paths and CAB parameters are defined by the digitally loaded configuration. Very interesting!

The one's I have briefly used (many years ago) were the Anadigm FPAAs. Examples of the operations the CABs (or "CAMs") can do are signal filtering, rectification, addition, multiplication, comparison and integration/differentiation over time (http://www.anadigm.com/_doc/PR021100-0024.pdf). These devices to me are really targeted at analog signal processing applications (audio, instrumentation etc). If I was an EE (which I am not) I might be able to provide a decent evaluation of them, but they seemed like they would be pretty useful for this kind of thing.

My project using them was to get the FPAAs to perform some simple physics calculations, based on previous work by another student. One example was modelling the height of a moving projectile under gravity. I can't remember the specifics (sorry!) but input voltages were used to specify the equation parameters (mass, initial force), the CABs transformed these voltages according to the given motion equation and the output voltage was the height at time t. And it worked ok! A computer used Digital-to-Analog converters to hold the input voltages steady for the FPAA circuits, and sampled the output using Analog-to-Digital converters.

While this worked for simple examples, the whole system was limited to 8-bit effective values by the Signal-to-Noise resolution of the equation signal path. While for the FPAA device itself has a high signal-to-noise ratio that effectively gives a smallish 20 bit resolution (~= SNR 120db), the extra wiring and components in the rest of my circuit added enough noise to lower this down to 8bit (~= SNR 48db). (Will happily admit I am no great circuitsmith:). Also there were some caveats like hard limits to the parameters of the CABs (restricted internally by the physical limits of the variable capacitors and resistors), which limit quantities used in the analog equations and restricts its general purposefulness.

Some of the things analog computers can do are interesting, like "instant" multiplication and division. However the difficulty of keeping thermally and electromagnetically induced noise low to get a high resolution signal (e.g. pushing past SNR 120db) in analog systems is one of the reasons why we don't really see them being used in computation any more. This is also one of the reasons why digital circuits are much much easier to work with as you no longer (really) have to worry about noise affecting accuracy, from the transistor level up to the PCB or long cable level.

This kind of thing explains the low 8-bit resolution from the device in the article.

> The technology allows a resolution of about 8 bits; that is, they can discriminate between about 2^8 = 256 different values (different probabilities) between 0 and VDD

High resolution analog seems to be just hard to do in practice.

(Aside: Also if you take with the width of the known universe, and discretize this distance by Planck length intervals, you only need ~220 bits to represent the position of an object on this line. So only ~3*220 bits for (x,y,z). Binary rules!)

So, I'm more of an digital fan for general purpose computing myself:) However analog computers are hella cool all the same.

EDIT: This post is long. You'll have to excuse the fact that I was finally happy for some information from the old undergrad thesis to see the light of day. TLDR: Analog computers are cool, but it seems they are limited in resolution and general configurability. Use FPGAs or GPUs or even poor old CPUs instead.

EDIT2: Rereading your post, maybe you were thinking about some kind of FPGA+FPAA hybrid? An FPGA, but with some with analog blocks and ADCs, DACs inside?

1 comments

A mix of FPAAs and FPGAs, rather than all FPGAs or all FPAA. The DSP elements in newish FPGAs is a nod in this direction.

High resolution analog seems to be just hard to do in practice.

That is exactly the challenging bit. And something I was trying to figure out if Lyric had actually made an improvement on. If you could do computation in an analog matrix and still pull 32 bits reliably out of it, that would be something new.