Sign up ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free.

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.

share|improve this question
    
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
    
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 Answer 1

up vote 1 down vote accepted

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.