hi andrew,
i'm ccing aaron parsons on this, designer of the original fft blocks.
aaron might be able to comment on your email.
as far as i know, no one has ever used the overflow outputs
from the FFT blocks, so you may be the first person to debug
this.
best wishes,
dan
Andrew Martens wrote:
Hi all
I have been looking at the the butterfly_direct block in the FFT
subsection of the 10.1 library and have noticed a few things I hope
someone can help me with.
They relate to the logic that seems to be used to test for overflow
('of' output). There are 4 Slice blocks extracting the most significant
bits and testing if they are all 1's (with an 'and' block) or all 0's
(with a 'nor' block). There are two things that seem to be out of place
for me;
1. The blocks testing the real and imaginary components of each stream
are different. For the real component of a channel, all 4 Slices feed
the 'nor' block whereas, for the imaginary component, the 4th bit from
MSB feeds the 'nor' block twice and the 3rd doesn't. I would guess that
this is not meant to be the case?
2. Taking the four MSBs means that (for twiddle_general_3_mult as
twiddle block at least) that these are all bits above the binary point
i.e not fractional bits. The test for all 1's would make this a small
negative number (i.e close to 0) and the test for all 0's would be a
small positive value, just above 0. Is this logic testing for overflow
and underflow by testing if the bits are all '1' or '0' respectively?
There is probably a clever answer to this or I have misunderstood
something somewhere. Could someone have a look at this and let me know
what they think.
Thanks
Andrew