FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6463 Discussions

NCO IP uses far too many M10K blocks

HypeInst
New Contributor I
1,885 Views

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.

0 Kudos
11 Replies
Nurina
Employee
1,843 Views

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


0 Kudos
HypeInst
New Contributor I
1,822 Views

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

0 Kudos
Nurina
Employee
1,792 Views

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


0 Kudos
HypeInst
New Contributor I
1,780 Views

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

0 Kudos
Nurina
Employee
1,759 Views

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


0 Kudos
Nurina
Employee
1,757 Views

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

0 Kudos
HypeInst
New Contributor I
1,741 Views

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

0 Kudos
Nurina
Employee
1,723 Views

Hi,


I've informed engineering about this issue and I'll let you know what they come back with.


Regards,

Nurina


0 Kudos
Nurina
Employee
1,716 Views

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


0 Kudos
HypeInst
New Contributor I
1,676 Views

Hi Nurina,

     I understand.  Thank you for your research time and response!

Regards,

HypeInst

0 Kudos
Nurina
Employee
1,695 Views

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.

Reply