Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com 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.

Duplicate nodes error/ difficulty reading input error

Status
Not open for further replies.

TMountain

Newbie
Joined
Apr 23, 2021
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
86
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: https://nanohub.org/groups/spintronics/non_local_spin_torque.

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))'

.ends
.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'
+p='0.99'
* 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)'


.ends




.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'

.ends

.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!
 

first, the error the computer gives may be a secondary issue
that is, sometimes, the real error is earlier, and it doesn't show up until later

second, check all of the .subckt commands
it looks like two of them start with g_fm, and that's what's in the parenthesis of the error message

third, check all of the syntax and variable formats
check for missing quotes, commas, colons, periods, etc

fourth, test it with something you know the result of
say a textbook example wherein all the parameters are specified and the result given
that will show up other issues the compiler doesn't
 
Thank you so much for your reply! I really appreciate it!

That's strange! This is my first time using HSPICE so it's useful to know to look for errors throughout the rest of the script too, not just where the error is targeted at.

I have changed the name of one of the modules to 'ferro.sp' and changed the .subckt to be called ferro since it was originally called 'G_FM_NM' which began with the same 'G_FM' as the module called 'G_FM' on its own so I thought that was a really good suggestion that made sense! When I did this I received the exact same error but with the parenthesis stating the new name of this .subckt so at least that rules out one possibility of what it could be.

1619371635453.png


My fear that they have written it and there is a small syntax error somewhere that I am struggling to spot. I'm not sure if this will be the case since this was a tool created for other academics to freely use so I can't imagine there would be mistakes in it. Everyone does make mistakes though. There is nothing that jumps out to me as a syntax error.

I would love to test it using a known example, I have one in mind I'd love to try. Since I receive this error early on the script can't simulate the rest and produce the .tr0 file I would need to compare against the textbook data.

I have uploaded listing file below.
 

Attachments

  • mainaslerror.txt
    15.2 KB · Views: 228

most software does not allow variable names starting with numbers
try changing 1c 2c 1z ... to start with a letter instead of a number
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top