Techniques are provided for more efficient timing analysis of user designs
for programmable ICs. Initially, a graph is created that represents nodes
and edges in a user design. Each edge in the graph is assigned a binary
edge mask, each bit of which indicates whether it is reachable from a
source or destination type relevant to user specified timing constraints.
A timing analysis tool then performs multiple depth-first search
operations to compute delays along time critical paths relevant to the
user specified timing constraints. Because each edge contains an edge
mask to indicate whether it connects to a particular source or
destination point, the timing analysis tool does not analyze areas of the
graph that do not lead to a relevant source or destination point. These
techniques prevent the timing analysis tool from analyzing paths in the
graph that are not relevant to the analysis of the time critical paths.