Forum Discussion
NCO IP uses far too many M10K blocks
When I add one (1) NCO from Intel's IP Catalog to my design, the M10K-block usage increases by 576, exceeding the capacity of the Cyclone V device.
The Intel NCO IP Core User Guide states that M10K-block usage for the Cyclone V in the multiplier-based configuration is only 2!
I am using 32-bit phase-accumulator precision and angular resolution, and 24-bit magnitude resolution. Output configuration is dual.
Why is this happening? Thank you.
11 Replies
- Nurina
Regular Contributor
Hi,
We did not receive any response to the previous answer that I have provided, thus I will put this case to close pending. Please post a response in the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you with your follow-up questions.
Regards,
Nurina
PS: If you find any comment from the community or Intel Support to be helpful, feel free to give Kudos. - Nurina
Regular Contributor
Hi,
I suspect that this is happening because the utilization of the memory block is not efficiently used. Can you attach your .qar file so I can reproduce the error? To generate .qar file, go to Project->Archive Project
Can you also let me know which version of Quartus you're using?
In the meantime this thread might help you: https://community.intel.com/t5/Intel-Quartus-Prime-Software/Why-does-infer-Quartus-so-many-M10k-blocks-in-this-case/m-p/174930
Thanks,
Nurina
- HypeInst
New Contributor
Hi Nurina,
thank you for your response and assistance. I am using Quartus Prime Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition. I have attached the associated *.qar file here. Please provide further guidance.
Thanks again,
HypeInst
- Nurina
Regular Contributor
Hi,
Apologies for the late reply, I'm still trying to investigate your problem here. Is there any files/scripts excluded from the file you attached?
Regards,
Nurina
- HypeInst
New Contributor
Hi Nurina,
there are no scripts, but there are excluded Verilog files that are not related to the NCO. The NCO fails fitting under the package that I provided to you, so you'll be able to reproduce the issue with that package.
Regards,
HypeInst
- Nurina
Regular Contributor
Hi,
I'm able to see that the NCO IP is using 576 M10K blocks.
Can you try using CORDIC generation algorithm instead of multiplier-based to see if it satisfies your requirement even though it has lower FMax.
Can you let me know why you want to use multiplier-based?
Regards,
Nurina
- Nurina
Regular Contributor
Hi,
So I tried using the CORDIC generation algorithm and it uses an expected amount of M10K memory blocks, but with a lower Fmax (also expected). Would this satisfy your design needs?
Regards,
Nurina
- HypeInst
New Contributor
Hi Nurina,
I prefer to use a multiplier-based NCO due to application performance requirements. I'll be happy for this issue to be reported to the correct department to be corrected in a future Quartus Prime release.
Thank you and regards,
HypeInst
- Nurina
Regular Contributor
Hi,
I've informed engineering about this issue and I'll let you know what they come back with.
Regards,
Nurina
- Nurina
Regular Contributor
Hi,
The user guide numbers are only for a particular (unspecified) configuration of the NCO.
In multiplier-based architecture, every two bit increment of the angular resolution doubles the required depth of the memories. At 16 bits, only 2 M10Ks are required. So you'll have to reduce the angular resolution to reduce the M10K usage.
Let me know if you have any more querries.
Regards,
Nurina
- HypeInst
New Contributor
Hi Nurina,
I understand. Thank you for your research time and response!
Regards,
HypeInst