Delays Models

download Delays Models

of 28

Transcript of Delays Models

  • 8/13/2019 Delays Models

    1/28

  • 8/13/2019 Delays Models

    2/28

  • 8/13/2019 Delays Models

    3/28

    Verilog Day

    Delay Models

    Path Delays

    VCD Files FSM Coding Styles

    Synthesis Issues

  • 8/13/2019 Delays Models

    4/28

    Types of delay models

    Distributed delays:Assigning delay values to individual

    elements

    Lumped delays:single delay on the output gate of module

    Pin to Pin delays:Assigned individually to paths i.e .,each

    input to each output

  • 8/13/2019 Delays Models

    5/28

    Distributed and lumped delays

    Distributed delay

    assign #2 x=a & b;

    assign #5 y=c & d;

    assign #10 z=x & y;

    Lumped delays

    assign x=a & b;

    assign y=c & d;

    assign #17 z=x & y;

  • 8/13/2019 Delays Models

    6/28

    Pin to Pin delay

    Specify block:Block in which path delay

    are assigned

    syntax

    specify

    assignments

    .

    endspecify

  • 8/13/2019 Delays Models

    7/28

    Specify block

    Within specify block path delays can be assigned in either

    of the two statements

    Parallel connection

    ( => )=Example : (a=> out)=5;

    Full connection

    (*> )=Example (a*> out) =5;

  • 8/13/2019 Delays Models

    8/28

    Specify block

    Parallel connection

    Each bit in source field

    connects tocorresponding bit indestination field

    Full connection

    Each bit in source field

    connects to every bit indestination field

  • 8/13/2019 Delays Models

    9/28

    Pin to Pin Delays

  • 8/13/2019 Delays Models

    10/28

    Full connections

  • 8/13/2019 Delays Models

    11/28

    Specparam

    To declare parameters inside the specifyblockKeyword-specparam

    Examplespecifyspecparam a=15;specparam b=10;(in1=>out)=a; (in2=>out)=b;

    endspecify

  • 8/13/2019 Delays Models

    12/28

    TimingChecks

  • 8/13/2019 Delays Models

    13/28

    $setup Task

    Setup checks can be specified with the systemtask $setup.

    Syntax:

    $setup(data_event, reference_event, limit) data_event: signal that is monitored for

    violations.

    reference_event: signal that establishes a

    reference for monitoring the data_event signal. limit: minimum time required for setup of data

    event.

  • 8/13/2019 Delays Models

    14/28

    Violation is reported if(Treference_event-Tdata_event)< limit.

    E.g. //setup check is set.

    // clock is the reference.//data is begin checked for violations

    // violation reported if Tposedge_clk-Tdata

  • 8/13/2019 Delays Models

    15/28

    module set(d,q,clk);

    input d,clk;

    output q;reg q;

    always@(posedge clk)

    begin

    q=d;end

    specify

    $setup(d,posedge clk,5);endspecify

    endmodule

  • 8/13/2019 Delays Models

    16/28

    Hold checks can be specified with the systemtask $hold.

    Syntax:

    $hold(reference_event, data_event,limit) data_event: signal that is monitored for

    violations.

    reference_event: signal that establishes a

    reference for monitoring the data_event signal. limit: minimum time required for hold of data

    event.

  • 8/13/2019 Delays Models

    17/28

    Violation is reported if(Tdata_event-Treference_event)< limit.

    E.g. //hold check is set.

    // clock is the reference.//data is begin checked for violations

    // violation reported if Tdata-Tposedge_clk

  • 8/13/2019 Delays Models

    18/28

    module hold(d,q,clk);

    input d,clk;

    output q;

    reg q;

    always@(posedge clk)

    begin

    q=d;end

    specify

    $hold(posedge clk,d,5);endspecify

    endmodule

  • 8/13/2019 Delays Models

    19/28

    $pulse Width

    The system task $width is used to checkthat the width of a pulse meets theminimum width requirement.

    Syntax:

    $width(reference_event,limit);

    reference_event: edge trigger event(edgetransistion of a signal).

    limit: minimum width of the pulse.

  • 8/13/2019 Delays Models

    20/28

    The data event is not specified explicitlyfor width but is defined as the nextopposite edge of the reference_event

    signal.

    Thus, the width task checks the time b/wthe transition of a signal value to the next

    opposite transition in the signal value.

  • 8/13/2019 Delays Models

    21/28

    Violation is reported if(Tdata_event-Treference_event)< limit.

    E.g. //width check is set.

    // posedge of clear is the reference_event.// the next negedge of clear is the data_event.

    // violation reported if Tdata-Tclk

  • 8/13/2019 Delays Models

    22/28

    module width(d,q,clk);

    input d,clk;

    output q;

    reg q;

    specify

    $width(posedge d,9);

    endspecify

    endmodule

  • 8/13/2019 Delays Models

    23/28

    Delay BackAnnotation

  • 8/13/2019 Delays Models

    24/28

    RTL LevelDescription

    LogicSynthesis

    Gate-LevelNetlist

    Implementation

    InitialPre-Layout

    Delay Estimate

    Delayvalue

    Layout

    Place andRoute

    DelayCalculation

    Back-annotation ofPost-layoutdelay

    Post-layout

    information

  • 8/13/2019 Delays Models

    25/28

    Delay back annotation is an importantand vast topic in timing simulation

    The various steps In the flow that use

    back annotation are as follows1. The designer writes the RTL description

    and then performs functional simulation.

    2. The RTL description is converted to agate-level netlist by a logic synthesistool.

  • 8/13/2019 Delays Models

    26/28

    3. The designer obtains pre-layout estimatorof delays in the chip by using a delaycalculator and information about the IC

    fabrication process. Then the designerdoes timing simulation or static timingverification of the gate level netlist, using

    these preliminary values to check thatthe gate level netlist meets timingconstraints.

  • 8/13/2019 Delays Models

    27/28

    4. The gate level netlist is then converted to layoutby a place and route tool. The post-layout delayvalues are computed from the resistance and

    capacitance information in the layout. The R andC information is extracted from factors such asgeometry and IC fabrication process.

    5. The post-layout delay values are back

    annotated to modify the delay estimates from thegate level netlist.

  • 8/13/2019 Delays Models

    28/28

    Timing simulation or static timing.verification is run again on the gate levelnetlist to check if timing constraints are still

    satisfied.6. If design changes are required to meet

    the timing constraints, the designer has togo back to the RTL level, optimize thedesign for timing, and then repeat step2through step 5.