Forum Discussion

paramProd's avatar
paramProd
Icon for Community Manager rankCommunity Manager
40 minutes ago

on chip memory does'nt work with 150 MHz on Cyclone V E development kit_FA

hello dear Intel,I am using Cyclone V E development kit. I set up a simple nios system(clock-pll-nios II processor- onchip memory-jtag uart) . This system runs with 50 MHz clock frequency. When i raise clock frequency to 150 MHz , system gives me an error (processor pausing and reset failed ). i can work with sdram at 150 MHz but . couldn't run with on chip memory. Does anybody know why this happens

2 Replies

  • Thank you for your inquiry. To ensure an accurate response, your request has been routed to an Altera application engineer for further review and assistance.

  • paramProd's avatar
    paramProd
    Icon for Community Manager rankCommunity Manager

    Good question — this is a timing closure issue with the overall Nios II system, not with the on-chip memory blocks themselves._TEST


    **On-chip memory is not the bottleneck**


    The Cyclone V on-chip memory blocks have a maximum operating frequency of 315 MHz for M10K and 420 MHz for MLAB. Cyclone V Device Handbook Volume 1: Device Interfaces and Integration So the memory blocks themselves can easily handle 150 MHz. The problem is elsewhere in the system.


    **The real culprit: system-level timing closure**


    When you run the full Nios II system (processor + interconnect fabric + on-chip memory) at 150 MHz, every element of that clock domain — including the Nios II pipeline, the Avalon interconnect, and the memory interface logic — must meet timing at 150 MHz. If any path fails, you get exactly the symptoms you describe: processor hangs or resets unexpectedly.


    With SDRAM at 150 MHz, the memory controller typically operates in its own clock domain (the UniPHY or soft controller uses a separate clock), so the Nios II processor core may still be running at a lower effective clock frequency on the control path. That's why SDRAM "works" — the processor isn't necessarily clocked at 150 MHz end-to-end in that configuration.


    **What to check and fix**


    To achieve maximum memory block performance, use a memory block clock that comes through global clock routing from an on-chip PLL and set to 50% output duty cycle. Cyclone V Device Datasheet Make sure your 150 MHz clock is generated by a PLL output (not directly from an input pin) and routed on a global clock network.


    Beyond the clock source, run a full timing analysis in Quartus Prime Timing Analyzer after compilation. Apply timing constraints and verify timing with Timing Analyzer. "AN 796: Cyclone V and Arria V SoC Device Design Guidelines" Look for setup-time failures on the Nios II processor paths — those are the most common cause of processor hangs at elevated clock frequencies.


    A few practical steps:


    • Check the Timing Analyzer for the worst negative slack (WNS) at 150 MHz — if it's negative, the design won't run reliably.
    • Try enabling retiming and optimization options in Quartus Prime (Performance optimization, physical synthesis).
    • If the processor can't close timing at 150 MHz in your chosen speed grade, consider running the Nios II at a submultiple (e.g., 100 MHz from the same PLL) and using a faster clock only where needed.
    • Verify that the Nios II IP core configuration (cache sizes, pipeline depth — /f vs /e vs /s) is appropriate for the target frequency.



    The bottom line: 150 MHz is achievable for Cyclone V Nios II systems in faster speed grades with proper constraints and optimization, but it requires timing closure of the full processor subsystem — not just the memory blocks.