Forum Discussion
CIC interpolator gives no output when stages are a power of 2
Hi folks,
I'm trying to simulate a CIC interpolator. I noticed that when the number of stages is a power of 2 (1,2,4 or 8, since the maximum is 12), I only get zeroes as the output. Any other value for the number of stages is fine. Here are screenshots of my IP configuration:
And here is one of my simulation. The signal_I_tmp is what I feed to the interpolator. It is an 8-bit signed which increments by one at each clock. Then, the interp_valid is the out_valid of the IP and it stays low.
If I only change the number of stages to 3 and choose "rounding up" instead of "none" as the output rounding method, it works:
So would any of you know why the powers of 2 don't work?
Thanks for your time,
Carl
16 Replies
- CheepinC_altera
Regular Contributor
Hi Carl, As I understand it, you seems to observe no output issue when trying to simulate the CIC interpolator with number of stages = power of 2. Would you mind to share with me a simple test design together with steps to perform the simulation? I would like to perform replication on my side to facilitate further debugging. Thank you very much. - CPoir
New Contributor
Hi cpchan,
Attached is a simple test design - the one I used to capture the above screenshots. To reproduce the issue:
- Unzip project
- Open ModelSim
- open CIC_Example_2_tb.mpf
- In the TCL console: source Interpolator/simulation/mentor/simulation.tcl
- In the TCL console: run 120 ps
Thanks for your time looking into this issue,
Carl
- CheepinC_altera
Regular Contributor
Hi,
thanks for sharing the files. Please allow me some time to look into it. I will update you on the progress by mid of next week. Please ping me if you do not hear back from me. Thank you.
- CheepinC_altera
Regular Contributor
Hi,
Sorry for the delay. I have been performing a number of tests on my side. I observe that with default configuration of the CIC Interpolator (stage = 12, rate change = 8, rounding = none), there is no issue with the simulation output using IP generated example design in Q18.1Pro. As I cross check with your Interpolator.qsys, I notice that the number of stage is set to 1 in your configuration. As I tested setting stage = 1 and run the IP generate example design, I can observe output data and valid = 0. Based on these observation, we can narrow down to the parameter "Number of stages" set in your failing case. Would you mind to increase this parameter to 12 to see if it helps on your side?
Please let me know if there is any concern. Thank you.
Best regards,
Chee Pin
- CPoir
New Contributor
Hi Chee,
Thanks for looking into this. It does work when I use the default value of 12 stages. My question is specifically about the powers of two, as I would like to use such values in my design.
Regards,
Carl
- CheepinC_altera
Regular Contributor
Hi,
thanks for your update. For your information, I am able to replicate the observation when using number of stages = 4 and 8, the output stuck at 0. There is no issue when I use 3,5 and 7. I have filed a case to Engineering on this to seek for further clarification. I will update you on the progress by mid of next week or as soon as there is any valid response. Please ping me if you do not hear back from me. Thank you.
- CheepinC_altera
Regular Contributor
Hi,
For your information, I am still pending for valid response from Engineering on this. I will continue to follow up and update you on the progress early next week or as soon as there is any valid response. Sorry for keeping you waiting.
As a workaround, just wonder if you are able to use non power of 2 to avoid gating your progress?
Also, a correction to my previous post, in my replication, there is no issue when I use 3, 5 and 7. The 8 is a typo. Sorry for the inconvenience.
- CPoir
New Contributor
Hi Chee,
Thanks for the update. In our design we specifically want one stage so we will wait for the response from the engineering team.
Carl
- CheepinC_altera
Regular Contributor
Hi Carl,
Thanks for the update. I have dropped Engineering separate email to facilitate response. Please ping me if you do not hear back from me next week. Sorry for the delay.
- CheepinC_altera
Regular Contributor
Hi Carl,
Sorry for keeping you waiting. I still have not receive valid response from Engineering. I will continue to ping them for response. Please ping me if you do not hear back from me by end of next week. Sorry for the delay.