• 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. Encounter does not switch SDC between setup and hold ST...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 91
  • Views 15278
  • 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

Encounter does not switch SDC between setup and hold STA

Clidre
Clidre over 8 years ago

Hello, I'm designing a digital block with Encounter v14.26-s039_1. One input clock is a multiphase clock, programmable, coming from a custom analog block. In my MMMC view, I wrote two different .sdc files, one (called SS) to be used for the setup analysis (where I defined the multiphase clock with the first phase), the other (called FF) for the hold analysis  (multiphase clock defined with the last phase).

The problem is that when I run the timing analysis, Encounter considers ONLY the SS for both the setup and hold analysis. I don't know why it doesn't switch the sdc. Can you please help me to make it change the sdc to be considered for each analysis?

My mmmc.view file that I load with Import Design is the following:

create_rc_corner -name rc_nom \
-cap_table {../SYNTHESIS2/libs/lvt/capTbl_nom.capTbl} \
-preRoute_res {1.0} -preRoute_cap {1.0} -preRoute_clkres {0.0} -preRoute_clkcap {0.0} \
-postRoute_res {1.0} -postRoute_cap {1.0} -postRoute_xcap {1.0} -postRoute_clkres {0.0} -postRoute_clkcap {0.0} \
-qx_tech_file {/cadappl/iclibs/TSMC65/LP/1.7.A.2/Assura/lvs_rcx/qrcTechFile}

create_rc_corner -name rc_best_m55c \
-cap_table {../SYNTHESIS2/libs/lvt/capTbl_bc.capTbl} \
-preRoute_res {1.0} -preRoute_cap {1.0} -preRoute_clkres {0.0} -preRoute_clkcap {0.0} \
-postRoute_res {1.0} -postRoute_cap {1.0} -postRoute_xcap {1.0} -postRoute_clkres {0.0} -postRoute_clkcap {0.0} \
-T -55 \
-qx_tech_file {/cadappl/iclibs/TSMC65/LP/1.7.A.2/Assura/lvs_rcx/qrcTechFile}

create_rc_corner -name rc_worst_125c \
-cap_table {../SYNTHESIS2/libs/lvt/capTbl_wc.capTbl} \
-preRoute_res {1.0} -preRoute_cap {1.0} -preRoute_clkres {0.0} -preRoute_clkcap {0.0} \
-postRoute_res {1.0} -postRoute_cap {1.0} -postRoute_xcap {1.0} -postRoute_clkres {0.0} -postRoute_clkcap {0.0} \
-T 125 \
-qx_tech_file {/cadappl/iclibs/TSMC65/LP/1.7.A.2/Assura/lvs_rcx/qrcTechFile}

create_library_set -name core_typ -timing {../SYNTHESIS2/libs/lvt/core_tc.lib} -si {../SYNTHESIS2/libs/lvt/core_tc.cdb}
create_library_set -name core_bc -timing {../SYNTHESIS2/libs/lvt/core_bc.lib} -si {../SYNTHESIS2/libs/lvt/core_bc.cdb}
create_library_set -name core_wc -timing {../SYNTHESIS2/libs/lvt/core_wc.lib} -si {../SYNTHESIS2/libs/lvt/core_wc.cdb}

create_constraint_mode -name constraint_CKuncertSS -sdc_files {./sdc_encounterSS.sdc}
create_constraint_mode -name constraint_CKuncertFF -sdc_files {./sdc_encounterFF.sdc}

create_constraint_mode -name constraint_NOuncertTT -sdc_files {./sdc_encounterTT.sdc ./sdc_NOuncert.sdc}
create_constraint_mode -name constraint_NOuncertSS -sdc_files {./sdc_encounterSS.sdc ./sdc_NOuncert.sdc}
create_constraint_mode -name constraint_NOuncertFF -sdc_files {./sdc_encounterFF.sdc ./sdc_NOuncert.sdc}

create_delay_corner -name corner_typ -library_set {core_typ} -rc_corner {rc_nom}
create_delay_corner -name corner_min_m55c -library_set {core_bc} -rc_corner {rc_best_m55c}
create_delay_corner -name corner_max_125c -library_set {core_wc} -rc_corner {rc_worst_125c}


create_analysis_view -name setup_125c -constraint_mode {constraint_CKuncertSS} -delay_corner {corner_max_125c}
create_analysis_view -name hold_m55c -constraint_mode {constraint_CKuncertFF} -delay_corner {corner_min_m55c}

create_analysis_view -name data_gen_typ -constraint_mode {constraint_NOuncertTT} -delay_corner {corner_typ}
create_analysis_view -name setup_125c_NOuncert -constraint_mode {constraint_NOuncertSS} -delay_corner {corner_max_125c}
create_analysis_view -name hold_m55c_NOuncert -constraint_mode {constraint_NOuncertFF} -delay_corner {corner_min_m55c}

And, my commands for the timing analysis are:

set_analysis_view -setup {setup_125c_NOuncert} -hold {hold_m55c_NOuncert}

timeDesign -preCTS -idealClock -pathReports -drvReports -slackReports -numPaths 50 -prefix data_gen_preCTS -outDir timingReports
report_timing -machine_readable -max_points 10000 -max_slack 0.75 -path_exceptions all > ./myreports/trialroute.rpt

timeDesign -preCTS -hold -expandedViews
report_timing -machine_readable -max_points 10000 -max_slack 0.75 -path_exceptions all -early > ./myreports/trialroute_hold.rpt

If then I go to  Timing->Debug Timing... I can see that only the file  ./sdc_encounterSS.sdc has been used for both setup and hold analysis.

Thanks a lot for any feedback

  • Cancel
Parents
  • Clidre
    Clidre over 8 years ago
    Thanks for your reply. I used reportTiming and it seems the SDCs are correct. Moreover, I tried with

    set_analysis_view -setup {setup_125c_NOuncert} -hold {setup_125c_NOuncert}

    and the results with DebugTiming are different. So it may be a bug in the GUI showing the same SDC for both the analysis
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Clidre
    Clidre over 8 years ago
    Thanks for your reply. I used reportTiming and it seems the SDCs are correct. Moreover, I tried with

    set_analysis_view -setup {setup_125c_NOuncert} -hold {setup_125c_NOuncert}

    and the results with DebugTiming are different. So it may be a bug in the GUI showing the same SDC for both the analysis
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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