I have created the <xschem_sky130> repository on g...
# xschem
s
I have created the xschem_sky130 repository on github that contains a first set of symbols to be used with the sky130 pdk. Right now there are symbols for the 1.8V, and higher voltage P and N mos, resistors, diodes and the pnp bipolar transistor All these symbols have been simulated with ngspice (a simple dc sweep) . The xschem_sky130 contains a xschemrc file, running xschem from this directory will set the correct search paths. The top level schematic (loaded automatically on xschem startup) contains 6 subcircuit testbenches, for testing diodes, bipolar pnp, resistor, Nfet, Pfet and finally a ring oscillator for testing the process speed (1.8V fet). Any feedback welcome 🙂 @User @User @User
❤️ 4
b
Very nice! I'll update my tutorial to use them
s
Thank you! i am interested to know if you find problems of any kind. 👍
b
https://github.com/StefanSchippers/xschem_sky130/blob/main/xschemrc#L20 - should this be
append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library/devices
maybe?
It seems that when I run with that
XSCHEM_LIBRARY_PATH
I get errors about not finding symbols like
vsource
but if I add /devices/ in the end it works fine
s
in the submitted repo and test cases i am referencing symbols in schematic as 'devices/ipin.sym' instead of just 'ipin.sym'. See this tutorial
b
Aha! Ok
s
for big designs, typically VLSI/ASIC, i use one level indirection to better avoid name clashes
b
Very good, I will adopt that
s
on the other end pcb hobbysts / small circuits designers will blame me for this, so either way is possible
the less specific the XSCHEM_LIBRARY_PATH the more specific the component references in the schematic. The end goal si to avoid absolute paths in schematic, that is evil.
for VLSI the 'one directory specification' symbol references is almost mandatory. for example , when creatin the diode models for sky130, the cell name is specified to be diode.sym, that already clashes with the generic diode.sym supplied in devices.
b
I will include a step in the tutorial where the user will configure the xschemrc and explain why
It seems reasonable to me that you have to set up what components you want to use
s
very good!!. for issues or misbehaviours let me know, i like to hear about other user's experiences
yes, using only a component name is too generic, at the end there is a good chance to pick up the wrong one. Xschem searches the search path in the order it is given and picks the first match