AOCV

In this we will understand how tool calculates stage counts and distances on AOCV for launch and capture timing paths and gets corresponding AOCV derate values.

If the depth is high the rational is that random variations cancel out.

Stage counting in GBA

Stage counting always begins with a count of 0 at the CPPR common point.

Launch = clock + data count; Capture = capture clock count.

Assume there is a launch flop and there are 2 capture flops. The data to one capture flop is U1 + U5 and the data to another capture flop is U1 + U2+ U3 + U4. The clock beyond common clock path to launch is C3 and the clock beyond common clock path to capture (both of them) is C4.

Launch to the largest capture is: 6 stages C3 + LAUNCH FLOP + U1 + U2 + U3 + U4 Launch to the shortest capture is: 4 stages : C3 + LAUNCH FLOP + U1 + U4.

Capture to largest capture: 1 stage C4 Capture to shortest capture: 1 stage c4

In graph based mode, the algorithm requires resetting the stage count at clock branch points, which can lead to significant pessimism.

Graph-based AOCV analysis chooses pessimistic situation, so, each cell has its own pessimistic property (only one value not two or more values like PBA), such as late launch stage count for cell, early capture stage count for cell, and so on. In the example, the choice problem of stage count occurs at C3/RS/U1, because the cells exist in the same launch path in case of the 2 timings paths (RS to RT1 and RS to RT2), and have different stage count based on path-based AOCV analysis. To maintain pessimism, smaller stage counts are chosen. Smaller stage count means more variation, so, it is mapped to worse AOCV derate for late and early.

To get distance on a timing path, its bounding box is drawn. The BBOX encloses output pin (common point) and launch clock cells, capture clock cells and data path cells.

Written on January 17, 2021