<@U016EM8L91B> Since there are (small?) syntactic ...
# openlane
h
@User Since there are (small?) syntactic differences in the model file for
ngspice
and `xyce`: Have you ever thought about or planned to add a model file processing for
xyce
like for
ngspice
in
open_pdks
? I think about starting a student project to look into this, but if there is already something almost available that I would rather not.
t
Not really, because I have reduced the netlist differences to (1) The
.option scale
, which I discovered a workaround which is to have two lines, one with the syntax for ngspice, and the other with the syntax for xyce. Each tool ignores the other's options; and (2) failure of xyce to handle level-3 diodes, which is a bit of a show-stopper for xyce, but which Eric Keiter promised to implement. For all other syntax differences, there was always some variation that would satisfy both ngspice and xyce.
h
That sounds good! Where I currently struggle is that the netlist written by xschem is not xyce compatible, in at least this detail:
Copy code
XM10 out in VDD VDD sky130_fd_pr__pfet_g5v0d10v5 L=0.5 W=8 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
Xyce does not like the expression in the subcircuit call. Not sure what would be a proper syntax.
@User Could you please provide an exemplary netlist that works for both ngspice and xyce?
t
Well, it's true that Xyce does not resolve parameters that are used on the same line as they are defined. There was a discussion about this in the #xyce channel and Eric Keiter is aware of the issue. There was also supposed to be an issue logged on the github issue tracker for Xyce, but I looked there and did not see any, open or closed, so I went ahead and created a new issue ticket so it's formally logged.
👏 1