Yo Dawg, I Heard You Like FPGAs

When the only tool you have is a hammer, all problems look like nails. And if your goal is to emulate the behavior of an FPGA but your only tools are FPGAs, then your nail-and-hammer issue starts getting a little bit interesting. That’s at least what a group of students at Cornell recently found when learning about the Xilinx FPGA used by a researcher in the 1990s by programming its functionality into another FPGA.

Using outdated hardware to recreate a technical paper from decades ago might be possible, but an easier solution was simply to emulate the Xilinx in a more modern FPGA, the Cyclone V FPGA from Terasic. This allows much easier manipulation of I/O as well as reducing the hassle required to reprogram the device. Once all of that was set up, it was much simpler to perform the desired task originally set up in that 90s paper: using evolutionary algorithms to discriminate between different inputs.

While we will leave the investigation into the algorithms and the I/O used in this project as an academic exercise for the reader, this does serve as a good reminder that we don’t always have to have the exact hardware on hand to get the job done. Old computers can be duplicated on less expensive, more modern equipment, and of course video games from days of yore are a snap to play on other hardware now too.

Thanks to [Bruce Land] for the tip!

12 thoughts on “Yo Dawg, I Heard You Like FPGAs

  1. “Using evolutionary algorithms to discriminate between different inputs” yes! That’s exactly what I was hoping while I was reading your introduction. Reading about that experiment was fascinating, I’m excited to read more about the new version.

  2. You can read more about Dr. Thompson’s original paper here:
    “An evolved circuit,intrinsic in silicon,entwined with physics”


    It’s missing all the graphics though; does anyone have a copy of the original? I remember reading this years ago and the graphical layouts of the FPGA cells were fascinating in that they were seemingly random yet if you changed just ONE that isn’t even logically connected to the input or output wires it will still affect the success of the design.

    1. Since they couldn’t evolve a design, I’ve got a question. Can the dependence on physics of a simulating FGPA could somehow ‘bleed’ though the levels and still produce an evolved design for a simulated FPGA dependent on those physics?

  3. “Five individual logic cells were functionally disconnected from the rest— with no pathways that would allow them to influence the output— yet when the researcher disabled any one of them the chip lost its ability to discriminate the tones.” I remember this from the reports at the time. Reminded me of a story I heard about people training a neural net to discriminate faces, and it did really really well. When they looked at where in the image the net was looking (by checking which inputs had high weights) they found the net was ignoring the actual faces. Turned out that the entire control set was shot in a different location and all the net was doing was looking at the colour of the wall.

    This is the future of programming, machines that solve the problem you give them and not the problem you think you’ve given them.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.