Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Hspice Users

Hspice Users

Share this group

Quick Overview

Total members
Total events
Total discussions
Total views
Total albums
Duplicate nodes error/ difficulty reading input error

Hello, I am trying to use HSPICE to run a non-local spin tranfser torque circuit developed by Kerem Camasari and colleagues, taken from the website:

When I run the circuit in HSPICE I get two errors when it loads in the final module that I am unsure how to fix:

* version 1.0.1alpha
* copyright @ 2015 kerem y. camsari, samiran ganguly, supriyo datta group, purdue university
* the terms under which the software and associated documentation (the software) is provided are as the following:
* the software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. in no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
* kerem y. camsari, samiran ganguly supriyo datta group, purdue university grants, free of charge, to any users the right to modify, copy, and redistribute the software, both within the user's organization and externally, subject to the following restrictions:
* 1. the users agree not to charge for the code itself but may charge for additions, extensions, or support.
* 2. in any product based on the software, the users agree to acknowledge the research group that developed the software. this acknowledgment shall appear in the product documentation.
* 3. the users agree to obey all u.s. government restrictions governing redistribution or export of the software.
* 4. the users agree to reproduce any copyright notice which appears on the software on any copy or modification of such made available to others.
* agreed to by
* kerem y. camsari
* samiran ganguly
* february 2015

.include llg.sp
* library module for llg

.subckt llg_block theta phi hsx hsy hsz

ctheta theta 0 c='tau'
cphi phi 0 c='tau'
gtheta 0 theta cur='-sin(v(theta)) * hp * cos(v(phi)) * sin(v(phi)) - sin(v(theta)) * alpha * cos(v(theta)) - sin(v(theta)) * alpha * hp * cos(v(phi)) ^ 2 * cos(v(theta)) - hs * v(hsz) * sin(v(theta)) + hs * sin(v(phi)) * v(hsy) * cos(v(theta)) + hs * cos(v(phi)) * v(hsx) * cos(v(theta)) + hs * cos(v(phi)) * alpha * v(hsy) - hs * sin(v(phi)) * alpha *v(hsx)'
gphi 0 phi cur='alpha * hp * sin(v(phi)) * cos(v(phi)) - cos(v(phi)) ^ 2 * cos(v(theta)) * hp - cos(v(theta)) - hs * (v(hsx) * sin(v(phi)) - alpha * v(hsz) * sin(v(theta)) + alpha * cos(v(theta)) * v(hsy) * sin(v(phi)) + cos(v(phi)) * alpha * cos(v(theta)) * v(hsx) - cos(v(phi)) * v(hsy)) / sin(v(theta))'

emx 6 0 vol='sin(v(theta))*cos(v(phi))'
emy 7 0 vol='sin(v(theta))*sin(v(phi))'
emz 8 0 vol='cos(v(theta))'

.include g_fm_nm.sp

.subckt g_fm_nm cfm cnm zfm znm xfm xnm yfm ynm theta phi isx isy isz g='1' a='1' b='0'
* 4x4 conductance matrix for fm||nm interface
* port definition: charge terminals - to spin terminals theta, phi= angle of magnet direction in sph. coord.
* isx isy isz : spin-current flowing through the shunt conductances (numerical value and not absolute value,
* treated as parameter passing)
* see accompanying pdf: rotationmatricesforfmandfmnm to see details
* kerem yunus camsari, 2015, february

.param s1(x)='sin(x)'
.param c1(x)='cos(x)'
.param s2(x)='sin(x)*sin(x)'
.param c2(x)='cos(x)*cos(x)'
.param sc(x)='sin(x)*cos(x)'

* series column (rotation)
e11 d11 0 vol='g'
e12 d12 0 vol='g*p*c1(v(theta))'
e13 d13 0 vol='g*p*s1(v(theta))*c1(v(phi))'
e14 d14 0 vol='g*p*s1(v(theta))*s1(v(phi))'

e21 d21 0 vol='g*p*c1(v(theta))'
e22 d22 0 vol='(g)*c2(v(theta))'
e23 d23 0 vol='(g)*sc(v(theta))*c1(v(phi))'
e24 d24 0 vol='(g)*sc(v(theta))*s1(v(phi))'

e31 d31 0 vol='g*p*s1(v(theta))*c1(v(phi))'
e32 d32 0 vol='(g)*sc(v(theta))*c1(v(phi))'
e33 d33 0 vol='(g)*s2(v(theta))*c2(v(phi))'
e34 d34 0 vol='(g)*s2(v(theta))*sc(v(phi))'

e41 d41 0 vol= '(g)*p*s1(v(theta))*s1(v(phi))'
e42 d42 0 vol= '(g)*sc(v(theta))*s1(v(phi))'
e43 d43 0 vol= '(g)*s2(v(theta))*sc(v(phi))'
e44 d44 0 vol='(g)*s2(v(theta))*s2(v(phi))'

gc11 cfm cnm cur='v(d11)*(v(cfm)-v(cnm))'
gc12 cfm cnm cur='v(d12)*(v(zfm)-v(znm))'
gc13 cfm cnm cur='v(d13)*(v(xfm)-v(xnm))'
gc14 cfm cnm cur='v(d14)*(v(yfm)-v(ynm))'

gz21 zfm znm cur='v(d21)*(v(cfm)-v(cnm))'
gz22 zfm znm cur='v(d22)*(v(zfm)-v(znm))'
gz23 zfm znm cur='v(d23)*(v(xfm)-v(xnm))'
gz24 zfm znm cur='v(d24)*(v(yfm)-v(ynm))'

gx31 xfm xnm cur='v(d31)*(v(cfm)-v(cnm))'
gx32 xfm xnm cur='v(d32)*(v(zfm)-v(znm))'
gx33 xfm xnm cur='v(d33)*(v(xfm)-v(xnm))'
gx34 xfm xnm cur='v(d34)*(v(yfm)-v(ynm))'

gy41 yfm ynm cur='v(d41)*(v(cfm)-v(cnm))'
gy42 yfm ynm cur='v(d42)*(v(zfm)-v(znm))'
gy43 yfm ynm cur='v(d43)*(v(xfm)-v(xnm))'
gy44 yfm ynm cur='v(d44)*(v(yfm)-v(ynm))'

* 4x4 conductance matrix for the shunt component
* first column is zero: no charge current through spin-shunts
* first row is also zero: through reciprocity

e55 d55 0 vol= 'g*a*s2(v(theta))'
e56 d56 0 vol= '-g*s1(v(theta))*(a*c1(v(phi))*c1(v(theta))+b*s1(v(phi)))'
e57 d57 0 vol= '-g*s1(v(theta))*(a*s1(v(phi))*c1(v(theta))-b*c1(v(phi)))'

e65 d65 0 vol= 'g*s1(v(theta))*(-a*c1(v(phi))*c1(v(theta))+b*s1(v(phi)))'
e66 d66 0 vol= 'g*a*( c2(v(phi))*c2(v(theta))+1-c2(v(phi)))'
e67 d67 0 vol= 'g*(-a*sc(v(phi))+a*sc(v(phi))*c2(v(theta))-b*c1(v(theta)))'

e75 d75 0 vol='-g*s1(v(theta))*(a*s1(v(phi))*c1(v(theta))+b*c1(v(phi)))'
e76 d76 0 vol='g*(-a*sc(v(phi))+a*sc(v(phi))*c2(v(theta))+b*c1(v(theta)))'
e77 d77 0 vol='-g*a*(-c2(v(phi))+c2(v(phi))*c2(v(theta))-c2(v(theta)))'

gz55 znm 0 cur='v(d55)*(v(znm))'
gz56 znm 0 cur='v(d56)*(v(xnm))'
gz57 znm 0 cur='v(d57)*(v(ynm))'

gx65 xnm 0 cur='v(d65)*(v(znm))'
gx66 xnm 0 cur='v(d66)*(v(xnm))'
gx67 xnm 0 cur='v(d67)*(v(ynm))'

gy75 ynm 0 cur='v(d75)*(v(znm))'
gy76 ynm 0 cur='v(d76)*(v(xnm))'
gy77 ynm 0 cur='v(d77)*(v(ynm))'
* reading the total spin-current x,y,z flowing through the interface shunt conductance.
ezz isz 0 vol='i(gz55)+i(gz56)+i(gz57)'
exx isx 0 vol='i(gx65)+i(gx66)+i(gx67)'
eyy isy 0 vol='i(gy75)+i(gy76)+i(gy77)'


.include g_nm.sp
* library module for nm

.subckt g_nm t1c t2c t1z t2z t1x t2x t1y t2y area='1e-18' l='1e-9' rho='1' lsf='1e-9'

* internal parameters
.param gcse='area/(rho*l)'
.param gsse='gcse*(l/lsf)/sinh(l/lsf)'
.param gssh='gcse*(l/lsf)*tanh(l/(2*lsf))'

* series t1-t2
rc12 t1c t2c r='1/gcse'
rx12 t1x t2x r='1/gsse'
ry12 t1y t2y r='1/gsse'
rz12 t1z t2z r='1/gsse'

* shunt for spin t1
rx10 t1x 0 r='1/gssh'
ry10 t1y 0 r='1/gssh'
rz10 t1z 0 r='1/gssh'

* shunt for spin t2
rx20 t2x 0 r='1/gssh'
ry20 t2y 0 r='1/gssh'
rz20 t2z 0 r='1/gssh'


.include g_fm.sp

* library module for bulk fm

.subckt g_fm 1c 2c 1z 2z 1x 2x 1y 2y the phi area='1e-14' l='1e-6' rho='19*1e-8' lsf='5e-9' lsft='1e-9/2' p='0.1'
**error** (g_fm.sp:27) subcircuit definition duplicates node 1
**error** (g_fm.sp:27) difficulty in reading input

***** job aborted
1****** HSPICE -- A-2008.03 32-BIT (Feb 26 2008) winnt ******
* library module for fm|nm interface
****** job statistics summary tnom= 25.000 temp= 25.000

total memory used 149 kbytes

# nodes = 0 # elements= 0
# diodes= 0 # bjts = 0 # jfets = 0 # mosfets = 0
# va device = 0

analysis time # points tot. iter conv.iter

op point 0.00 1 0
readin 0.02
errchk 0.00
setup 0.00
output 0.00
total cpu time 0.05 seconds
total elapsed time 1 seconds
job started at 16:16:54 04/21/2020
job ended at 16:16:54 04/21/2020

Init: hspice initialization file: C:\synopsys\Hspice_A-2008.03\hspice.ini

If anyone could help with this I would be so grateful!

Part and Inventory Search