Giter Site home page Giter Site logo

xschem_sky130's People

Contributors

qpwo avatar stefanschippers avatar thasti avatar wulffern avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

xschem_sky130's Issues

Resistor models contain an error. Fix provided.

Schematic:
schematic

If I try to run it this happens.

NGSPICE Log:

ngspice -r "serdes/resisor_issue.raw" serdes/resisor_issue.spice
******
** ngspice-34 : Circuit level simulation program
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2020, The ngspice team.
** Please get your ngspice manual from http://ngspice.sourceforge.net/docs.html
** Please file your bug-reports at http://ngspice.sourceforge.net/bugrep.html
** Creation Date: Sat Mar  6 03:53:35 UTC 2021
******

Compatibility modes selected: hs a


Circuit: **.subckt resisor_issue

Error: unknown subckt: xr1 0 net1 sky130_fd_pr__res_generic_m1 w=1 l=1 mult=1 m=1
    Simulation interrupted due to error!

ngspice 1 -> 

Netlist (my install path is /opt/pdk_root, other models like transistors work):

**.subckt resisor_issue
V2 net1 GND vdd_volts
XR1 GND net1 sky130_fd_pr__res_generic_m1 W=1 L=1 mult=1 m=1
**** begin user architecture code

.temp 125
.param vdd_volts=1.65
.param vddio_volts=3.0


.control
tran 0.01ns 20ns
write
.endc


.param mc_mm_switch=0


.lib "/opt/pdk_root/sky130A/libs.tech/ngspice/sky130.lib.spice" ss


**** end user architecture code
**.ends
.GLOBAL GND
** flattened .save nodes
.end
  1. The spiceprefix by default has to be R instead of X. After fixing, it complains that mult parameter does not exist in the model
  2. I modified the symbol file to remove mult parameter and set the spiceprefix to R by default and now it works. See diff below, this change might need to be applied to other models.
diff res_generic_m1.sym /opt/pdk_root/open_pdks/sources/xschem_sky130/sky130_fd_pr/res_generic_m1.sym 
20c20
< format="@spiceprefix@name @pinlist sky130_fd_pr__@model W=@W L=@L m=@mult"
---
> format="@spiceprefix@name @pinlist sky130_fd_pr__@model W=@W L=@L mult=@mult m=@mult"
25c25
< spiceprefix=R
---
> spiceprefix=X

UPD: I verified that m= parameter works.

See: RTimothyEdwards/open_pdks#159

Directions to import other librariers (spice or verilog)

I see there are some import scripts (verilog,spice) in the folders, but a set of directions to import other libraries will be helpful.
Kindly point to specific files in case I missed the same. Is it possible to show the import process of the SKY130 itself and hooks to modify import parameters (in a video)?
Edit: I do see the example for spice import for the hash (https://github.com/StefanSchippers/xschem_sky130/tree/main/decred_hash_macro) Let me know if this is the the template to be followed

is there an example of a circuit, ready for layout?

in the top.sch are links to a few examples. but i think the only one that had some ESD-protection was the buck-converter, and that didnt had any bonding-pads and also no ESD-protection-diodes, only MOSFETs.

is there some example available using some analog and some digital IOs with all the necessary protection and bonding pads?

issue in xschem and Ngspice using sky130 process

i have an issue when try to simulate the Reram-tb utilizing xscehm and ngspice. i encounter the following error when trying to simulate the reram and check the waveform uisng ngspice: % l_s_d(): Symbol not found: /home/schippes/share/xschem/xschem_library/devices/vsource.sym
l_s_d(): Symbol not found: /home/schippes/share/xschem/xschem_library/devices/vsource.sym
Hoever, the library for the reram is installed with other sky130 libraries in my local directory not the path given in the error message.

when I press on the voltage source and edit the path for vsource to be my local directory for vsource I got the following error:

Circuit: ** sch_path: /home/eda_work/eman/hassan/open_pdks/sources/xschem_sky130/sky130_tests/tb_reram.sch

Error on line 3 or its substitute:
n1 top 0 sky130_fd_pr_reram__reram_model
unknown device type - error
The simulation interrupted due to an error!

Also, when cant get the Netlist for the design when I press the Create Netlist button?!.

I am totally new to this technology and I would appreciate your help.
Thank you.

Installation of magic and skywater pdk

I was watching your video to install magic and skywater pdk, but the links were not the same in open_pdks
I installed magic and then skywater pdk as described withe ./configure and make
Got this error with make install. Can you please help with this
cp: cannot create regular file '/usr/local/bin/magic': Permission denied
make[2]: *** [Makefile:87: /usr/local/bin/magic.sh] Error 1
make[2]: Leaving directory '/home/prabha/projects/foundry/skywater-pdk/magic/tcltk'
make[1]: *** [Makefile:94: install-tcl-real] Error 2
make[1]: Leaving directory '/home/prabha/projects/foundry/skywater-pdk/magic'
make: *** [Makefile:91: install-tcl] Error 2
prabha@DESKTOP-E32V3A5:~/projects/foundry/skywater-pdk/magic$

Can't find sky130_fd_sc_hd.spice

Hi Stefan,
I can't find sky130_fd_sc_hd.spice in my sky-water folder. Does this file exist after installation or do we need to write it ourselves?
image
image

Simulating sky130_stdcells in xschem & ngspice

Hi @StefanSchippers ,

Regarding the use of sky13_fd_sc_hd standard cell library components in xschem and running ngspice, how do we setup ngspice to find the corresponding subckt definitions?

Upon trying both TT_MODELS and Corner: tt packages from the xschemrc file, I receive "unknown subckt errors".

Thank you!

ngspice run error

Hi Stefan ,

Based on your video tutorial , i have installed xschem and ngspice with sky 130.
Also applied the patch as shown in the video.

patching file cells/pfet_01v8_mvt/sky130_fd_pr__pfet_01v8_mvt.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__ff.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__fs.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__leak.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__sf.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__ss.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__tt_leak.pm3.spice
patching file cells/pfet_g5v0d10v5/sky130_fd_pr__pfet_g5v0d10v5__tt.pm3.spice
patching file cells/pfet_g5v0d16v0/sky130_fd_pr__pfet_g5v0d16v0.pm3.spice
patching file cells/pfet_g5v0d16v0/sky130_fd_pr__pfet_g5v0d16v0__subcircuit.pm3.spice
patching file models/r+c.mrp1monte.spice

But still getting error while running ngspice :

sky130_fd_pr__nfet_g5v0d10v5__kvth0_diff} lkvth0={0+sky130_fd_pr__nfet_g5v0d10v5__lkvth0_diff} wkvth0={0+sky130_fd_pr__nfet_g5v0d10v5__wkvth0_diff} pkvth0=0.0 llodvth=0.0 wlodvth=1.0 stk2=0.0 lodk2=1.0 lodeta0=1.0 ku0={0+sky130_fd_pr__nfet_g5v0d10v5__ku0_diff} lku0={0+sky130_fd_pr__nfet_g5v0d10v5__lku0_diff} wku0={0+sky130_fd_pr__nfet_g5v0d10v5__wku0_diff} pku0=0.0 llodku0=0.0 wlodku0=1.0 kvsat={0+sky130_fd_pr__nfet_g5v0d10v5__kvsat_diff} steta0=0.0 tku0=0.0
Original line no.: 0, new internal line no.: 16543:
Cannot compute substitute
Original line no.: 0, new internal line no.: 16544:
Undefined number [w]
Original line no.: 0, new internal line no.: 16544:
Expression err: lwmult)))} dtox=0.0 ndep=1.7000000000000000e+17 nsd=1.0e+20 rshg=0.1 rsh=1.0 vth0={0.789731232828288+sky130_fd_pr__nfet_g5v0d10v5__vth0_slope_spectre*(sky130_fd_pr__nfet_g5v0d10v5__vth0_slope/sqrt(lwmult))} lvth0=2.9729

