Abstract
Traditionally, the slack time of a gate was computed by using the longest topological critical path. However, the longest topological critical path may be a false path that cannot affect the timing of a circuit. Therefore, the slack time of a gate may underestimated by using topological slack. In this paper, we propose a novel algorithm to calculate a more ""accurate"" slack time called the functional slack. The idea of the functional slack is based on the concept of non-primitive paths, which never become the critical path in a circuit under any delay assignment of gates. Our experiments show an average of 50% of the paths is non-primitive for 28 benchmark circuits. The functional slack can be applied to optimize the power/area of a circuit under delay constraint more efficiently than the topological slack.