UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor ed.robinson
Visitor
10,891 Views
Registered: ‎02-09-2010

Best case/worst case timing reports

Hi,

 

I come from an ASIC background and am fairly new to FPGAs. When doing timing analysis on ASICs we would generate at least Best Case (low temp, high voltage, fast process corner) and worst case (high temp, low voltage, slow process corner). For FPGAs the process corner isn't relevant, but I guess the temp and voltage are.

 

I'm using a Virtex-4 and the ISE 11.1 Web pack and as far as I can see, there's only one possibility to set the temp/voltage. 

 

So my question is this: Is it necessary to run best case/worst case timing analysis for FPGAs, or is it somehow accounted for in the tool?

 

If it is necessary to run best case/worst case, then how is this set up?

 

Thanks.

0 Kudos
13 Replies
Scholar austin
Scholar
10,881 Views
Registered: ‎02-27-2008

Re: Best case/worst case timing reports

Ed,

 

Nope, all you have to do is meet the timing, with enough slack to take into account the worst peak jitter (1/2 peak to peak system jitter).

 

We did the hard work already, so you don't have to (when we designed the family, we already took into account the fastest process, voltage, temperature corners so any design will be "correct by construction").

 

 

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Visitor ed.robinson
Visitor
10,874 Views
Registered: ‎02-09-2010

Re: Best case/worst case timing reports

Hi Austin,

 

Thanks. So in that case I should set my temp and voltage in ISE to worst case? - eg 85C, 1.14V?

 

When you say peak to peak system jitter, do you mean the jitter of the system clock? For example, in our system we have a VCXO providing the clock input to the FPGA, which then goes to a DCM. So we would take 1/2 of the VCXO's peak to peak jitter?

 

And finally, is there some way to set a value in ISE for "1/2 peak to peak system jitter", which is taken into account in the timing report? Then ISE can flag paths automatically and I don't have to go through the whole timing report looking for paths with slack < X? 

 

Cheers,

Ed

0 Kudos
Scholar austin
Scholar
10,867 Views
Registered: ‎02-27-2008

Re: Best case/worst case timing reports

Ed,


The timing, place and route, is automatically done at the worst PVT.  You do not need to do anything more (other than choose Commercial, Industrial, or Military grade components, so it knows which max Tj should be used, and which speedsfiles).

 

The worst case voltage is assumed from the specifications in the data sheet.


The system jitter includes the jitter from all the sources that the tools know and understand.  It is up to you to add the peak system jitter.


Than can be done by editing the period constraint ion the .ucf file, or it can be added in our tools when you set up constraints that way.


I would add at least 300 ps to the overall 1/2 ssytem jitter number than the tools find they need (600 ps of total p-p system jitter additional).

 

This means that if a report  omes back with 0 slack, you know it is still meeting timing (if only just barely),

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Observer richkeefe
Observer
8,572 Views
Registered: ‎01-24-2011

Re: Best case/worst case timing reports

Hi Austin,

Can you provide a technical document reference for why best case timing analysis is not needed? Like Ed, I come from an ASIC background and am accustomed to performing STA at all corner cases. What construction within the FPGA makes this unnecessary?

Thanks,
Rich Keefe
0 Kudos
Teacher muzaffer
Teacher
8,562 Views
Registered: ‎03-31-2012

Re: Best case/worst case timing reports

Actually best case analysis is needed and it is done. It is called fast path and only holds are analyzed. Just like ASIC, worst case corner is used for setup (or slow or late) and best case is used for hold (or fast or early) corners. If you guarantee that worst case setup passes, it is guaranteed that best case setup will also pass. The same goes for best case hold. If you can meet it, worst case hold will also pass.

Of course for really small process feature size and large die, on chip variation becomes an issue and one needs to do more interesting corners ala slow clock path and fast data path where different cells are characterized with different conditions and monte carlo simulations are run to simulate cell delays varying across the die. I think these are all taken care of by the extra margin Xilinx characterization adds to their timing analysis.

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Teacher muzaffer
Teacher
8,562 Views
Registered: ‎03-31-2012

Re: Best case/worst case timing reports

Austin,
I think there is a little confusion here. Worst case corner is enough for setup analysis but for hold analysis (or fast path) best case PVT corner is needed and Xilinx tools do a best case run for hold.

 

If one looks at a timing report from Vivado, the following cases can be found:

 

Max Delay Paths at Path Type: Setup (Max at Slow Process Corner)

and

Min Delay Paths Path Type: Hold (Min at Fast Process Corner)

So both slow process and fast process corners are used in timing analysis.

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Observer richkeefe
Observer
8,547 Views
Registered: ‎01-24-2011

