Tim Edwards
02/11/2021, 9:28 PMappend 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.Tom
02/12/2021, 4:12 AMenvsetup.sh
script in the project folder which sets up the env. variables to point to the relevant foldersStefan Schippers
02/12/2021, 1:16 PMlibname/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