Home > Community > Forums > Digital Implementation > Setting Timing Derate

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Setting Timing Derate 

Last post Tue, Apr 8 2014 1:51 AM by tshovon123. 4 replies.
Started by tshovon123 01 Apr 2014 08:45 PM. Topic has 4 replies and 413 views
Page 1 of 1 (5 items)
Sort Posts:
  • Tue, Apr 1 2014 8:45 PM

    • tshovon123
    • Not Ranked
    • Joined on Sun, Mar 30 2014
    • Posts 6
    • Points 75
    Setting Timing Derate Reply

     Hi I am shovon

    New to encounter. So facing syntax related problem .

    How can i apply diffrent derating factors for setup and hold in OCV.

     

     

    It will be helpful if anyone elaborate about setting different derating factors according to mode and check type for a particular delay corner. That is I want to set different derating factor for different analysis view. 

     

    Thanks

    Tanvir Hasnain Shovon 

    Filed under:
    • Post Points: 20
  • Tue, Apr 1 2014 9:27 PM

    • kazad
    • Top 500 Contributor
    • Joined on Wed, Sep 16 2009
    • Posts 22
    • Points 305
    Re: Setting Timing Derate Reply

     Hi Tanvir

     Once you create the analysis views (Cadence doc attached), you can use something like this for applying OCV derating:

     

    ________viewDefinition.tcl________

    #create library sets

    create_library_set -name lib_slow -timing {./slow_test.lib}

    create_library_set -name lib_fast -timing {./fast.lib}

     

    #create Constraint Modes

    create_constraint_mode -name mode_mission -sdc_files {./default.sdc}

     

    #create RC Corners

    create_rc_corner -name rc_slow

    create_rc_corner -name rc_fast

     

    #create Delay Corners

    create_delay_corner -name dc_slow \

    -late_library_set lib_slow \

    -early_library_set lib_fast \

    -late_opcond_library slowlib \

    -early_opcond_library fastlib \

    -late_opcond slow \

    -early_opcond fast

     

    create_delay_corner -name dc_fast \

    -late_library_set lib_slow \

    -early_library_set lib_fast \

    -late_opcond_library slowlib \

    -early_opcond_library fastlib \

    -late_opcond slow \

    -early_opcond fast

     

    #create analysis views

    create_analysis_view -name view_slow_mission -constraint_mode mode_mission -delay_corner dc_slow

    create_analysis_view -name view_fast_mission -constraint_mode mode_mission -delay_corner dc_fast

     

    #set current analysis views

    set_analysis_view -setup {view_slow_mission} -hold {view_fast_mission}

     

    # Apply OCV derating (5% for eaxample)

    set_timing_derate -delay_corner  dc_slow -early 0.95

    set_timing_derate -delay_corner  dc_slow -late 1.00

    set_timing_derate -delay_corner  dc_fast -early 1.00

    set_timing_derate -delay_corner  dc_fast -late 0.95 

     

     Thanks

    Khandaker 

    • Post Points: 20
  • Tue, Apr 1 2014 9:41 PM

    • tshovon123
    • Not Ranked
    • Joined on Sun, Mar 30 2014
    • Posts 6
    • Points 75
    Re: Setting Timing Derate Reply

    Hi Khandaker,

    set_timing_derate -delay_corner  dc_slow -early 0.95

    But there is a problem . If we execute this command same derating factor is applied for all the views related to this delay corner dc_slow. But I dont expect this.

     I just expect different derating factor for different analysis view. With this command I can not specify different derating factors to setup and hold.

    Thanks for quick reply

    Tanvir 

    • Post Points: 20
  • Tue, Apr 1 2014 10:07 PM

    • kazad
    • Top 500 Contributor
    • Joined on Wed, Sep 16 2009
    • Posts 22
    • Points 305
    Re: Setting Timing Derate Reply

     Hi Tanvir

     In that case, you try the procedure:

     

     # Usage: applyDerate -view <mmmc_analysis_view_name> -early <early_derate_vaule> -late <late_derate_vaule>

    proc applyDerate {args} {

        # Get analysis view name
        if {[regexp {\-view} $args]} {
     set viewName [lindex $args [expr [lsearch $args -view] + 1]]
        }

        # Get early derate
        if {[regexp {\-early} $args]} {
     set earlyDerate [lindex $args [expr [lsearch $args -early] + 1]]
        }

        # Get late derate
        if {[regexp {\-late} $args]} {
     set lateDerate [lindex $args [expr [lsearch $args -late] + 1]]
        }

        # Help
        set helpString "Usage : applyDerate \
                                    \-view <mmmc_analysis_view_name> \
                                    \-early <early_derate_vaule> \
                                    \-late <late_derate_vaule> \
                                    \-help"

        if {[regexp {\-help} $args] || $args == ""} {
            puts $helpString
            return 0
        }


        # Main code
        ############################################################ 


        # Check analysis view if exists
        if {[findAnalysisView $viewName] == ""} {
     Puts "\nERROR: Analysis view $viewName not found!"
     return 0
        }
       
        # Apply timing derate
        set delayCorner [get_analysis_view $viewName -delay_corner]

        set_timing_derate -delay_corner $delayCorner -early $earlyDerate
        set_timing_derate -delay_corner $delayCorner -late $lateDerate
    }

    ################################################################################
    # Procedure to find MMMC analysis view name
    # Usage: findAnalysisView *ideal*
    ################################################################################
    proc findAnalysisView {viewPattern} {

        set viewList {}
       
        foreach view [all_analysis_views ] {
     if [string match $viewPattern $view] {
         lappend viewList $view
     }
        }

        return $viewList
    }

     

    Thanks

    Khandaker 

    • Post Points: 20
  • Tue, Apr 8 2014 1:51 AM

    • tshovon123
    • Not Ranked
    • Joined on Sun, Mar 30 2014
    • Posts 6
    • Points 75
    Re: Setting Timing Derate Reply

     Thanks a lot khandakar .. Now it makes sense

    • Post Points: 5
Page 1 of 1 (5 items)
Sort Posts:
Started by tshovon123 at 01 Apr 2014 08:45 PM. Topic has 4 replies.