• 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. dynamic parameter in SpectreMDL

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 15065
  • 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

dynamic parameter in SpectreMDL

aarthymani
aarthymani over 7 years ago

Hi, 

    Basis: there is a need for me to change the temperature within the transient simulation.  I followed the post as linked below, and got it working in Spectre from ADE

   https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/10265/varying-the-temperature-in-a-transient-simulation 

    Problem: as the data extraction is huge, I have been using spectremdl to run the simulation, now with the "temp" as dynamic parameter, there is no change in expected results, the changes are obvious in ADE simulation though.  I have extracted the netlist from the test bench that worked well in ADE. 

   simple test case:  

   the tran control reads: 

             tran tran stop=1u param=temp param_vec=[0 27 315n 27 316n -20 416n -20 417n 100 517n 100 518n 40 618n 40] write="spectre.ic" writefinal="spectre.fc" annotate=status maxiters=5

   my spectremdl control file reads:

           t1 = temp @ 275n

           t2 = temp @ 375n 

           t3  = temp @ 475n 

but t1, t2, t3 all end up as same value. (T2=T3=T1=27) 

So, I am wondering whether the option is supported in spectremdl? or am i missing anything here? 

Thanks!

Aarthy

 

  

  • Cancel
Parents
  • aarthymani
    aarthymani over 7 years ago

    Hi Everyone, 

          It was my mistake, I missed the fact, "run tran" from spectremdl control file replace the tran from the netlist file. 

    but I am still looking for any way to implement dynamic parameter (during tran simulation) in spectremdl tran statement. Any suggestions? 

    Thanks!

    Aarthy

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to aarthymani

    No, that's not it. If you have an analysis with an instance name "tran" in the netlist, then "run tran" runs that analysis, with whatever parameters defined in the netlist (unless you override them in the MDL). The dynamic parameter is actually working - it's just that the temp variable in the MDL is not being updated when changed from the tran analysis. 

    I filed CCR 1889737 for this. You might want to contact customer support and ask for a duplicate CCR to be filed so that it can be tracked against you as a customer (please mention this conversation and also the CCR number to avoid the AE duplicating work).

    Here's what I did:

        // -- start of netlist
        parameters period=100n tr=1n
    
        Vclk (clk 0) vsource type=pulse period=period width=period/2 val0=0 val1=1 rise=tr fall=tr
        R1 (clk op) resistor r=1k tc1=0.01
        C1 (op 0) capacitor c=1p
    
        tran tran stop=1u param=temp param_vec=[0 27 315n 27 316n -20 416n -20 417n 100 517n 100 518n 40 618n 40] write="spectre.ic"
    writefinal="spectre.fc" annotate=status maxiters=5
    
        save R1:res temp clk op
        // -- start of netlist

        // -- start of MDL
        alias measurement dostuff {
    	run tran
    	export real t1 = temp @ 275n
    	export real t2 = temp @ 375n
    	export real t3 = temp @ 475n
    	export real r1 = R1:res @ 275n
    	export real r2 = R1:res @ 375n
    	export real r3 = R1:res @ 475n
        }
    
        run dostuff
        // -- end of MDL

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to aarthymani

    No, that's not it. If you have an analysis with an instance name "tran" in the netlist, then "run tran" runs that analysis, with whatever parameters defined in the netlist (unless you override them in the MDL). The dynamic parameter is actually working - it's just that the temp variable in the MDL is not being updated when changed from the tran analysis. 

    I filed CCR 1889737 for this. You might want to contact customer support and ask for a duplicate CCR to be filed so that it can be tracked against you as a customer (please mention this conversation and also the CCR number to avoid the AE duplicating work).

    Here's what I did:

        // -- start of netlist
        parameters period=100n tr=1n
    
        Vclk (clk 0) vsource type=pulse period=period width=period/2 val0=0 val1=1 rise=tr fall=tr
        R1 (clk op) resistor r=1k tc1=0.01
        C1 (op 0) capacitor c=1p
    
        tran tran stop=1u param=temp param_vec=[0 27 315n 27 316n -20 416n -20 417n 100 517n 100 518n 40 618n 40] write="spectre.ic"
    writefinal="spectre.fc" annotate=status maxiters=5
    
        save R1:res temp clk op
        // -- start of netlist

        // -- start of MDL
        alias measurement dostuff {
    	run tran
    	export real t1 = temp @ 275n
    	export real t2 = temp @ 375n
    	export real t3 = temp @ 475n
    	export real r1 = R1:res @ 275n
    	export real r2 = R1:res @ 375n
    	export real r3 = R1:res @ 475n
        }
    
        run dostuff
        // -- end of MDL

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • aarthymani
    aarthymani over 7 years ago in reply to Andrew Beckett

    Hi Andrew, 

       Thank you for the response and CCR.  

      Actually, my circuit intention is not to measure the temperature as such. I was just using it to debug. And since the values are not updated and the actual values I was measuring also, didn't reflected the expected change. I doubted the functionality with SpectreMDL as I couldn't find anything in spectremdl documentation. 

       From your reply, i understood it does work.

    Regards,

    Aarthy

    • 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