• 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. Custom IC Design
  3. problem with changing the circuit Temperature

Stats

  • Locked Locked
  • Replies 0
  • Subscribers 125
  • Views 12786
  • 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

problem with changing the circuit Temperature

ronis
ronis over 14 years ago

 hi,

i worte the following oceanxl script in order to cheak the effect of the Temperature on some spactre corners:

 

;====================== Set to XL mode =========================================
ocnSetXLMode()
ocnxlProjectDir( "~/simulation" )
ocnxlTargetCellView( "final_project" "FULL_ADDER_DML_TB" "adexl" )
ocnxlResultsLocation( "" )
ocnxlSimResultsLocation( "" )

;====================== Tests setup ============================================

;---------- Test "final_project:FULL_ADDER_DML_TB:2" -------------
ocnxlBeginTest("final_project:FULL_ADDER_DML_TB:2")
simulator( 'spectre )
design( "final_project" "FULL_ADDER_DML_TB" "schematic")
modelFile(
    '("/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/montetest.scs" "")
    '("/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" "tt_18")
    '("/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" "tt_18dll")
    '("/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" "tt_hv")
    '("/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" "tt_5v")
    '("/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" "tt_nlv")
)
vecFile(
    "/vlsi-netapp/vol1/home/stu18/vec_file"
)
hlcheck( "off" )
analysis('tran ?stop "1200000n"  ?errpreset "conservative"  )
desVar(      "GND" 0    )
desVar(      "VDD" 0.6    )
envOption(
    'analysisOrder  list("tran")
)


ocnxlOutputSignal( "/!CLK" ?plot t)
ocnxlOutputSignal( "/A" ?plot t)
ocnxlOutputSignal( "/B" ?plot t)
ocnxlOutputSignal( "/Cin" ?plot t)
ocnxlOutputSignal( "/SUM" ?plot t)
ocnxlOutputSignal( "/CARRY_OUT" ?plot t)
ocnxlEndTest() ; "final_project:FULL_ADDER_DML_TB:2"

;====================== Sweeps setup ===========================================
ocnxlSweepVar("GND" "0")
ocnxlSweepVar("VDD" "0.6")
temper='("-50.0" "0.0" "50.0")
;====================== Model Group setup ==========================================

;====================== Job setup ==============================================
ocnxlJobSetup( '(
    "blockemail" "1"
    "configuretimeout" "300"
    "distributionmethod" "Local"
    "lingertimeout" "300"
    "maxjobs" "1"
    "name" "ADE XL Default"
    "preemptivestart" "1"
    "runtimeout" "-1"
    "showerrorwhenretrying" "1"
    "showoutputlogerror" "0"
    "startmaxjobsimmed" "1"
    "starttimeout" "300"
) )

;====================== Disabled items =========================================

;====================== Run Mode Options ======================================
ocnxlMonteCarloOptions( ?mcMethod "all" ?mcNumPoints "3" ?mcNumBins "" ?samplingMode "random" ?saveAllPlots "0" ?useReference "0" ?donominal "1" ?monteCarloSeed "" ?mcStartingRunNumber "" ?saveProcess "1" ?saveMismatch "1" ?ignoreFlag "0" ?dutSummary "" )

;====================== Starting Point Info ======================================

i=1
option('temp nthelem(i temper))

foreach( val temper

temp( nthelem(i temper))

ocnxlCorner( "ff"
   '(
      ;("variable" "temperature" " ")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/montetest.scs" ?section "")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" ?section "\"ff_18\"")
      ("modelGroup" "")
   )
)
ocnxlCorner( "fs"
   '(
     ;("variable" "temperature" "0:50:100")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/montetest.scs" ?section "")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" ?section "\"fs_18\"")
      ("modelGroup" "")
   )
)

ocnxlCorner( "ss"
   '(
     ;("variable" "temperature" "0:50:100")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/montetest.scs" ?section "")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" ?section "\"ss_18\"")
      ("modelGroup" "")
   )
)
ocnxlCorner( "sf"
   '(
    ; ("variable" "temperature" "0:50:100")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/montetest.scs" ?section "")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" ?section "\"sf_18\"")
      ("modelGroup" "")
   )
)

ocnxlCorner( "tt"
   '(
     ; ("variable" "temperature" "0:50:100")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/montetest.scs" ?section "")
      ("model" "/vlsi-netapp/vol2/PDK/TS18SL-MT/SPICE/DRS2_0018B_4_3_6/tsl018.scs" ?section "\"tt_18\"")
      ("modelGroup" "")
   )
)




fp=outfile( "../ronenronen.csv" "a")
ts=delay(VT("Cin") (VAR("VDD") / 2) 3 "rising" VT("SUM") (VAR("VDD") / 2) 4 "rising" 0 0 nil nil ?td1 0.0 ?td2 0.0 ?td2r0 nil ?stop nil)
fs=1/ts
td=delay(VT("CLK") (VAR("VDD") / 2) 2 "rising" VT("SUM") (VAR("VDD") / 2) 1 "rising" 0 0 nil nil ?td1 0.0 ?td2 0.0 ?td2r0 nil ?stop nil)
fd=1/td
ocnPrint(?output fp fd fs)


ocnPrint(?output fp nthelem(i temper))
ocnxlRun( ?mode 'sweepsAndCorners ?nominalCornerEnabled nil ?allCornersEnabled t ?allSweepsEnabled t)
ocnxlOutputSummary(?exprSummary t ?specSummary t ?detailed t ?wave t)
i=i+1
)

close(fp)

;====================== End XL Mode command ===================================
ocnxlEndXLMode()
 

 

i use 'foreach' loop in order to run this sumulation on diffrent  Temperature each time .

i worte(inside the loop) : 'temp( nthelem(i temper))'

 but it didn't change the circuit Temperature( the Temperature stay on 27 degres ) ,

why the Temperature didn't change?

what is the problem?

 

thanks

roni

  • 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