Forum Discussion

KittyBumpkins's avatar
KittyBumpkins
Icon for New Contributor rankNew Contributor
5 years ago

Can't find nets in timing analyzer

I have a Cyclone IV design with 3 ROMs in it. Each ROM is 256 words by 256 bits. After I compile the design the RTL netlist viewer shows all 3 ROMs and the compilation report shows that the memory resources for all 3 ROMs was used. If I look for the ROM outputs with the Quartus node finder I can see the ROM outputs, all 256 of them, for each ROM. I do this in the post-compilation view, so I know these nets are in there and didn't get merged or dropped.

The problem is that in the timing analyzer only a few of the ROM outputs can be found and for one of the three ROMs nothing at all can be found. If I add a reference to the missing ROM in the SDC file the timing analyzer flags it as an error because it can't find that ROM.

Has anyone had a similar problem with the timing analyzer? Is this a known bug?

17 Replies

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    What options are you using in Report Timing to try to find the nets? Is your design fully constrained for timing with a .sdc file (clocks and I/O at a minimum)?

    • KittyBumpkins's avatar
      KittyBumpkins
      Icon for New Contributor rankNew Contributor

      The only options I'm using in Report Timing are the "from" clock and "To" clocks, "Setup" is selected, "Detail level" is "Full path". In the Targets section, I then click the From search button.

      In the Name Finder that pops up, I select get_pins and a filter of *rom*. My ROMs have instance names of rom0, rom1 and rom2. When I click the List button I get the data outputs for rom0 and rom1 and nothing for rom2. I should see 256 data outputs for each ROM, but I only get the outputs for rom0 and rom1.

      Yes, I have my SDC file setup with clocks and I/O ports.

      • sstrell's avatar
        sstrell
        Icon for Super Contributor rankSuper Contributor

        Where is the output of that third ROM going? Other logic or to output pins? There must be something incorrect in your filtering for the report to not be seeing these paths.

        I presume you are using the post-fit (Standard edition) or final (Pro) timing netlist.

  • I'm posting some screen shots showing what I'm seeing. These images show searching for rom2 in the timing analyzer and in the Quartus node finder. Note that rom2 appears in the node finder but not in the timing analyzer.

    • sstrell's avatar
      sstrell
      Icon for Super Contributor rankSuper Contributor

      Try turning on the Hierarchical option in the Name Finder. Without that, wildcards only search the current hierarchical level you've specified (you'd have to do something like *|*|* etc. to search further down). It looks like that 3rd ROM might be further down in the hierarchy.

      • KittyBumpkins's avatar
        KittyBumpkins
        Icon for New Contributor rankNew Contributor

        With Hierarchical on, Compatibility mode gets turned off and wild cards don't work. But if I clear the filter and select get_pins it seems to list all pins in the design in alphabetical order. Still no rom2.

        In any case, all 3 ROMs are in the same Verilog module and therefore should be at the same hierarchical level.

  • SyafieqS's avatar
    SyafieqS
    Icon for Super Contributor rankSuper Contributor

    Hi Nuno,


    Can you double confirm the net in TA node finder and can you use latest Quartus as well if it is possible. It has a lot of fixes there.




    • KittyBumpkins's avatar
      KittyBumpkins
      Icon for New Contributor rankNew Contributor

      I'm using Quartus Lite 20.1.1. I checked the Quartus download webpage this morning and 20.1.1 is the latest available download. I checked again TA name finder with the same results as before, please see attached screen shots. I also attached the fitter RAM summary report that shows that all three ROMs in the design post-fit.

  • SyafieqS's avatar
    SyafieqS
    Icon for Super Contributor rankSuper Contributor

    Hi Nuno,


    Can you attach the qar here and step to reproduce it. This could be a bug but need to check it first.


    • KittyBumpkins's avatar
      KittyBumpkins
      Icon for New Contributor rankNew Contributor

      Project QAR is attached.

      Steps to reproduce:

      1. Compile project with Quartus 20.1.1 (Build 720 11/11/2020 SJ Lite Edition)
      2. Open Timing Analyzer
      3. In Timing Analyzer: create timing netlist, read SDC file, update timing net list
      4. In Timing Analyzer: View->Name Finder...
      5. In Name Finder: Set collection to get_pins
      6. In Name Finder: Set filter to *rom0* and click "List" button
      7. Note that pins for rom0 are shown
      8. Change filter to *rom2* and click "List" button
      9. Note that no pins are shown and "No matches found" is displayed.
      10. In Quartus main window compilation report: Fitter->Resource Section->RAM Summary
      11. Note that rom0, rom1 and rom2 are all present

      Additional note: In the Quartus main window, using View->Utility Windows->Node Finder and selecting the "Pins: all & Registers: post-fitting" filter produces similar results, i.e. rom0 and rom1 can be found but not rom2.

  • SyafieqS's avatar
    SyafieqS
    Icon for Super Contributor rankSuper Contributor

    Hi Nuno,


    I can reproduce the issue. Seem this Quartus Standard is also affected by this. In TMV post fit as well, filter for pin rom0 and rom1 can be searched but not rom2. I will forward this to developer and probably will take sometime due to legacy device. I will put this to close pending and you may create new case refer to this case asking for update.



  • Thanks for looking into this. I don't know what you mean by "create a new case", there is no way of creating support cases with Intel. I had to call Intel corporate to get this issue escalated and I just got lucky.