Hi,
I found what was causing the issue with XDM and the translation of the model file, it did not like something in the BJT models. Since I am not using BJTs, I just got rid of it and the conversion was successful. After reading the converted model file into xyce, I found these issues below and fixed them. I am not sure if there is a better way to fix these issues other than what I have done, but at least what I have done so far seems to have worked.
1- Xyce did not like the multiline delimiter \\. To avoid that, I removed this delimiter and removed the new line, this seems to get this to work.
.param a = 'b+c\\
+d'
should be converted to either
or
2- Xyce did not like parameters described as below:
.param f1(a) = 'a*2'
To get this to work, all these parameters needed to be transformed to:
.func f1(a) {a*2}
3- Xyce did not like conditional parameters when spaces are not used:
.param a = 'b > 1 ? x: y'
This needed to be fixed to
.param a = 'b > 1 ? x : y'
notice the space before the colon. The same also applies for & and | signs, I needed to add spaces around them.
4- Xyce did not like parameters with the simulation temperature being used in them:
.param a = 'temper*2'
To fix this, I needed to add a global parameter for the temperature to be used in all the parameters
.global_param temper = 100
Now, I am still facing one more error:
Netlist error in file l28hlp_mm_v101_e.lib at or near line 142553
Model is required for device M1 and no valid model card found.
Simulation aborted due to error. There are 0 MSG_FATAL errors and 1 MSG_ERROR
I am guessing this is related to the simulator unable to find the proper model card for the length/width limits, right? I am going to keep on debugging, but I was wondering whether this rings a bell or not.
m1 d g s b n_1p05_hlplvt_lplus_main
+ w=w l=l ad=ad as=as pd=pd ps=ps sd=sd
+ nf=nf dtemp=dtemp sca=sca scb=scb scc=scc
+ nrd=nrd nrs=nrs
************************************************************************************************************************
.model n_1p05_hlplvt_lplus_main.1 nmos
+vgs_max = '1.1*1.05'
+vgd_max = '1.1*1.05'
+vds_max = '1.1*1.05'
+vbd_max = '2.1*1.05'
+vbs_max = '2.1*1.05'
+vgb_max = '2.1*1.05'
+lmin = '9.0000000e-007-dxl_n_1p05_hlplvt' lmax = '5.4000000e-006+1.0000000e-010'
+wmin = '4.5000000e-006-dxw_n_1p05_hlplvt' wmax = '9.0000000e-006+1.0000000e-010'
+level = 54 version = 4.62
+binunit = 1 paramchk = 1
Regards,
Hassan