The title is pretty clear, I would like to know if there is any circuit or an IC capable of dealing with signals to perform algorithmic sort of decisions, I mean, as you can solve differential equations using op-amps, I can design a circuit which output is the GCD of two input signals, finding them with Euclid's algorithm.
-
\$\begingroup\$ While I can't understand the specifics you are asking about, have you looked into simple logic chips (And, Or, Not, etc) with transistors? \$\endgroup\$– PasserbyCommented Apr 23, 2013 at 2:55
-
4\$\begingroup\$ I'm not really sure I understand the question, but a comparator can be used to make a binary decision based on an analog value. \$\endgroup\$– B PeteCommented Apr 23, 2013 at 2:57
-
1\$\begingroup\$ What is the GCD of 2.31 and 4.23? \$\endgroup\$– The PhotonCommented Apr 23, 2013 at 3:05
-
\$\begingroup\$ You're reinventing the analog computer en.wikipedia.org/wiki/Analog_computer \$\endgroup\$– Scott SeidmanCommented Apr 23, 2013 at 3:14
-
\$\begingroup\$ Discrete values of input signals ofcourse \$\endgroup\$– Sebastian ValenciaCommented Apr 23, 2013 at 3:17
3 Answers
Analog computers
Analog computers can do much of what you want to do. Essentially, they consist of analog block functions that you can assemble as needed like building blocks, and twiddle knobs to tweak parameters. Some had comparators, which you would use to drive yes/no decisions based on the resulting analog signals. I've seen these beasts, which are things of the past, used to estimate parameters in differential equations. Some had essentially swappable breadboards, which let you change simulations easily. I don't believe you can still buy analog computers, but if you know what your morphology will be, you can certainly build the equivalent with op-amps and passives. This may be within your reach if your equations are simple enough (though I don't know the algorithm you would use to take on the problem you describe). http://www.analogmuseum.org/english/impressions/eai_tr48.jpg
Neuromorphic circuits/Neural Networks
Another strategy is to use MANY stereotypical nonlinear analog building blocks, connect them in strange ways, and let complicated algorithms tweak the weights of connections between the hundreds to thousands of elements. This is called neural computing. The theories are analog, but most are digitally implemented. There are some custom made integrated circuits (some used to be commercially available, some may still be) that actually do analog implementations. Just last week, I saw video of a neuromorphic CCD that was exquisite at sensing image motion. There are academic journals, like Neural Computation, dedicated to these pursuits.
This approach is likely beyond what you want to implement. http://lowercolumbia.edu/facultyResource-crhode/NNimages/NasaNeuralNetwork.jpg
-
\$\begingroup\$ Analog computers are good for simulating differential equations and probably a bunch of other things, but OP's example was calculating the GCD of two whole numbers...Not really a great application for an analog computer. \$\endgroup\$ Commented Apr 23, 2013 at 16:16
-
\$\begingroup\$ I agree. I was trying to hit the diffeq part, which OP said would enable the process. Neural net should be able to handle the GCD, given enough output elements. \$\endgroup\$ Commented Apr 23, 2013 at 20:35
What you want is clear enough in general terms BUT not specific enough to give you a useful answer. ie the answer is "Yes."
If you gave a specific real world case of what you wanted to do (as opposed to focusing on how) it would probably help. (How is also good BUT knowing more about 'what' first is best).
What you describe MAY be quite easy but it's not 100% certain from your description.
If you can use as many as ICs as needed you can build what you want from standard parts.
If you want a single IC it gets harder. You can get 'PSOC' system on a chip (the SOC in the name) ICs that incorporate a microcontroller plus analog circuitry that allows hybrid systems. They would probably do what you want in one IC. Digikey offerings here and here
For $2.19 in 1's you get this Cypress CY8C22113 and CY8C22213
Containing (as well as much else)
3 Rail-to-Rail Analog PSoC Blocks Provide:
- Up to 14-Bit ADCs
- Up to 9-Bit DACs
- Programmable Gain Amplifiers
- Programmable Filters and Comparators
4 Digital PSoC Blocks Provide:
- 8- to 32-Bit Timers, Counters, and PWMs
- CRC and PRS Modules
- Full-Duplex UART
- SPI Masters or Slaves
- Connectable to all GPIO Pins
If only discrete values of the input signals are allowed, as you mention in comments, then you are talking about a digital circuit. There are zillions of digital ICs available that you could use to build essentially any digital circuit you like. Just look in the "logic" section of the websites of TI, NXP, On Semi, or Fairchild (and probably a couple of others I've forgotten).
AND, OR, NAND, NOR and NOT gates are all available as individual chips, and with these you can in principle construct any digital circuit you wish. At a higher level of abstraction, flip-flops, latches, memories, shift registers, counters, and other combinations of the basic gates are also available as chips.
Op-amps aren't really appropriate for doing calculations on discrete-leveled inputs (although you could probably figure out a way to do it if you were stuck on a desert island with only a bag of 741's and some resistors). Op-amps are frequently used, in a comparator configuration, to produce a discrete-valued output based on the level of a continuously-variable input.
-
\$\begingroup\$ I hope you have some solar-cells on this island too... \$\endgroup\$ Commented Apr 23, 2013 at 4:29
-
2\$\begingroup\$ @NickHalden You have to make a battery out of coconut juice and saltwater, like on Gilligan's Island. \$\endgroup\$ Commented Apr 23, 2013 at 4:29
-
\$\begingroup\$ Op amps which peg cleanly to the rails could be used to build a circuit which passes through one of two analog input signals based upon whether a third signal was above or below some threshold. \$\endgroup\$– supercatCommented Apr 23, 2013 at 18:57
-
\$\begingroup\$ Whoever downvoted, please explain what you disagree with. \$\endgroup\$ Commented Apr 24, 2013 at 17:15