Electronic – Is it possible to find the critical path in specific part of the design

fpgaintel-fpgaquartustiming-analysis

I have written RTL description of a circuit in VHDL which is hierarchical and I am using Altera Quartus II; my design meets timing. I had set 50MHz clock frequency (20ns period) constraint using create_clock for now.

I have a slack of about 10ns in the design at present. The design contains a Nios II connected with a custom design which is rather a complex design with multiple levels of hierarcy. Provided that I want to find the worst case path inside my custm design starting from a certain block and thus including all things under it (in hierarchy), how would I do that in TimeQuest? Is it possible? At present, the timing bottleneck seems to be the Nios II.

Best Answer

Even if you can find it, it is unlikely to be meaningful information: the tools stop optimizing the timing as soon as it meets the requirements (clock frequency). If you want to know the top speed of your design, or want to see where you should start optimizing further to make it work at higher clock speeds, you should synthesize your component independently, progressively increasing the clock speed until it no longer meets timing. Then you can look at what paths cause it to fail timing.

It won't exactly match the combined design since the I/O placement and available placement options won't be the same, but generally the critical path will be in the same part of the design. Sometimes, after integrating your component into a large design the critical path can change because for some components there are only very suboptimal placements left; I've mainly seen this happen for block ram. But there's nothing you can do about these cases other than looking at the specific combined design.