Thanks

patch problem for sky130 in xschem

Hi, I was trying to run the patch command but getting this below error .
I already have openalne install in my system , so i was using this patch command in my openlane directory where pdks are install.
Can you please let me know how to solve this issue ?

atch -p2 < /home/embedded/.xschem/xschem_library/xschem_sky130/sky130_fd_pr.patch
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:

|diff -Naur sky130_fd_pr/latest/cells/nfet_01v8/sky130_fd_pr__nfet_01v8__ff.pm3.spice sky130_fd_pr_ngspice/latest/cells/nfet_01v8/sky130_fd_pr__nfet_01v8__ff.pm3.spice
|--- sky130_fd_pr/latest/cells/nfet_01v8/sky130_fd_pr__nfet_01v8__ff.pm3.spice 2020-11-08 01:33:06.385642949 +0100
|+++ sky130_fd_pr_ngspice/latest/cells/nfet_01v8/sky130_fd_pr__nfet_01v8__ff.pm3.spice 2020-12-08 04:28:01.986577051 +0100

File to patch:

Screenshot from 2021-04-19 21-48-56

`XSCHEM_LIBRARY_PATH` issue with default symbols

Hi Stefan!

First of all, thank you very much for your work on xschem!
I've a question and maybe a request for change:

By default, the xschem library is installed under ${XSCHEM_SHAREDIR/xschem_library/ and contains the devices folder with all of the default symbols.

By default, $XSCHEM_LIBRARY_PATH points to ${XSCHEM_SHAREDIR/xschem_library/devices.
If we start xschem and place a vsource.sym, it simply points to vsource.sym.

The xschemrc for sky130 sets the XSCHEM_LIBRARY_PATH to the following:

append XSCHEM_LIBRARY_PATH ${XSCHEM_SHAREDIR}/xschem_library

As you can see, the last part devices is omitted. If we start xschem, load the sky130 xschemrc and place a vsource.sym, it points to devices/vsource.sym.

This is not optimal, because if you open this schematic without the sky130 xschemrc sourced, none of the symbols are displayed correctly. If the sky130 xschemrc would include ${XSCHEM_SHAREDIR}/xschem_library/devices, then you could at least see all of the default symbols. This is really useful when looking at a testbench that doesn't even contain any sky130 symbols (but was created with the sky130 xschemrc sourced).

Therefore my question is, was this change intentional or just an oversight when creating the xschemrc?
I know the improvement by correcting it is not huge, but I believe every little bit counts.

The problem with this fix is that it would beak the default symbols for all sky130 designs.

I think there are several ways to tackle this problem:

  1. Just change it and don't care for backwards compatibility. (Bad in my opinion)

  2. Add append XSCHEM_LIBRARY_PATH ${XSCHEM_SHAREDIR}/xschem_library/devices before append XSCHEM_LIBRARY_PATH :${XSCHEM_SHAREDIR}/xschem_library/ so that the correct symbol library is shown first when inserting a symbol. New designs created for sky130 will probably use the correct path. Disadvantage: there are two paths for the default library and it will take time until new designs use the correct path.

  3. Just change it and add some kind of automatic conversion to xschem. This could be some specific hook for sky130 or a change in the logic how symbol paths are saved (maybe always use the shortest path if two entries in XSCHEM_LIBRARY_PATH point to the symbol).

What do you think?

The IHP PDK is still in it's infancy, but its xschemrc has the same issue. So as long as not many designs have been created with the IHP PDK, this could still be changed.

Thanks!
Leo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.