Re: Best case/worst case timing reports

Hi muzaffer,

 

Thanks for chiming in. I'm not sure that the tool documentation supports your implication that fast path analysis is done at best case PVT. UG612 (v 13.2) July 6, 2011 makes the statement on page 50, "To report the hold paths for each constraint, use the -fastpaths switch in trce..." It seems that this tool switch only invokes hold path reporting, with no implication on the PVT corner this analysis is done. Certainly, nothing explicit is stated in the report concerning the PVT condition. So, confidence in knowing the condition is not very high.

 

Now, chapter 6 of the same document characterizes the STA as “Multi-Corner, Multi-Mode” and defines best and worst case PVT corners as one would expect. The trouble is that nothing is explicitely stated in the report when the mode changes from worst to best. For hi-reliability designs, this type of explicit documentation is necessary.

 

Regards,

Rich

0 Kudos
Teacher muzaffer
Teacher
8,544 Views
Registered: ‎03-31-2012

Re: Best case/worst case timing reports

First of all I have say that there is really no need to worry. If TRCE says you pass timing, your design will not fail in silicon because of timing (assuming of course you told the timer the truth). Xilinx has sold enough chips that if it weren't the case, they would hear about it.

Secondly (at least in the Vivado timing report, haven't done a par run in a while), the report clearly states when the switch happens. Look at the following extract:

Min Delay Paths
--------------------------------------------------------------------------------------
Slack (MET) : 0.180ns (arrival time - required time)
Source: t100eq/errsum_reg[22]/C
(rising edge-triggered cell FDRE clocked by ipllck250x {rise@0.000ns fall@2.000ns period=4.000ns})
Destination: t100eq/los_reg/D
(rising edge-triggered cell FDPE clocked by iclk25 {rise@0.000ns fall@20.000ns period=40.000ns})
Path Group: iclk25
Path Type: Hold (Min at Fast Process Corner)

It is clearly shown in the Path type line how the timing values are computed.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Observer richkeefe
Observer
8,542 Views
Registered: ‎01-24-2011

Re: Best case/worst case timing reports

I should have mentioned that I am using ISE. Thus, I don't have the benefit of the Vivado tool flow.
0 Kudos
Teacher muzaffer
Teacher
4,070 Views
Registered: ‎03-31-2012

Re: Best case/worst case timing reports

UG612 (v 14.3) page 152 section "worst case analysis" says:
In the majority of designs:
• The Fast Process Corner is reported for the worst case hold analysis.
• The Slow Process Corner is reported for worst case setup analysis.
In some clock and data topologies, the Fast Process Corner is reported for the worst case
setup analysis.

Does this answer your question?
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Historian
Historian
4,052 Views
Registered: ‎01-23-2009

Re: Best case/worst case timing reports

As people are figuring out, Vivado is different than ISE. The Vivado timing engine is a full multi-corner static timing analysis tool. By default (and it can be configured differently), it performs both setup and hold checks (which it calls max and min checks, respectively) at both the best PVT (fast process corner) and worst PVT (slow process corner). Furthermore, it even does "on chip variation" calculations; as an example the length of the destination clock path on a slow process corner setup check uses something a "little bit faster than slowest PVT".

 

This is one of the (many) advantages of Vivado - it has a sophisticated ASIC-class timing engine.

 

Avrum

0 Kudos
Teacher muzaffer
Teacher
4,047 Views
Registered: ‎03-31-2012

Re: Best case/worst case timing reports

the timing engine in TRCE and PAR might have its problems but nevertheless it is a true multi-corner STA tool. If you open up a twr file you can look at the delays in there for hold paths and setup paths and compare the values you get from speedprint., you will see that TRCE/PAR are doing analysis for best case corner and worst case corner for hold & setup respectively. Please don't fall into the trap of academics who don't know what they are talking about claiming that ISE family of tools don't do correct STA, they do. One just has to know where to look and do the correct analysis instead of blowing smoke.

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Explorer
Explorer
2,188 Views
Registered: ‎03-06-2014

Re: Best case/worst case timing reports

Hello,

 

I just tumbled into this post while my search for the method of doing fast corner and slow corner using ISE.

 

I am using ISE 14.7 and  have a design fully place&routed with no error ar even warning. I used the Virtex-5 (XC5VLX50T) as my target device. I found in UG612 the following statement: !!

 

"This analysis is performed for Virtex®-6, Spartan®-6, and Xilinx 7 series device families only."

 

Does it mean it is impossible to do on Virtex-5??

 

Any help is cordially appreciated.

 

Regards,

@gszakacs

0 Kudos