• 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. Magnetic Tunneling Junction (MTJ)- HSpice file simulation...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 127
  • Views 4999
  • 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

Magnetic Tunneling Junction (MTJ)- HSpice file simulation in ADE -Cadecne Virtuoso

AkashUB
AkashUB over 11 years ago

Hi, 

    I am working on modeling of STT-MTJ using Cadecne Virtuoso.  I am trying to simulate model ' MTJT.inc '   (  Ref : - Jon Harm, Farbod Ebrahimi- Univertsity of Minnesota ) using Cadence Virtuoso Spectre. 

    I have following doubt    :-

       MTJ as a device, how do I instantiate a this H-spice sub-circuit file physically on schematic and simulate with Spectre in ADE-L? In schematic should I need to place all internal electrical component that explained in subcirciut?  How to change CDF parameters for this file? 

I would be obliged for your possible guidance. I am sorry but I am new in macro mdeling and sub circuit simulation. Thank you.

For reference MTJT.Inc  file :- 

 

** MTJT macro-model 
**
** Authors:
**	Jon Harms		(harms074@umn.edu)
**	Farbod Ebrahimi	(ebrah008@umn.edu)
**
** Latest Update:
**	2009 08 13
**

** -------------------------**
** Declaration of Sub-circuit
** -------------------------**

.SUBCKT MTJT n+ n-
.PRINT R(gMTJ)

** -------------------------**
** User Parameter Defaults
** -------------------------**
.PARAM
+	ICAP=346u
+	ICP=346u
+	RAP=1008
+	RP=288
+	RVFIT=.5
+	THSBT=22
+	IC=-1
+	TTP=7n
+	PCAP=.6f
+	ITPP='ICP*(1-THSBT*log(TTP/1n))'
+	ITPAP='ICAP*(1-THSBT*log(TTP/1n))'

** -------------------------**
** MTJ Electrode Connections
** -------------------------**

*~Voltage Controlled Resistor
gMTJ 	n+	nVCR1	VCR	nVCtrl	0	1e3

*~Parasitic Capacitance
cPara	n+	nVCR1	'PCAP'

*~Current Sampling
vISample	n-	nVCR1	DC=0

*~Binary Current Sensors
eISensBin1	nINeg 0	VOL='EXP(5*I(vISample)/ICP)-1' MIN=0 MAX=1
eISensBin2	nIPos 0	VOL='EXP(5*I(vISample)/-ICAP)-1' MIN=0 MAX=1

** -------------------------**
** Decision Circuit
** -------------------------**

*~Current mirrors
gMirror1	n51	n50	CUR='1/(EXP(THSBT*(1+I(vISample)/-ICAP))+TTP*1e5*(-ITPAP/I(vISample))^2)' MAX=10
gMirror2	n50	n51	CUR='1/(EXP(THSBT*(1+I(vISample)/ICP))+TTP*1e5*(ITPP/I(vISample))^2)' MAX=10

*~Decision capacitors
cDec1	n50	0 1n IC=0
cDec2	n51	0 1n IC=0

*~Voltage limiters
rlim1	n50	n60	.01
elim1	n60	0	n50	0	1	MIN=0 MAX=1.01
rlim2	n51	n61	.01
elim2	n61	0	n51	0	1	MIN=0 MAX=1.01
rshunt1 n50 0 10g
rshunt2 n51 0 10g

*~Current controlled 2:1 MUX
eMux3 nVDec	0	VOL='v(n50)*v(nINeg)-v(n51)*v(nIPos)'

** -------------------------**
** Bi-stable Multivibrator
** -------------------------**

*~Amplifier w/clipping
eBiStable	nBiStable	0	VCVS	nFeedback	0	10000	MAX=10V		MIN=-10V

*~Positive Feedback
rFB1	nVDec	nFeedback	1e3
rFB2	nFeedback	nBiStable	10e3

*~Initial Conditions
cIC1	nFeedback	0	1f	IC='(IC<0)?-1V:1V'
cIC2	nBiStable	0	1f	IC='(IC<0)?-10V:10V'

*~Biasing and offset
eVTMR	nVTMR	0	VCVS	nBistable	0	1	MIN='RP/1e3' MAX='RAP/1e3'

** -------------------------**
** Curve Fitting Circuit
** -------------------------**

*~Curve fitting amplifiers
eRVFit	nRVFit 	0	VOL='v(nVTMR)*(EXP((PWR(ABS(v(n+)-v(n-)),2)/(-2*RVFIT))))'

*Feedback filter (avoids oscillation)
rShunt3 	nRVFit nVCtrl 1k
cSRL2 	nVCtrl 0 6f

.ends MTJT
 

 

  • Cancel
  • Quek
    Quek over 11 years ago

    Hi AkashUB

    Here is how you can do it:

    a. Rename n+ and n- to nPlus and nMinus

    .SUBCKT MTJT n+ n-

    b. Create a cell "MTJT" that has a symbol with pins nPlus and nMinus

    c. Go to the CDF of the cell and go to simInfo section. Set subcircuit name to "MTJT" and ensure that the termOrder is "nPlus nMinus".

    d. Copy symbol view as "hspiceD" view

    e. Open ADE, switch to hspiceD simulator and add the subckt file as one of the model files.

    f. Run simulation

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • AkashUB
    AkashUB over 11 years ago

    Hi Quek,  Thanks a lot for great guidance. Please could you elaborate little more about 'Copy symbol view as "hspiceD" view'?

    Thank you.  

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 11 years ago

    Hi AkashUB

    Here are the details:

    a. In library manger, select the "symbol" view which you had created
    b. Right mouse click and select "Copy" from the right mouse menu
    c. Enter "hspiceD" as the name for the new view


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • AkashUB
    AkashUB over 11 years ago

    Hi Quek,

        Really thanks for your qiuck and helpful response. I follow all your instructions, sorry but I am getting this error :

    " ERROR (OSSHNL-108): The property, 'connectivityLastUpdated', specified on library 'MTJT_15thSept', cell 'MTJT',

    view 'hspiceD', does not have an integer value. Re-extract the design (File->Check

    and Save menu option) to correct this error.

    End netlisting Sep 17 11:07:14 2014

    ERROR (OSSHNL-514): Netlisting failed due to errors reported before. Netlist may be corrupt or may not be produced at all. Fix reported errors and netlist again.

    ...unsuccessful. "

        Could you please help me in this. I have attched '.doc'-file  along with this post for your reference. Please find attachment.

    I would be obliged for your possible guidance. 

        

    MTJT_Error_Cadence.doc
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 11 years ago

    Hi AkashUB

    Would you please do the following?

    a. Open up "symbol" view of the MTJT_15thSept cell in library manager
    b. Execute "File->Check and Save"
    c. Repeat steps "a" and "b" for "hspiceD" view


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Surya Kiran
    Surya Kiran over 11 years ago

     Are you working on hspiceD simulator?
    The model works well in spectre simulator.

    Surya

    • 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