Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
17 years ago

Long place and route after adding logic lock regions

In the past, when quartus could not fit designs, it usually bailed on me after about 8 hours of place and route.

I added logic lock regions so I could isolate partitions for timing and close timing on each individually. However, after adding them, p&r has been running for 44 hours.

Has anyone run p&r for this long and had a successful result? The logic utilization is about 55%. My main problem is interconnects for the timing.The logic lock regions were set to auto size/location (this is my first iteration).

Also, if anyone knows of a nice guide on timing closure with quartus, it would be awesome :D. I've only become frustrated with TimeQuest and chip planner and the altera docs. It's for a Stratix II GX chip.

15 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I found that the cause for the large fitter times is a huge combinational loop i have into the design, as the design is intended to be made in silicon and this combinational loop is entirely necessary, what should i do to inform the tool that in order to reduce fitting time???

    i really need help with this, i need to prototype my design for testing and the design tool is not helping me!!!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    How is a large combinational loop causing long fit times? I'm just curious how the two were correlated, as a long comb loop shouldn't necessarily cause the fit time to go up(yes, the logic of it causes it to go up.) More info on where the compile time is spent is really necessary to make a better guess for solving the problem, since the fitter runs many differnet processes and has different reasons for why compile times could go up. If you want, .zip up your .fit.rpt and attach it, as that provides a lot of information. (I understand you may be sensitive to this and may not be able to...)

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    the large combinational loop is tristate communication logic implemented with multiplexers, i've checked by adding registers to the outputs of the logic feeding the communication structure and compile time goes from 1 hour to 2 minutes, somewhere in the handbook is a warning about combitational loops causing the design tools to go into large computational loops, i don't know if this may be the cause of my problem. The current solution that i am exploring is to partition the design leaving the interconection logic out of it and then adding it, but i am kinda new with altera tools so any suggestions will be appreciated.

    Thanks for your help
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Many EDA tools take longer time to process (and break) combinational logic loop into implementable logic structures. So, I wouldn't be surprised if Quartus II took a longer time with logic loops in the design.

    Knowing how much time was spent in placement and how much time was spent in routing could help pin point the issue much further. Again, do you have any physical synthesis options turned on?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    If you can submit the design, please file a service request at altera.com. That does not sound right, or at least it sounds like something Altera should fix. As sw181 said, I'd be curious if it's in placement or routing, and though it's possible, I'd be surprised if it's directly either. Some other thoughts are that it could be physical synthesis(a portion of placement), as perhaps the re-synthesis algorithm mistakenly loops into an algorithm too deep. Another thought is that the timing analysis takes too long. How long does your TAN/TimeQuest process run at the end? Note that during placement the timing engine is called many, many times to analyze it's current placement. It's a condensed call(i.e. each one is much shorter than the final call), but if some timing analysis loop blew up, that could explain it too.