Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20641 Discussions

Reverse Timing analysis (from .pof file)

Altera_Forum
Honored Contributor II
1,231 Views

Hi, 

 

I'm working on a number of older systems which the original engineer somehow designed without using ANY timing constraints. These systems have been deployed for a number of years to several hundred customers, and I've been tasked with creating a new component that will interact with these systems. 

 

I'm trying to weigh my options, and I figured that the best would be to somehow find out what the timings currently are from the .pof files used to program the systems, and then create the timing for the new component based on those timings. The problem is that I don't even know if it's even possible to find the timings just off of the generated .pof file, even with the existing project. I could just re-compile the projects on my machine and hope that the timings are the same as what we've been sending to customers this whole time, but that doesn't sound safe to me. 

 

--Stephen
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
349 Views

No, it can't be reverse engineered from a .pof. Recompiling is your best bet. (It's often recommended to zip up the entire project with database so it can be opened and re-analyzed later). If you have the same version of Quartus it was last run in, that should be good.

0 Kudos
Altera_Forum
Honored Contributor II
349 Views

Even if you compile with the same version, you timing will probably be different. I'd re-compile and add any constraints needed to close timing. Make sure you completely understand what the real world timing needs to be for any external interfaces.

0 Kudos
Altera_Forum
Honored Contributor II
349 Views

 

--- Quote Start ---  

Even if you compile with the same version, you timing will probably be different. I'd re-compile and add any constraints needed to close timing. Make sure you completely understand what the real world timing needs to be for any external interfaces. 

--- Quote End ---  

 

 

In my experience with quartus (not ISE), going back to some very old versions, compiling the same source code with the same seed on and identical OS gives you identical results.
0 Kudos
Altera_Forum
Honored Contributor II
349 Views

Which versions? Could you explain why?

0 Kudos
Altera_Forum
Honored Contributor II
349 Views

 

--- Quote Start ---  

Which versions? Could you explain why? 

--- Quote End ---  

 

 

All versions from at least Q8 (and maybe earlier because I think Ive done some successful recompiles with max + plus2) through to the latest will produce the same results with Identical source code. 

The key point is identical - any change to any part of the source will produce different results.
0 Kudos
Altera_Forum
Honored Contributor II
349 Views

This helps a lot -- thanks everyone!

0 Kudos
Altera_Forum
Honored Contributor II
349 Views

To keep the results identical for release builds you should consider to limit the maximum Processors to one (i guess every future Computers will have at least one :-)). 

 

set_global_assignment -name NUM_PARALLEL_PROCESSORS 1 

 

My experience is, that the number of Processors used is like using a different seed. This results to different timings. A different seed or different cpu count may change fmax +-15%. 

With above assignment i got same results even on different linux and windows machines (of course with same Quartus Version)
0 Kudos
Reply