diff --git a/doc/xschem_man/tutorial_xschem_libraries.html b/doc/xschem_man/tutorial_xschem_libraries.html index a9184cd2..d59d3a73 100644 --- a/doc/xschem_man/tutorial_xschem_libraries.html +++ b/doc/xschem_man/tutorial_xschem_libraries.html @@ -93,6 +93,57 @@ p{padding: 15px 30px 10px;} You may choose either method, but please be consistent throughout your design. +

Change project setup runtime

+

+ Since Xschem now handles multiple windows or tabs, it is desirasble to load schematics from different projects + into a single running instance of xschem. + This is not difficult to do and you might want to write your own procedure into your xschemrc to automate this. + Lets suppose you open a new schematic tab. After opening the new tab go to the xschem prompt in the terminal + you launched Xschem from, and redefine your XSCHEM_LIBRARY_PATH:

+
+    set XSCHEM_LIBRARY_PATH {} ;# clear previous definitions
+    append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library  ;# for devices/
+    append XSCHEM_LIBRARY_PATH :/home/schippes/share/pdk/sky130A/libs.tech/xschem ;# for sky130 libs
+    # project specific variables (either tcl variables or shell variables via the TCL env() array)
+    set PDK_ROOT /home/schippes/share/pdk
+    set PDK sky130A
+    set SKYWATER_MODELS ${PDK_ROOT}/${PDK}/libs.tech/ngspice
+    set SKYWATER_STDCELLS ${PDK_ROOT}/${PDK}/libs.ref/sky130_fd_sc_hd/spice
+    # the following command does the necessary housekeeping to load the new paths
+    set_paths
+ 
+

+ At this point your new tab will work with the new defnitions while the previous tab + will continue with its previous settings. +

+

+ you should create a small procedure and put int into your xschemrc so you will just need to type the + procedure name: +


+
+  proc set_sky130 {} {
+      ## XSCHEM_SHAREDIR points to XSCHEM install path, example: /usr/local/share/xschem
+      ## USER_CONF_DIR is usually ~/.xschem
+      ## env may be used to set environment variables, like:
+      ## set env(PDK_ROOT) .....
+      global XSCHEM_LIBRARY_PATH XSCHEM_SHAREDIR USER_CONF_DIR env
+      ## Other global TCL variables listed here depend on the project setup.
+      global PDK_ROOT PDK SKYWATER_MODELS SKYWATER_STDCELLS
+
+      # project specific variables (either tcl variables or shell variables via the TCL env() array)
+      set PDK_ROOT /home/schippes/share/pdk
+      set PDK sky130A
+      set SKYWATER_MODELS ${PDK_ROOT}/${PDK}/libs.tech/ngspice
+      set SKYWATER_STDCELLS ${PDK_ROOT}/${PDK}/libs.ref/sky130_fd_sc_hd/spice
+
+      set XSCHEM_LIBRARY_PATH {} ;# clear previous definitions
+      append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library  ;# for devices/
+      append XSCHEM_LIBRARY_PATH :${PDK_ROOT}/${PDK}/libs.tech/xschem
+      # the following command does the necessary housekeeping to load the new paths
+      set_paths
+  }
+ 
+