On Nov 16, 2011, at 10:28 PM, Chuck Guzis wrote:
On 16 Nov 2011 at 18:44, Eric Smith wrote:
> I've done a limited amount of
asynchronous logic in Spartan-3
FPGAs.
Xilinx says don't do it, and the static
timing analysis tool throws up
its hands, but with a little effort it seems possible to do it.
However, I wouldn't want the job of implementing a large async circuit
in an FPGA. Life's too short.
Do you think you'd have any trouble working up an implementation of
this 19-year old design in FPGA?
http://brendaluderman.info/cv/papers/An_Asynchronous_Multiplier.pdf
Nothing big, say 32x32 bit.
I'm just trying to figure out how far this FPGA thing can be pushed.
You could do that. I've only skimmed the paper, so I can't say for sure if it
does, but if it requires specific timing relationships between any of the asynchronous
parts (e.g. X arrives later than Y), you might find it a little hard without setting lots
of timing constraints on individual nets.
The main reason for that is that while each LUT and flip-flop will have a basically
identical propagation delay, the implementation tool will decide where they go on the die.
Obviously, different routing lengths make a pretty big difference (even more so in
silicon than on a board; sometimes on the order of several ns).
I might give it a shot and see what comes out when I've got some spare time.
- Dave