3

I would like to be able to dynamically generate specific circuits for transfer to an FPGA. It seems I cannot amend the bit file directly. Can I generate the bit file from a schematic representation, something like transistor 1 -> transistor 2 -> transistor 3?

Background: The goal is to hook up a genetic algorithm or other solution space explorer to an fpga, allowing it to explore different circuit configurations. The goal of this is to create a dynamical system exploiting non-linear properties on the fpga for use as a reservoir in a reservoir computing device.

Marcus
  • 43
  • 2
  • You might want to look at this question regarding some of the issues related to this. – Dave Tweed Sep 11 '13 at 14:12
  • 1
    First, FPGAs aren't configured at transistor level, and few of them do more than a small interface amount of analog. Obviously given a device and a compatible expression of design intent, there has to be a tool which can generate a bitstream or the part would be useless, however that tool is often proprietary and may take multiple minutes to execute on a high end desktop. Generally you are locked into the toolchain of the vendor or their partners, but there may be exceptions for very old devices or a few which have been reverse engineered. Simulating a simpler FPGA on a real one might work. – Chris Stratton Sep 11 '13 at 14:34
  • 1
    Why not simulate the FPGA behaviour? This should also help speed up the exploration of the solution space tremendously. – ARF Sep 11 '13 at 20:07

1 Answers1

2

This could be a very big job!

FPGAs are not bags of transistors (at least not user-accessible ones) - they are a sea of lookup tables and flipflops. You could potentially build a circuit full of LUTs and then use your GA to configure the content of them - you can manipulate the content of LUTs on the fly relatively straightforwardly (at least in Xilinx devices).

Xilinx used to have low-level bitstream manipulation tools available for research use, but I haven't heard of them for a long while.

In olden-times (mid 1990s), they had a family which you could feed random bitstreams to without fear of damage. Adrian Thompson (no relation!) used this to create a frequency discriminator:

http://www.informatics.sussex.ac.uk/users/adrianth/gp96/paper.ps

http://www.sussex.ac.uk/Users/adrianth/gp96/ref.html

Martin Thompson
  • 8,499
  • 1
  • 23
  • 44