<@U016EM8L91B> Since there are (small?) syntactic ...
# openlane
@User Since there are (small?) syntactic differences in the model file for
and `xyce`: Have you ever thought about or planned to add a model file processing for
like for
? I think about starting a student project to look into this, but if there is already something almost available that I would rather not.
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.
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?
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