Field programmable analog arrays, mixed signal field programmable gate arrays. Yes, yes, these would be the ultimate ideals in having reprogrammable hardware, but they are hard to come by.
20200326/https://en.wikipedia.org/wiki/Field-programmable_gate_array
20200326/https://en.wikipedia.org/wiki/Field-programmable_analog_array
Alas, there is an easier and more commercially abundant solution. With some lateral thinking, of course it makes sense. I’ve seen the “bilateral switch” solid-state analog switching chips that team together two separate analog switches into one chip. Why not make such a chip that teams together a grid of such switches on a matrix of wires? Indeed, I’ve found such a chip right here. You can get either an 8x8 or 16x8 grid, and every single switch is individually accessible via an address bus.
20200326/DuckDuckGo programmable interconnect grid
20200326/DuckDuckGo programmable analog grid
20200326/DuckDuckGo programmable semiconductor switch array grid matrix
20200326/https://www.digikey.com/product-detail/en/microchip-technology/MT8809AP1/MT8809AP1-ND/4309754
20200326/https://www.digikey.com/product-detail/en/microchip-technology/MT8816AP1/MT8816AP1-ND/4309764
20200326/https://www.digikey.com/product-detail/en/microchip-technology/MT8816AF1/MT8816AF1-ND/4309763
20200326/https://www.microsemi.com/document-portal/doc_download/127034-mt8809-datasheet-sept11
Okay, that’s all good and nice from a necessary features standpoint, but how do you use this as a programmable array of discrete analog components? Here’s how it’s done. In the most flexible implementation, you use a square N x N grid. All discrete analog components, input wires, and output wires are placed on one side of the N grid, and the other side of the N grid is strictly used for wiring together components.
Of course, you may realize that once you wire together a bunch of components and then want to stick an input or output wire to one of them, you’re just sharing the same wiring island, so why not just use one of the pins on the reserved N interconnect wire side when you need inputs and outputs? Indeed, you can make this step and revise the specifications as follows. One side of N pins exclusively wires to the programmable analog components, and the other side of N pins exclusively serves for I/O pins.
Here is a great article on Digi-Key about the fate of Field Programmable Analog Arrays (FPAAs). What happened to them? Why did they seem to go nowhere? As it turns out, due to the often specialized, small, and very limited use of analog components in a larger circuit, the benefits never really outweighed the costs, so they simply didn’t catch on.
20200326/DuckDuckGo digikey field programmable analog array
20200326/https://www.digikey.com/en/blog/whatever-happened-to-programmable-analog
Nevertheless, I must concede. There is a clear use of limited-side field programmable analog arrays within many types of hobby class circuits that I can think of. Often times I find myself with a small handful of simple circuit designs that involve analog components and simple wiring changes. I pretty much never need to use the multiple designs simultaneously… so therefore I could just create one board with the components on it and programmatically rewire them as I need.
Or, even better… in some cases I could probably literally “multitask” my field programmable analog array.