Tony wrote:
There is another reason I want this information. I
want to create
self-modifying circuits, reconfigurable CPUs, etc. And I can't do that if
I am forced to use the manufacturers tools for every change in configuration.
Most FPGAs can't be used in that manner in a practical fasion anyhow.
Normally you have to put the FPGA into a special programming mode, during
which it loads its configuriation and is otherwise non-functional. The
closest you could get to self-modifying is to have an FPGA configuration that
computes a new configuration, writes it to external RAM, and then resets
itself (forcing a reconfiguration). This would almost certainly require
at least a small amount of external dedicated logic to select which
configuration memory to use and to control the timing of the update.
There was a line of FPGAs specifically designed for reconfigurable
computing; it divided up the FPGA into sections and allowed reconfiguration
at section granularity. I think it was made by either Actel or Atmel.