RSS 2.0 Feed

» Welcome Guest Log In :: Register


Posts: 327
Joined: Jan. 2006

(Permalink) Posted: Mar. 30 2007,01:45   

Das Tard:    

That's interesting because five or ten years ago, New Scientist had a cover story on a laboratory evolution demonstration using FPGAs.  They used one to evolve a pair of audio tone detectors, utterly unaided by human intelligence.

Some background: A Gate Array is a chip with a very large number of basic logic gates on it - AND gates, OR gates, flip-flops, etc.  These gates are not interconnected as they come out of the factory.  Instead, the outputs of all of the gates go to a series of switches and crossbars that allow the output of just about any gate to be connected to the input of just about any other gate.  That means that you can "wire up" a custom circuit by setting the switches.

The first gate arrays were programmed at the factory.  You worked out which switches needed to be set to which positions to produce the circuit you wanted, then you sent a list of those switch positions to the factory and the factory "flipped" the switches while it was manufacturing the chip.  You got your chips a month or two later and the minimum order was usually a thousand chips.

In the next advance, Gate Array chips were produced whose switches could be Programmed in the Field by inputting a string of ones and zeros.  Typically, a circuit would have a Field Programmable Gate Array chip plus a small memory chip.  At startup, the memory chip would feed a string of ones and zeros into the FPGA which would flip all the switches necessary to produce the circuit you wanted and you were off.  This was a lot faster and cheaper than sending a list into the factory and getting your programmed chips two months later, especially if you didn't need a thousand of them.

The New Scientist article told how some scientists decided to evolve a series of ones and zeros that would convert a FPGA into a circuit that took in an audio signal and made one output pin go high if a certain tone was detected and a second output pin go high if a second tone was detected.

To do this, they loaded a computer with a string of totally random ones and zeros.  They programmed the computer to feed this string into a FPGA, input a series of audio tones and watch the output pins to see if either went high when the appropriate tone was detected.  If either pin failed to give the appropriate output, the string of ones and zeros was mutated slightly and fed back into the FPGA chip and the test was repeated.  At this point, the experimenters went out for a cup of coffee.

As I recall, one of the first steps towards evolving a tone detector circuit was when the outputs of two gates were connected together (normally a big no-no) and one was set to give a high output and the other a low.  This effectively short circuited the power supply, screwed up all the voltage levels in the FPGA chip - and the screwed up voltage levels converted the chip from digital to linear!

Several thousand iterations later, the chip was reliably detecting the first tone and a few thousand iterations after that, it was detecting both tones properly, exactly as desired.

It's kind of scary to think that DaveTard could have performed a pioneering labratory experiment demonstrating Darwinian evolution twenty five years ago and blew it.  I'd hate to think of him on our side.



Track this topic Email this topic Print this topic


Visits since January 19th, 2010: