Tim Edwards
01/22/2024, 2:09 PMStefan Schippers
01/22/2024, 2:26 PMTim Edwards
01/22/2024, 2:26 PMStefan Schippers
01/22/2024, 6:16 PMd1 0 k1 sky130_fd_pr__diode_pw2nd_05v5 area=1e12 pj=4e6 could not find a valid modelname
All the other very basic testbenches i have in xschem run fine with correct results, so far I have tested:
• mim caps
• vpp caps
• varactors
• bipolar (including npn_05v5_w1p00l2p00)
• resistors
• nmos and pmos
Tomorrow I will go on with the (less trivial) circuit testbenches and investigate a bit the diode problem.Tim Edwards
01/22/2024, 10:11 PMStefan Schippers
01/24/2024, 11:35 AMX4 a_473_413# a_27_47# a_581_47# VNB sky130_fd_pr__nfet_01v8 w=360000u l=150000u
that is, nfet_01v8
, W=0.36
and L=0.15
.
ngspice (with the new continous 'combined' models) tells this is out or range:
Error on line:
m.x2.x2.x7.msky130_fd_pr__nfet_01v8 x2.x2.a_448_47# x2.x2.a_27_47# x2.x2.a_543_47# vss x2.x2.x7.nshort_model x2.x2.x7.l= x2.x2.x7. 1.500000000000000e-01 w= 3.600000000000000e-01 ad= 0.000000000000000e+00 as= 0.000000000000000e+00 pd= 0.000000000000000e+00 ps= 0.000000000000000e+00 nrd= 3.888888888888890e-01 nrs= 3.888888888888890e-01 sa= 0.000000000000000e+00 sb= 0.000000000000000e+00 sd= 0.000000000000000e+00 nf= 1.000000000000000e+00 delvto= 0.000000000000000e+00
could not find a valid modelname
Simulation interrupted due to error!
Tim Edwards
01/24/2024, 2:05 PMTim Edwards
01/24/2024, 6:20 PMStefan Schippers
01/26/2024, 3:01 PMsky130_fd_sc_hd.spice
file (1st number is # of occurrences, followed by W and L).
$ cat sky130_fd_sc_hd.spice|gawk 'NF==8 && $0 ~/^X.*nfet.*w=.*l=/ {split($7, w, "="); split($8, l, "="); sub(/u$/, "", l[2]); sub(/u$/, "", w[2]); print w[2]/1e6,l[2]/1e6}'|sort -n -k 1|uniq -c
207 0.36 0.15
2 0.39 0.15
1127 0.42 0.15
8 0.42 0.18
8 0.42 0.5
8 0.52 0.15
5 0.54 0.15
6 0.55 0.15
2 0.55 0.59
2 0.55 1.05
2 0.55 1.97
2 0.55 2.89
2 0.55 4.73
6 0.6 0.15
160 0.64 0.15
2618 0.65 0.15
4 0.65 0.18
4 0.65 0.25
4 0.65 0.5
Below the same for PFET (sky130_fd_pr__pfet_01v8_hvt):
$ cat sky130_fd_sc_hd.spice|gawk 'NF==8 && $0 ~/^X.*pfet.*w=.*l=/ {split($7, w, "="); split($8, l, "="); sub(/u$/, "", l[2]); sub(/u$/, "", w[2]); print w[2]/1e6,l[2]/1e6}'|sort -n -k 1|uniq -c
2 0.36 0.15
690 0.42 0.15
2 0.42 0.18
2 0.42 0.5
34 0.54 0.15
2 0.55 0.15
11 0.63 0.15
425 0.64 0.15
1 0.7 0.15
17 0.75 0.15
31 0.79 0.15
4 0.82 0.15
4 0.82 0.18
4 0.82 0.25
4 0.82 0.5
114 0.84 0.15
2 0.87 0.59
2 0.87 1.05
2 0.87 1.97
2 0.87 2.89
2 0.87 4.73
42 0.94 0.15
2757 1 0.15
6 1 0.25
.Tim Edwards
01/26/2024, 3:21 PMLibrary Devices used
--------------------------------
HD nfet_01v8, pfet_01v8_hvt
HDLL nfet_01v8, pfet_01v8_hvt
HVL nfet_01v8, nfet_g5v0d10v5, nfet_05v0_nvt, pfet_01v8_hvt, pfet_g5v0d10v5
HS nfet_01v8_lvt, pfet_01v8
MS nfet_01v8_lvt, pfet_01v8
LS nfet_01v8, pfet_01v8, pfet_01v8_hvt
LP nfet_01v8, pfet_01v8, pfet_01v8_hvt
Next I'll go look up the continuous model limits for each of these devices. . .Tim Edwards
01/26/2024, 3:39 PMnfet_01v8
and pfet_01v8_hvt
at W=0.36
and L=0.15
.Tim Edwards
01/26/2024, 3:50 PMTim Edwards
02/10/2024, 9:37 PMTim Edwards
02/11/2024, 6:24 PMsky130_fd_pr
(containing the additional device models in the combined models), sky130_fd_sc_hd
(with the under-width devices being renamed sky130_fd_pr__special_nfet_01v8
and sky130_fd_pr__special_pfet_01v8_hvt
), and open_pdks
(with a modified extraction deck for magic and the new device names added to the netgen setup). But I can now run your "test_stdcells" example in xschem, and can switch between the discrete and the combined models, and it works both ways.Stefan Schippers
02/12/2024, 10:33 AM