• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Digital Implementation
  3. RE: SDF generation problem

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 90
  • Views 14685
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

RE: SDF generation problem

archive
archive over 16 years ago
Hello Kari,

I’m trying to generate an SDF file in Encounter for backannotation, using the Timing>Calculate Delay command. My problem is that the resulting SDF file has the same value for min, typ and max delays, for example:

(INTERCONNECT I1/I0/I16/Z I1/I0/I14/A1 (0.0003:0.0003:0.0003) (0.0003:0.0003:0.0003))

Or

(CELL

  (CELLTYPE "CKND2D2")

  (INSTANCE I1/I7/I18)

  (DELAY

    (ABSOLUTE

      (IOPATH A1 ZN (0.0247:0.0247:0.0247) (0.034:0.034:0.034))

      (IOPATH A2 ZN (0.0382:0.0382:0.0382) (0.0464:0.0464:0.0464))

    )

  )

)

This is true for both SignalStorm and Encounter’s Delay Calculator. I tried to change the PVT conditions with setOpCond BCCOM | WCCOM | NCCOM but I’m getting the same numbers.

Please assist me with this. Thank you in advance.

 
Best regards,

Alex

IC Design Engineer
  • Cancel
  • Kari
    Kari over 16 years ago

    Hi Alex,

    I don't use SDF that much, so I'm not the expert on this. Hopefully someone else will chime in to correct me if needed. You don't say much about your setup, but I believe you have to use MMMC in order to get SDF triplet values. Then, you would use the write_sdf command to output the sdf like this:

          write_sdf -min_view v1 –typ_view v2 –max_view v3 triCorner.sdf

    In this example, the view names v1, v2, and v3 are defined when you set up your MMMC analysis views. For more information on MMMC and setting up analysis views, there is a section in the "Optimizing Timing" chapter of the SOCE User Guide, called "Specifying the MMMC Environment".

    Hopefully this helps.

    - Kari

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 16 years ago
    Hi Kari,

    No I haven’t set up MMMC, but what I found (strangely enough) is that running Timing>Calculate Delay gives a different SDF file from running write_sdf in the encounter shell! Using the write_sdf command produces a file with min and max values:

    (CELL

        (CELLTYPE  "CKBD2")

        (INSTANCE  CLK__I7)

          (DELAY

                (ABSOLUTE

                (IOPATH CLK C  (0.0259::0.0623) (0.0267::0.0614))

                )

          )

      )

    I’m guessing that the typ values are missing because for some reason Encounter won’t accept my vendor’s typ timing library although it is specified in the conf file. I can tell that this is so because when I do Design>Import after the design is already imported, the ‘Common Timing Libraries’ slit is empty. Any idea why this is happening? Note that I dont get any errors or warnings regarding the typ library when I import the design.

    Back to the SDF issue, what I also found is that some delay values are different in the SDF file produced by Timing>Calculate Delay and in the one produced by write_sdf:

    For example:

    (INTERCONNECT I1/I0/I16/Z I1/I0/I14/A1  (0.0000::0.0000) (0.0000::0.0000))           -- SDF file produced by write_sdf

    (INTERCONNECT I1/I0/I16/Z I1/I0/I14/A1 (0.0003:0.0003:0.0003) (0.0003:0.0003:0.0003))    -- SDF file produced by Timing>Calculate Delay

    I find this rather weird because both methods for producing the SDF file use the delayCal command.....

    Thanks for your (always) prompt response,


    Alex
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Kari
    Kari over 16 years ago

     Hi Alex,

    I believe the only way to have 3 corners loaded (min, typ, max) is to use MMMC. The "Common Timing Library" field in the .conf file is used when you are only loading one corner. So since you already provided min and max libs in the min lib and max lib fields, the common field was ignored.

    As for the differences, make sure you have the same setup in both cases. Check your setDelayCalMode, options to delayCal (the text command equivalent of Timing->Calculate Delay), and options to write_sdf. The write_sdf command is the recommended one when using MMMC, so if you go forward and set up MMMC, definitely use write_sdf.

    - Kari

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information