• 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. regarding simulating a verilogams file in cadence for implementing...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 3025
  • 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

regarding simulating a verilogams file in cadence for implementing mtj

JJ202409288946
JJ202409288946 11 months ago



I have a verilogams code for implementing mtj model, so firstly I have created the verilogams file , then created symbol from the code. Then i have designed a test circuit and put the instance i have created into the circuit. Then i have done transient analysis. But firstly it was giving a an error of   "unable to descend into any of the views defined in the view list, 'spectre cmos_sch cmos.sch schematic veriloga', for the instance 'i7' in cell 'test1'. add one of these views to the cell 'mtj_model' in the library 'mtj_vb', or modify the view list so that it contains an existing view"  then according to your suggestion , i have added verilogams view n setup->environment
then it is giving the error I have shown above. I have also attached the picture of the circuit. Please help me out here 


also to mention, in this circuit, the mtj_model and initials both are the symbol created from separate  verilogams files

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett 11 months ago

    Two issues:

    1. VerilogAMS cannot be used in Spectre, only in AMS Designer. That's because VerilogAMS can contain features that require a digital (event-driven) engine and hence need mixed-signal simulation. This is true even if the VerilogAMS view only uses the analog subset of VerilogAMS. If that's the case (which I would guess it would be for a Magnetic Tunnel Junction device) then you should create a veriloga view instead. This will then be supported during netlisting, and in Spectre too.
    2. You appear to have included the gpdk090 models twice, or incorrectly at least. Check your Setup→Model Libraries in ADE to ensure they are not listed twice (also check Setup→Simulation Files in case you have included them there too).

    Andrew 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • JJ202409288946
    JJ202409288946 11 months ago in reply to Andrew Beckett

    Thanks Andrew!
    I have solved the problem of running the simulation in spectre with verilogams code, Now the netlist doesnt give any error
    But a new problem is that whenever I try to plot the currents of the terminals the transient analysis is not working, but the plots of voltages are fine, but it could not plot the currents. I am attaching here the plots , netlist file, ams code and the ckt :




    Netlist:

    // Generated for: spectre
    // Generated on: Oct 6 12:28:19 2024
    // Design library name: mtj_vd
    // Design cell name: test
    // Design view name: schematic
    simulator lang=spectre
    global 0
    include "/home/vlsi11/g11/include_ams.scs"
    include "/home/eda/cadence/tech/process/gpdk090_v4.6/libs.oa22/gpdk090/../../models/spectre/gpdk090.scs" section=NN

    // Library name: mtj_vd
    // Cell name: test
    // View name: schematic
    I0 (pos neut 0 net08 net013 _mz) mtj_model use_as_dmtj=1 \
    plank_constant=1.054e-27 electron_charge=1.602e-19 \
    gyromagnetic_ratio=1.7608e+07 alpha=0.002 Ms=1050 Hk=250 Vh=0.5 \
    Rp=1500 tmr=2 length=6e-06 width=6e-06 thickness=1e-07 tox=1.2e-09 \
    kb=1.38e-16 T=300
    I1 (net011 net012 net010) Initial kb=1.38e-16 T=300 Ms=1050 Hk=250 \
    length=6e-06 width=6e-06 thickness=1e-07
    NM0 (net4 net1 pos pos) gpdk090_nmos1v w=(1.2u) l=100n as=336f ad=336f \
    ps=2.96u pd=2.96u m=(1)*(1) simM=(1)*(1)
    V1 (net1 0) vsource type=pulse val0=5 val1=0 period=10n rise=10p fall=10p \
    width=5n
    C2 (net4 0) capacitor c=250f
    C1 (pos 0) capacitor c=1f
    C0 (net1 0) capacitor c=250f
    R4 (_mz net010) resistor r=100m
    R5 (net013 net012) resistor r=100m
    R6 (net08 net011) resistor r=100m
    R3 (neut 0) resistor r=1M
    V0 (net4 0) vsource dc=5 type=dc
    ic _mz=0.5 net013=0.5 net08=0.5 net011=0.5 net012=0.5 net010=0.5
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf
    tran tran stop=100n errpreset=conservative write="spectre.ic" \
    writefinal="spectre.fc" annotate=status maxiters=5
    finalTimeOP info what=oppoint where=rawfile
    modelParameter info what=models where=rawfile
    element info what=inst where=rawfile
    outputParameter info what=output where=rawfile
    designParamVals info what=parameters where=rawfile
    primitives info what=primitives where=rawfile
    subckts info what=subckts where=rawfile
    save I0pos I0mz I0my I0mx
    saveOptions options save=allpub


    it seems like the mtj is not giving output correctly but i am pretty sure my code is fine, but the plot is not showing for currents

    Please help me out Sir

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • JJ202409288946
    JJ202409288946 11 months ago in reply to Andrew Beckett

    Thanks Andrew!
    I have solved the problem of running the simulation in spectre with verilogams code, Now the netlist doesnt give any error
    But a new problem is that whenever I try to plot the currents of the terminals the transient analysis is not working, but the plots of voltages are fine, but it could not plot the currents. I am attaching here the plots , netlist file, ams code and the ckt :




    Netlist:

    // Generated for: spectre
    // Generated on: Oct 6 12:28:19 2024
    // Design library name: mtj_vd
    // Design cell name: test
    // Design view name: schematic
    simulator lang=spectre
    global 0
    include "/home/vlsi11/g11/include_ams.scs"
    include "/home/eda/cadence/tech/process/gpdk090_v4.6/libs.oa22/gpdk090/../../models/spectre/gpdk090.scs" section=NN

    // Library name: mtj_vd
    // Cell name: test
    // View name: schematic
    I0 (pos neut 0 net08 net013 _mz) mtj_model use_as_dmtj=1 \
    plank_constant=1.054e-27 electron_charge=1.602e-19 \
    gyromagnetic_ratio=1.7608e+07 alpha=0.002 Ms=1050 Hk=250 Vh=0.5 \
    Rp=1500 tmr=2 length=6e-06 width=6e-06 thickness=1e-07 tox=1.2e-09 \
    kb=1.38e-16 T=300
    I1 (net011 net012 net010) Initial kb=1.38e-16 T=300 Ms=1050 Hk=250 \
    length=6e-06 width=6e-06 thickness=1e-07
    NM0 (net4 net1 pos pos) gpdk090_nmos1v w=(1.2u) l=100n as=336f ad=336f \
    ps=2.96u pd=2.96u m=(1)*(1) simM=(1)*(1)
    V1 (net1 0) vsource type=pulse val0=5 val1=0 period=10n rise=10p fall=10p \
    width=5n
    C2 (net4 0) capacitor c=250f
    C1 (pos 0) capacitor c=1f
    C0 (net1 0) capacitor c=250f
    R4 (_mz net010) resistor r=100m
    R5 (net013 net012) resistor r=100m
    R6 (net08 net011) resistor r=100m
    R3 (neut 0) resistor r=1M
    V0 (net4 0) vsource dc=5 type=dc
    ic _mz=0.5 net013=0.5 net08=0.5 net011=0.5 net012=0.5 net010=0.5
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
    tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
    digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
    checklimitdest=psf
    tran tran stop=100n errpreset=conservative write="spectre.ic" \
    writefinal="spectre.fc" annotate=status maxiters=5
    finalTimeOP info what=oppoint where=rawfile
    modelParameter info what=models where=rawfile
    element info what=inst where=rawfile
    outputParameter info what=output where=rawfile
    designParamVals info what=parameters where=rawfile
    primitives info what=primitives where=rawfile
    subckts info what=subckts where=rawfile
    save I0pos I0mz I0my I0mx
    saveOptions options save=allpub


    it seems like the mtj is not giving output correctly but i am pretty sure my code is fine, but the plot is not showing for currents

    Please help me out Sir

    • 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