<@U01819B63HP>: I want to have all of the run-tim...
# xschem
t
@User: I want to have all of the run-time setup files for sky130 in a place that is not user-specific. The default location (which today I finally got around to defining as the default) is "/usr/share/pdk/sky130A/". According to the way open_pdks is structured, all of the xschem files are copied into "/usr/share/pdk/sky130A/libs.tech/xschem/". The only things I changed in the "xschemrc" file are:
append XSCHEM_LIBRARY_PATH /usr/share/pdk/sky130A/libs.tech/xschem
and
set XSCHEM_START_WINDOW {/usr/share/pdk/sky130A/libs.tech/xschem/sky130_tests/top.sch}
My problem with this is that when I run xschem, I am getting a bunch of error messages
l_s_d(): Symbol not found: /usr/share/pdk/sky130A/libs.tech/xschem/sky130_tests/sky130_tests/_<name_of_symbol>_
. I am not sure why it has
sky130_tests
repeated twice, but that is why it is not finding the files. I have only specified that directory under
XSCHEM_START_WINDOW
, so I am not sure where it is picking up the repeated directory name.
t
@Tim Edwards is this going to be user configurable too? e.g. I have a separate drive with everything on and an
envsetup.sh
script in the project folder which sets up the env. variables to point to the relevant folders
s
@Tim Edwards The xschem symbol lookup for sky130 uses
libname/symbol.sym
, so the XSCHEM_LIBRARY_PATH paths should stop one level above the final directory:
set XSCHEM_LIBRARY_PATH /some/path
the actual location where the symbol is looked for will then be:
/some/path/libname/symbol.sym
For VLSI projects i often have realized that using only a component name (like for example 'inv.sym' or 'opamp.sym') is too weak, as there could be multiple matching device names in different directories. So all the example schematics i have in xschem use libname/symname.sym for referencing components. So if you have a base dir
/usr/share/pdk/sky130A/libs.tech/xschem
that contains these directories:
sky130_stdcells/
sky130_tests/
sky130_fd_pr/
define XSCHEM_LIBRARY_PATH in the following way:
set XSCHEM_LIBRARY_PATH ${XSCHEM_SHAREDIR}/xschem_library:/usr/share/pdk/sky130A/libs.tech/xschem
The first path component is xschem own symbol library (containing base elements, pins, labels, ideal spice primitives etc). Then you can if you want define a schematic to load at startup:
set XSCHEM_START_WINDOW sky130_tests/top.sch
note that xschem searches the XSCHEM_LIBRARY_PATH path list to find the actual schematic:
/usr/share/pdk/sky130A/libs.tech/xschem/sky130_tests/top.sch