Hi Dave
The only way that the script could generate logic that would result in correct
data would be correct if;
1. The Relational block could get a latency of 1 when no latency was specified
i.e default operation has latency of 1 in that toolflow version.
You're right! That's exactly the problem. In System Generator version
13.3.4175 (at least in the copy of it that I use), the Relational block has a
default latency of 1. In System Generator version 14.2.4415 (at least the copy
of it that I use) the Relational block has a default latency of 0.
Well, I am certainly glad that there is a rational explanation. So the
FFT has not been broken for ~2 years or so, just since anyone upgraded
their tools.
I looks like the mirror_spectrum_init function is one of a few places in the
casper libraries where a Relation block is placed without explicitly setting
its latency. This will result in different latencies (and therefore overall
behavior) for such blocks depending on which version of the System Generator is
used.
I only found two other places where this happens:
1) address_gen_vacc_v2_mask,m - This will affect the dram_vacc block.
2) delay_wideband_prog_init.m - This affects the delay_wideband_prog block, but
only when it is configured to use Single Port BRAM. Unfortunately, I think
that block might have other issues because I could not get a test model to
function as expected for either System Generator version.
It looks like your updates to the mirror_spectrum_init script still leave the
latency of the Relational block unspecified. It would be great if you could
add an explicit latency value to that block. That would make your update
compatible with both older and newer versions of System Generator.
I will fix this immediately. I guess that we should really explicitly
set every parameter that affects generated logic (latencies, number of
bits, arithmetic types etc) in light of this, script behaviour changing
between toolflow versions is not cool.
I just compared the latencies of all the Xilinx blocks between 13.3.4175 and
14.2.4415. Only the Relational block had a change in latency so no other
problems of this nature are likely to be lurking out there.
That is a relief, thanks for taking the time to work through this.
Regards
Andrew