03-07-2019 07:09 AM
Trying to get externally reload coefficients into an FIR. The FIR is single channel, 2 paths (I,Q), decimation (by 10), 100 taps (16 bit), clock = 80MHz, input rate = 5MHz. Pretty basic...
I've checked the 'Use reloadable coefficients' on the Filter options tab to get the reload and config ports. I'm pretty sure that the reload port is working (accepting coefficients) but the output doesn't change when I do a config port write (tdata = 0x00). I've also noticed that the output is attenuated by 8x with the 'Use reloadable coefficients' checked (regardless of trying to reload coefficients).
My test was to load a set of coefficients (all 0x0000), expecting the output to go to 0x0000.
I haven't checked or specified anything in the 'Coefficient Reload' tab. I tried specifing the same COE file (as on the Filter Options tab) to see if it might affect the 8x output attenuation but nothing happened.
FIR Compiler 7.2. I've read the documentation many times but can't find what I've missed.
Thanks in advance...
03-12-2019 06:54 AM
I tried sending a zip of the project but it was too big (58M) so I'll have to do something different (project just for the FIR I suppose).
03-13-2019 08:35 AM
I don't think I can reduce the project size enough to send as an attachment. What can you recommend as an alternative?
I've attached the FIR IP, Coefficients and coefficient reload testbench in case this is helpful.
For testing reload, I used the 10 tap coefficient file just to keep the testbench simple.
03-19-2019 10:32 AM
Problems solved (for now).
The issue with attenuated output had to do with bit growth and my choice of rounding. The clue was the sentence "For reloadable filters the worst case bit growth is used." in the FIR Compiler document.
The issue with reload not working seems to be due to a subtle simulation timing problem on the config valid signal. The result was that the FIR was not receiving a proper valid signal.