+ Post New Thread
Results 1 to 4 of 4
  1. #1
    Newbie level 2
    Points: 20, Level: 1

    Join Date
    Feb 2019
    Posts
    2
    Helped
    0 / 0
    Points
    20
    Level
    1

    Using SPEF files for STA in INNOVUS

    Hi, I have two sets of two SPEF files (fast/slow corners, respectively) that I wish to read into Innovus and run STA with MMMC. For each set, I have created two rc corners that are from the two SPEF files I have, like so:

    Code:
    # # MCMM setup
    
    create_constraint_mode -name CON -sdc_file test.sdc
    
    create_library_set -name WC_LIB_SLOW -timing slow.lib
    create_rc_corner -name _slow_rc_corner_
    create_delay_corner -name WC_SLOW -library_set WC_LIB_SLOW -rc_corner _slow_rc_corner_
    create_analysis_view -name WC_SLOW_VIEW -delay_corner WC_SLOW -constraint_mode CON
    
    create_library_set -name WC_LIB_FAST -timing fast.lib
    create_rc_corner -name _fast_rc_corner_
    create_delay_corner -name WC_FAST -library_set WC_LIB_FAST -rc_corner _fast_rc_corner_
    create_analysis_view -name WC_FAST_VIEW -delay_corner WC_FAST -constraint_mode CON
    
    spefIn fast.spef -rc_corner fast_corner
    spefIn slow.spef -rc_corner spef_corner
    
    setAnalysisMode -analysisType onChipVariation -cppr both
    set_analysis_view -setup [list WC_SLOW_VIEW] -hold [list WC_FAST_VIEW]
    
    report_timing -early > fast.report
    report_timing -late > slow.report
    However, my problem is that even though the two sets of fast/slow SPEF files are different, they have the same slack values in the reports. Even if I manually modify the spef files to have unrealistic cap values, the slack does not change. Since several warnings jump out when setting the analysis view:

    Code:
    **WARN: (IMPEXT-2776):  The via resistance between layers M1 and M2 is not defined in the capacitance table file. The via resistance of 4 Ohms defined in the LEF technology file will be used as via resistance between these layers.
    Does the default values actually overwrite the cap/res values in the spef file? Is there a way to force the program to use the values in the spef instead? Thanks!

    •   AltAdvertisment

        
       

  2. #2
    Advanced Member level 5
    Points: 7,480, Level: 20

    Join Date
    Apr 2016
    Posts
    1,584
    Helped
    275 / 275
    Points
    7,480
    Level
    20

    Re: Using SPEF files for STA in INNOVUS

    I am almost sure you have to issue the spefIn command later, after you initialize/configure MMMC.
    Really, I am not Sam.



    •   AltAdvertisment

        
       

  3. #3
    Newbie level 2
    Points: 20, Level: 1

    Join Date
    Feb 2019
    Posts
    2
    Helped
    0 / 0
    Points
    20
    Level
    1

    Re: Using SPEF files for STA in INNOVUS

    Quote Originally Posted by ThisIsNotSam View Post
    I am almost sure you have to issue the spefIn command later, after you initialize/configure MMMC.
    Thanks for the reply!
    I'm pretty sure I have though? The spefIn command seems to annotate the spef into rc corners; the rc corners in question are initialized before spefIn.



    •   AltAdvertisment

        
       

  4. #4
    Advanced Member level 5
    Points: 7,480, Level: 20

    Join Date
    Apr 2016
    Posts
    1,584
    Helped
    275 / 275
    Points
    7,480
    Level
    20

    Re: Using SPEF files for STA in INNOVUS

    In your code, spefIn comes before the set_analysis_view command. The problem is that the MMMC flow by default uses Innovus/qrc extraction by default. It doesn't take external spef files. Whatever you are setting, I think it is being ignored when timing is actually calculated. I don't have a design with external spef files that I can use to validate my hypothesis right now...
    Really, I am not Sam.



--[[ ]]--