F
Frédéric Lochon
Guest
Hello,
I have a VHDL project which is implemented in a Virtex5. This Virtex5 is
connected to a LAN chipset.
I use this system to communicate with a PC, and more precisely this
system gets "many" 32-bits parameters.
And here is the problem: such a high number of 32-bits parameters (more
than 100) increases the synthesis and implementation time quite
significantly because of the number of registers inferred.
So, I'm looking for a way of optimizing such a "high" number of
registers. Because of how the parameters are acquired in the FPGA
(through the "slow" LAN compared to an FPGA), I can accept that the
storage of these parameters (which are used in several different places
in the design) is not "fast", i.e. if there is a high propagation time
through the whole design, it's ok.
In other words, is there a way of storing such a number of parameters
which would not degrade the synthesis and implementation times knowing
the I have no criteria on the performance.
I can very easily handle up to 1 ms (which is *huge* compared to the
50MHz clock) between when the parameters gets into the FPGA and when I
can use them in different VHDL modules (possibly at the same time), but,
once they are usable, several parameters may be accessed at the same time.
My first thought was about using some Coregen IP which would reduce (at
least) synthesis time, for example distributed RAM. But I don't think it
would be that efficient (I would use something like 4 times more bits
than necessary).
I also thought using a RAM with different input and output width but the
ratio is quite small.
In the past, I tried using "partitions", but ISE (at least 9.1) doesn't
handle partitions very well, and was even more buggy.
If someone has any idea, I'm interested.
Thanks in advance.
--
L'equation de la vie est si complexe,
que croire au libre arbitre est une bonne approximation.
I have a VHDL project which is implemented in a Virtex5. This Virtex5 is
connected to a LAN chipset.
I use this system to communicate with a PC, and more precisely this
system gets "many" 32-bits parameters.
And here is the problem: such a high number of 32-bits parameters (more
than 100) increases the synthesis and implementation time quite
significantly because of the number of registers inferred.
So, I'm looking for a way of optimizing such a "high" number of
registers. Because of how the parameters are acquired in the FPGA
(through the "slow" LAN compared to an FPGA), I can accept that the
storage of these parameters (which are used in several different places
in the design) is not "fast", i.e. if there is a high propagation time
through the whole design, it's ok.
In other words, is there a way of storing such a number of parameters
which would not degrade the synthesis and implementation times knowing
the I have no criteria on the performance.
I can very easily handle up to 1 ms (which is *huge* compared to the
50MHz clock) between when the parameters gets into the FPGA and when I
can use them in different VHDL modules (possibly at the same time), but,
once they are usable, several parameters may be accessed at the same time.
My first thought was about using some Coregen IP which would reduce (at
least) synthesis time, for example distributed RAM. But I don't think it
would be that efficient (I would use something like 4 times more bits
than necessary).
I also thought using a RAM with different input and output width but the
ratio is quite small.
In the past, I tried using "partitions", but ISE (at least 9.1) doesn't
handle partitions very well, and was even more buggy.
If someone has any idea, I'm interested.
Thanks in advance.
--
L'equation de la vie est si complexe,
que croire au libre arbitre est une bonne approximation.