Lec45 Full

Embed Size (px)

Citation preview

  • 8/14/2019 Lec45 Full

    1/18

    3/27/2006 1

    CS623 CAD for VLSILecture 43 Static Timing Analysis

    Shankar Balachandran

    Dept. of Computer Science and Engineering

    [email protected]

  • 8/14/2019 Lec45 Full

    2/18

  • 8/14/2019 Lec45 Full

    3/18

    33/27/2006

    Dynamic Timing Analysis Give test vectors at inputs

    Observe the changes in all gates

    Follow it through to the outputs Find the worst case time

    Not a simple problem :

    Order of inputs matter

    Simulation is tedious

    Mixes logic and timing, which failed and why is

    difficult to discern

  • 8/14/2019 Lec45 Full

    4/18

    43/27/2006

    A Simplified Model Assume rise and fall times are similar

    Gate delays are characterized ahead of time

    Many good models for predicting interconnectdelay

    Assume clock skew = 0

  • 8/14/2019 Lec45 Full

    5/18

    53/27/2006

    A Simple Problem? Lets ignore interconnect delays for now

    What do we need to do :

    Perform timing analysis between all flops to flops Find the worst case delay in each sequential stage

    Assign clock accordingly

    Design algorithms

    Does not solve the inputs and the order of

    supply though

  • 8/14/2019 Lec45 Full

    6/18

    63/27/2006

    A Nave Algorithm Enumerate all paths

    Calculate delay on each path

    Find the worst case delay Problem?

    Exponential Number of Paths

    Exponential algorithm

    Why is this bad?

    Timing analysis done many times during synthesis,place and route

  • 8/14/2019 Lec45 Full

    7/18

    73/27/2006

    Static Timing Analysis Done without specifying vectors

    A very powerful technique, widely used

    A big turn in the EDA industry Hitchcocks Algorithm

    Exhaustive without specifying vectors

    Linear in number of gates

    Not edges, not paths

  • 8/14/2019 Lec45 Full

    8/18

    83/27/2006

    Basic Sketch Find when outputs are required at the different

    gates

    Find out when they are actually arriving If the signals arrive at every gate before they

    are required in every single gate, we are done

    Circuit is safe

    Else

    Pick better gates Restructure the circuit

  • 8/14/2019 Lec45 Full

    9/18

    93/27/2006

    Arrival Time

    1 4 6 5

    3 6 6 7

    1 4 5 4

    0 1 713 18

    0 39 15 22

    0 1 7 1418

  • 8/14/2019 Lec45 Full

    10/18

    103/27/2006

    Required Time

    1 4 6 5

    3 6 6 7

    1 4 5 4

    22

    4

    0

    8

    5

    3

    9

    9

    9

    15

    13

    15

    15

    18

    22

    22

  • 8/14/2019 Lec45 Full

    11/18

  • 8/14/2019 Lec45 Full

    12/18

    123/27/2006

    Which Are Critical?

    1 4 6 5

    3 6 6 7

    1 4 5 4

    0 1 713 18

    0 3 9 1522

    0 1 7 1418

    22

    4

    0

    8

    5

    3

    9

    9

    9

    13

    15

    15

    18

    22

    22

  • 8/14/2019 Lec45 Full

    13/18

    133/27/2006

    Definitions Arrival Time

    AT(i) = max [AT(j)] + delay (i) where j fanin(i)

    Required Time RT(i) = min [RT(j)) delay (j)] where j fanout(i)

    Remember that delay (j) is subtracted here

    Also, notice that min encompasses subtraction

    Define Slack

    Slack(i) = RT(i) AT(i) Slack == 0 => Node is critical

    A path whose nodes all have slack 0 = critical path

  • 8/14/2019 Lec45 Full

    14/18

    143/27/2006

    Slacks

    4 4 22 4

    0 0 0 0 0

    8 8 4 46

    1 4 6 5

    3 6 6 7

    1 4 5 4

  • 8/14/2019 Lec45 Full

    15/18

    153/27/2006

    Lets Change Required Time

    1 4 6 5

    3 6 6 7

    1 4 5 4

    2

    -2

    6

    3

    1

    7

    7

    7

    13

    11

    13

    13

    16

    20

    20

    Arrive in

    the past?

    0 1 713 18

    0 3 9 15

    0 17

    1418

    22

    20

  • 8/14/2019 Lec45 Full

    16/18

    163/27/2006

    Lets Redo Slacks

    2 2 00 2

    -2 -2 -2 -2 -2

    6 6 2 24

    1 4 6 5

    3 6 6 7

    1 4 5 4

    Critical Edges

    Failing Path

  • 8/14/2019 Lec45 Full

    17/18

    173/27/2006

    Specifying Required Time

    Run as fast as you can

    First case

    Pick the max(AT) as RT(outputs) Can the circuit run as fast as T

    Second case

    Fix RT(outputs) = T

    Calculate Arrival Times as before

    Calculate slacks as before Check if there are paths that are violating timing

  • 8/14/2019 Lec45 Full

    18/18

    183/27/2006

    Observations on Slacks For a circuit to run safely

    All slacks

    When slacks are less than 0

    Relax the constraints

    Pick gates with lesser delays

    The model ignores interconnect delay

    Easily extendable for interconnect delay

    More discussion later

    0