Runtime:
Getting basic runtime from STA engine is not more than using a ‘time’ TCL command for the Opentimer. In this way, you execute Opentimer using putting a TCL ‘time’ keyword and you can get runtime to run entire design or any part of it (like runtime of reporting setup/hold slacks). A basic TCL code is shown below: TCL gives you in microseconds. You need to convert it in seconds
Worst Negative Slack (WNS):
Any STA tool engine has got its own set of keywords, like RAT for output timing in Opentimer and there could be 1000’s of those. In order to get worst of all, just match RAT pattern once in a while loop and break the loop once you get the pattern. Since output of Opentimer is in picoseconds (ps) and most preferred time format for output slack is nanoseconds (ns), then it just becomes a matter of format conversion, as shown in below image: This can be extended to Setup/Hold keywords
Failing Endpoints (FEP):
Finally you need to count the number of failing endpoints, which is now simple as it’s a matter of finding the pattern ‘RAT’ in the Opentimer output file, incrementing a counter once you match the pattern RAT, and continuing reading the output file to find the next line matching ‘RAT’. The patterns can vary from engine to engine. Here’s the snippet of the code:
If you closely observe the above images, these are some basic TCL snippets, but plays a huge role in closing on gaps between a tool user (customers who use the tool) and product engineer/manager (one who manages the tool TCL interface)
So next time, you need an EDA command, go ahead and build it…