060216 icworkshop synthesis

Upload: ramesh-kumar

Post on 06-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 060216 ICworkshop Synthesis

    1/61

    ACCESS ICLAB

    Graduate Institute of Electronics Engineering, NTU

    SynopsysSynopsys Synthesis OverviewSynthesis Overview

    Ben

    2006.02.16

  • 8/3/2019 060216 ICworkshop Synthesis

    2/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 2

    OutlineOutlineIntroduction

    Setting Design EnvironmentSetting Design Constraints

    Synthesis Report and Analysis

  • 8/3/2019 060216 ICworkshop Synthesis

    3/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 3

    What is SynthesisWhat is SynthesisSynthesis = translation + optimization

  • 8/3/2019 060216 ICworkshop Synthesis

    4/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 4

    Logic Synthesis OverviewLogic Synthesis Overview

    no timing info.

    timing info.

  • 8/3/2019 060216 ICworkshop Synthesis

    5/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 5

    SynopsysSynopsys Related FilesRelated Files

    Note

    These 3 files are always read in the same order.

    Any repeated command can overridethe previous one.

    Set path and environment variables and license check.cshrc

    Three distinct files are read and executed when DC is

    invoked1. system-wide (do not modify):

    (e.g. $SYNOPSYS/admin/setup/)

    2. Users home directory (e.g. ~think/)

    3. Users current working directory (e.g. ~think/dv/)

    .synopsys_dc.setup

    Set X terminal display variables.Xdefault

    PurposeFiles

  • 8/3/2019 060216 ICworkshop Synthesis

    6/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 6

    Synthesis Design FlowSynthesis Design Flow

    Specification

    RTL Coding Prepare

    Setting Design Environment

    Setting Design Constraint

    Compile Design

    Analysis

    CellLibrary

    Gate-level Netlist

    Develop the HDL design descriptionand simulate the design description to

    verify that it is correct. Set up the .synopsys_dc.setup file.

    Set the appropriate technology,synthetic, and symbol libraries, targetlibraries, and link libraries.

    Set the necessary compilation options,

    including options to read in the inputfiles and specify the output formats.

    Read the HDL design description.

    Define the design. Set design attributes

    Define environmental conditions

    Set design rules

    Set realistic constraints (timing andarea goals)

    Determine a compile methodology

  • 8/3/2019 060216 ICworkshop Synthesis

    7/61

    ACCESS ICLAB

    Graduate Institute of Electronics Engineering, NTU

    Setting Design EnvironmentSetting Design Environment

  • 8/3/2019 060216 ICworkshop Synthesis

    8/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 8

    Setting Design EnvironmentSetting Design Environment Setting Operating Environment

    Setting Input Driving Strength

    Setting Output Loading

    Setting Input/Output Delay

    Setting Wire Load Model

  • 8/3/2019 060216 ICworkshop Synthesis

    9/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 9

    Setting Operating EnvironmentSetting Operating Environment Attributes/Operating Environment

  • 8/3/2019 060216 ICworkshop Synthesis

    10/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 10

    Setting Operating ConditionSetting Operating Condition Attributes/Operating Environment/Operating Condition

    dc_shell> set_operating_conditions slow

  • 8/3/2019 060216 ICworkshop Synthesis

    11/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 11

    Setting Input Drive ImpedanceSetting Input Drive Impedance Attribute/Operating Environment/Drive Strength

  • 8/3/2019 060216 ICworkshop Synthesis

    12/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 12

    Setting Input Drive ImpedanceSetting Input Drive Impedance Also can be set using

    drive_of command

    Example: (P2A cell output)

  • 8/3/2019 060216 ICworkshop Synthesis

    13/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 13

    Setting Output LoadingSetting Output Loading Attribute/Operating Environment/Load

  • 8/3/2019 060216 ICworkshop Synthesis

    14/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 14

    Setting Output LoadingSetting Output Loading Also can be set using load_of:

    Example: (bufferd1 cell input)

  • 8/3/2019 060216 ICworkshop Synthesis

    15/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 15

    Setting Input DelaySetting Input Delay Select input ports

    Attributes/Operating Environment/Input Delay

  • 8/3/2019 060216 ICworkshop Synthesis

    16/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 16

    Setting Output DelaySetting Output Delay Select output ports

    Attributes/Operating Environment/Output Delay

  • 8/3/2019 060216 ICworkshop Synthesis

    17/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 17

    Setting Wire Load ModelSetting Wire Load Model Wire load model estimates wire capacitance based on chip area & cell

    fanout

    Setting this information during compile in order to model the designmore accurately

    Attributes/Operating Environment/Wire Load

  • 8/3/2019 060216 ICworkshop Synthesis

    18/61

    ACCESS ICLAB

    Graduate Institute of Electronics Engineering, NTU

    Setting Design ConstraintsSetting Design Constraints

  • 8/3/2019 060216 ICworkshop Synthesis

    19/61

  • 8/3/2019 060216 ICworkshop Synthesis

    20/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 20

    Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints

    Basic clock constraints concept

    Constraints & STA for Special Circuit

    Constraints for Area

    Design Rule Constraints

    Final check constraints before compile

  • 8/3/2019 060216 ICworkshop Synthesis

    21/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 21

    Define Clock SpecificationDefine Clock SpecificationWhat should be defined?

    Period

    Waveform

    Uncertainty

    Skew

    Latency

    Source latency (option)

    Network latency

    Transition Input transition

    Clock transition

  • 8/3/2019 060216 ICworkshop Synthesis

    22/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 22

    Specify Clock ConstrainsSpecify Clock Constrains Select clock port

    Attributes/Clocks/Specify creat_clock: define your clocks

    waveform & respect the set-up timerequirements of all clocked flip-flops

    creat_clock clk-period 50 -waveform {0 25}

    set_fix_hold: respect the hold timerequirement of all clocked flip-flops

    set_fix_hold clk

    set_dont_touch_network: do not re-

    buffer the clock network set_dont_touch_network clk

  • 8/3/2019 060216 ICworkshop Synthesis

    23/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 23

    Constraints & STA for Special CircuitConstraints & STA for Special CircuitWhat should be noticed?

    Multicycle Path

    Clock Gating Technique

    Latch-Based & Timing Borrow Analysis

    False Path

    set_case_analysis

    Multiple Clocks Overlapping

  • 8/3/2019 060216 ICworkshop Synthesis

    24/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 24

    MulticycleMulticycle PathPath

    To define setup multiplier 2 for the path from FF1 to

    FF2 but maintain a hold multiplier 0, use command:

    set_multicycle_path 2 -from FF1 -to FF2

  • 8/3/2019 060216 ICworkshop Synthesis

    25/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 25

    False PathFalse Path A false path is a timing path that cannot propagate a signal, or a path

    we wish to ignore timing constraints.

    The set_false_pathcan be used to disable timing-based synthesis on a

    path-by-path basis It is useful for:

    Constraining asynchronous paths

    Constraining logically false paths

  • 8/3/2019 060216 ICworkshop Synthesis

    26/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 26

    Setting Area ConstraintSetting Area Constraint Attributes/OptimizationConstraints/Design Constraints

    Area Unit : gates

  • 8/3/2019 060216 ICworkshop Synthesis

    27/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 27

    Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints

    Basic clock constraints concept

    Constraints & STA for Special Circuit

    Constraints for Area

    Design Rule Constraints

    Final check constraints before compile

  • 8/3/2019 060216 ICworkshop Synthesis

    28/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 28

    Design Rule ConstraintsDesign Rule ConstraintsDesign rules cant be violated at any cost,

    even if it will violate the timing and area goal.

    Three kinds of design rule constraint are set:

    set_max_transition

    set_max_fanoutset_max_capacitance

  • 8/3/2019 060216 ICworkshop Synthesis

    29/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 29

    Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints

    Basic clock constraints concept

    Constraints & STA for Special Circuit

    Constraints for Area

    Design Rule Constraints

    Final check constraints before compile

  • 8/3/2019 060216 ICworkshop Synthesis

    30/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 30

    Check DesignCheck Design After you set up the deign attributes & design

    constraints, we recommend the next step is to check

    design Analysis/Check Design

    The warning message is called multiple design

    instance, it results from that you use the same HDLdescription to represent more that one designinstance

    How to handle ?

    dont_touch

    ungroup

    uniquify

  • 8/3/2019 060216 ICworkshop Synthesis

    31/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 31

    Method 1:Method 1: dont_touchdont_touch Procedures

    Constrain the block

    Compile the block Select the multiple

    design instances block

    Attributes/Optimization

    Directives/Design& setthe Dont Touch button

    Compile the wholedesign using hierarchy

    compile

  • 8/3/2019 060216 ICworkshop Synthesis

    32/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 32

    Method 2: UngroupMethod 2: Ungroup Procedures

    Select the multiple designinstances block

    Attributes/OptimizationDirectives/Design& set theUngroup button

    Compile whole design usinghierarchy compile

    Remove a single level ofhierarchy

    Does not preserve thehierarchy

    Take more memory Take more compile time

    G d I i f El i E i i NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    33/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 33

    Method 3:Method 3: UniquifyUniquify

    Create a unique design file for

    each instance May select one cell or entire

    design hierarchy to be uniquify

    Allow design to be customized to

    its interface If the environment varies

    significantly, use uniquifyratherthan compile+dont_touch

    Uniquifyuses more memory andcause longer compile time thancompile+dont_touch

    Select the most top design

    of the hierarchy Edit/Uniquify/Hierarchy

    G d t I tit t f El t i E i i NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    34/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 34

    Multiple Design Instance (summary)Multiple Design Instance (summary) Use dont_touch, ungroup, uniquify to fix it

    The easiest way is uniquify, but needs much memory

    & compile time

    If you want to preserve the hierarchy & sourcesharing, use dont_touch

    If you want your design to have the BESTresult,recommend to use ungroup, but it needs the mostmemory and compile time

    Graduate Institute of Electronics Engineering NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    35/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 35

    Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints

    Basic clock constraints concept

    Constraints & STA for Special Circuit

    Constraints for Area

    Design Rule Constraints

    Final check constraints before compile

    Graduate Institute of Electronics Engineering NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    36/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 36

    Check Constraints & AttributesCheck Constraints & Attributes Use the following reports to check constraints & attributes

    before compiling

    Analysis/Report

    Graduate Institute of Electronics Engineering NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    37/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 37

    Save Constraints & AttributesSave Constraints & AttributesSave attributes & constraints setting as the

    design setup file in dc_shell command format,use File/Save Info/Design Setup

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    38/61

    Graduate Institute of Electronics Engineering, NTU

    pp. 38

    Execute Script FileExecute Script FileExecute dc_shell command script file, use

    Setup/Execute Script

  • 8/3/2019 060216 ICworkshop Synthesis

    39/61

    ACCESS ICLAB

    Graduate Institute of Electronics Engineering, NTU

    Synthesis Report and AnalysisSynthesis Report and Analysis

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    40/61

    g g

    pp. 40

    ReportReport Analysis/Report

    From report and analysis, you can find the set attributes and

    the results after optimization

    Attribute reports

    All attributes, clock, port,

    design, net

    Analysis reports

    Area, hierarchy, constraints,

    timing, point timing

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    41/61

    pp. 41

    Timing ReportTiming Report

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    42/61

    pp. 42

    Analyze Circuit with SchematicAnalyze Circuit with Schematic To determine the time the signal arrived at pin which is selected

    in the schematic

    Analysis/Show Timing

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    43/61

    pp. 43

    Analyze Circuit with SchematicAnalyze Circuit with Schematic To determine the net load which selected in the schematic

    Analysis/Show Net Load

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    44/61

    pp. 44

    Save DesignSave Design Save your design in verilog format, run Verilog gate-level simulation,

    and we will use Verilog In interface to translate it into OPUS databasefor place & route

    If you cant Verilog In, please check assign problem

    if there is any assignment problem, choose the block & use thedc_shell command as follow to fix it

    set_fix_multiple_port_nets -all -buffer_constants

    compile -map_effort medium

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    45/61

    pp. 45

    GateGate--Level Simulation (Verilog)Level Simulation (Verilog) Write out gate-level netlist

    File/Save AsVerilog (for File format)

    dc_shell> write -format verilog hierarchy -output chip.vg Get SDF

    File/Save InfoDesign timingSelect chip.sdf

    dc_shell> write_sdf version 1.0 -context verilog chip.sdf

    Modify your testbench file$sdf_annotate (the_SDF_file_name, top_module_instance_name);

    Simulation using Verilog-XL

    >> Verilog chip.vg testbench.v v cell_model.v

    Grad ate Instit te of Electronics Engineering NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    46/61

    ACCESS ICLAB

    Graduate Institute of Electronics Engineering, NTU

    Design ExampleDesign Example

    Ben

    2006.02.16

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    47/61

    pp. 47

    SynopsysSynopsys Design Vision (GUI) /Design Vision (GUI) /

    Design Compiler (text mode)Design Compiler (text mode)

    Unix% dv dcsh_mode &

    Unix% dc_shell

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    48/61

    pp. 48

    ReadRead VerilogVerilog FileFile

    read -format verilog {"Lab1_alu.v"}

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    49/61

    pp. 49

    Schematic viewSchematic view Synopsys Design analyzer will translate verilog code into G-tech

    model. Double click the icon ALU, and click the right buttonthen choose Schematic view. We can get the G-tech MAP

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    50/61

    pp. 50

    Symbol viewSymbol view Or you can create a symbol view by click on the following symbol

    view button. The symbol view is as the right window

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    51/61

    pp. 51

    Set Clock (1/2)Set Clock (1/2) Attributes-Specify Clock

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    52/61

    pp. 52

    Set Clock (2/2)Set Clock (2/2) Specify the clock as period 10ns. (100 MHz). Dont forget to

    select dont touch network and fix hold

    create_clock -name "clk" -period 10 -waveform {"0" "5"} {"clk"}set_dont_touch_network find( clock, "clk")set_fix_hold clk

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    53/61

    pp. 53

    Operating ConditionOperating Condition set_operating_conditions "typical" -library "typical"

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    54/61

    pp. 54

    WireloadWireload ModelModel set_wire_load_model -name "ForQA" -library

    "typical"

    set_wire_load_mode "segmented"

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    55/61

    pp. 55

    Operating EnvironmentOperating Environment Select inputA in the Symbol View and click Attribute-

    operating environment-input delay. Set 2.5ns input delay.

    set_input_delay -clock clk 2.5 inputA[*]set_input_delay -clock clk 3.8 inputB[*]

    set_input_delay -clock clk 4.5 instruction[*]set_input_delay -clock clk 5.2 reset

    set_output_delay -clock clk 8 alu_out[*]

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    56/61

    pp. 56

    Area &Area & FanoutFanout & Transition& Transition Click Attribute-

    optimization Constraints-Design constraints. Set

    max area is 0. Max fan-out is8. max transition is 1.

    set_max_area 0set_max_fanout 8 find (design, ALU)set_max_transition 1 find (design, ALU)

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    57/61

    pp. 57

    Compile DesignCompile Design Click Design-Compile Design. Click OK, start to optimize

    ALU

    compile -map_effort medium

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    58/61

    pp. 58

    ReportReport

    report_timing -path full -delay max -max_paths 1 -nworst 1report_power

    report_area -nosplit

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    59/61

    pp. 59

    Save FilesSave Files Save gate-level netlist. Select File->Save As Save your design. Select File-Save

    Save the timing information. Select File-Save Info-Design

    Timing, choose sdf format.

    Save script file with the constraints you have made. Usewrite_script > script_file command or File-Save Info-Design Setup button.

    Re-run all steps automatically. Use include script_filecommand or File-Execute Script button.

    write -format verilog -hierarchy -output "ALU_s.v" find (design, ALU)write -format db -hierarchy -output "ALU_s.db" find (design, ALU)write_sdf ALU_s.sdf

    Graduate Institute of Electronics Engineering, NTU

  • 8/3/2019 060216 ICworkshop Synthesis

    60/61

    pp. 60

    gate level simulationgate level simulation Before gate level simulation,

    $sdf_annotate(top_design.sdf, top_design)

    must be added after initial in testbench `timescale 1ns/10psmust be added in the 1st line of

    testbench

    //RTL simulation

    Unix% verilog testfixture.v

    //gate level simulation

    Unix% verilog testfixture_vg.v v umc18.v

  • 8/3/2019 060216 ICworkshop Synthesis

    61/61