Mitch Bailey
11/29/2022, 2:14 AMMitch Bailey
11/29/2022, 2:16 AMuser_analog_project_wrapper_wo_PA
instead of user_analog_project_wrapper
Mitch Bailey
11/29/2022, 2:34 AMAndalib Nizam
11/30/2022, 12:16 AMuser_analog_project_wrapper
. I also opened it in Magic and it showed the same top cell name. Could you show me how you see the name as user_analog_project_wrapper_wo_PA
? I think that may be the source of my Consistency error on precheck.Andalib Nizam
11/30/2022, 12:16 AMMitch Bailey
11/30/2022, 12:37 AMAndalib Nizam
11/30/2022, 12:50 AMMitch Bailey
11/30/2022, 1:19 AMError while reading cell "(UNNAMED)" (byte position 4): Unexpected record type in input:
Expected HEADER record but got 69.
freeMagic called with NULL argument.
If your original layout is in magic, can you delete (UNNAMED)
?
This is the data I’m using.
$ cksum Electrochemical-Water-Quality-Monitoring/gds/user_analog_project_wrapper.gds
2896578061 104859 Electrochemical-Water-Quality-Monitoring/gds/user_analog_project_wrapper.gds
Andalib Nizam
11/30/2022, 2:57 AMMitch Bailey
11/30/2022, 3:14 AMAndalib Nizam
11/30/2022, 3:32 AMMitch Bailey
11/30/2022, 4:21 PM$ cksum gds/user_analog_project_wrapper.gds
3511852074 9011034 gds/user_analog_project_wrapper.gds
Andalib Nizam
11/30/2022, 4:34 PMMitch Bailey
12/01/2022, 7:19 PMStream has unknown format
error.
Is this the correct filesize and cksum?
$ cksum gds/user_analog_project_wrapper.gds.gz
1679858244 5682697 gds/user_analog_project_wrapper.gds.gz
Andalib Nizam
12/02/2022, 3:14 AMtar -czf user_analog_project_wrapper.gds.gz user_analog_project_wrapper.gds
I tried to open it on my end just now, and I am also getting this error. Am I doing something wrong?Mitch Bailey
12/02/2022, 3:27 AMgzip user_analog_project_wrapper.gds
. Using tar -czf
creates a compressed tar file that might be more recognizable as user_analog_project_wrapper.tar.gz
or user_analog_project_wrapper.tgz
. Since there’s only one file, I don’t see the need to use tar.Andalib Nizam
12/02/2022, 3:46 AMMitch Bailey
12/02/2022, 11:54 PMMitch Bailey
12/03/2022, 12:38 AM/research/mlab/chipathon/Final_schematic/BGR_schematic.sym
/research/mlab/chipathon/Final_schematic/biasAmp_simpClean.sym
/research/mlab/chipathon/Final_schematic/VCO.sym
/research/mlab/chipathon/Final_schematic/mixer_schematic.sym
/research/mlab/chipathon/Final_schematic/LNA.sym
/research/mlab/chipathon/Final_schematic/FilterOpAmp.sym
/research/mlab/chipathon/Final_schematic/TIA.sym
/research/mlab/chipathon/Final_schematic/rldo.sym
Andalib Nizam
12/03/2022, 12:49 AMMitch Bailey
12/03/2022, 12:55 AMuser_analog_project_wrapper.gds
and user_analog_project_wrapper.gds.gz
in the same directory - it can cause confusion.
I’ll try downloading the schematics.Andalib Nizam
12/03/2022, 12:57 AMMitch Bailey
12/03/2022, 1:37 AMMitch Bailey
12/03/2022, 1:49 AMAndalib Nizam
12/03/2022, 1:52 AMMitch Bailey
12/03/2022, 1:57 AMMitch Bailey
12/03/2022, 2:04 AM/research/mlab/chipathon/xschem_design_files/
Mitch Bailey
12/03/2022, 2:33 AMLiza_Tgate
, Liza_enable
, and pseudo
are missing the GND port.
.subckt Liza_enable EN Vin Vout ENinverted VDD
*.PININFO Vout:O Vin:I EN:I ENinverted:I VDD:B
XM3 Vout EN Vin GND sky130_fd_pr__nfet_01v8 L=0.15 W=.5 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM1 Vin ENinverted Vout VDD sky130_fd_pr__pfet_01v8 L=0.15 W=1 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
.ends
.subckt Liza_Tgate CLK Vin Vout CLKinverted VDD
*.PININFO Vout:O Vin:I CLK:I CLKinverted:I VDD:B
XM3 Vout CLK Vin GND sky130_fd_pr__nfet_01v8 L=0.15 W=.5 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM4 Vin CLKinverted Vout VDD sky130_fd_pr__pfet_01v8 L=0.15 W=8 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
.ends
.subckt pseudo VDD Vin Voutfinal Voutinverted
*.PININFO Vin:I Voutfinal:O Voutinverted:O VDD:B
XM1 Vout1 Vin GND GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM2 Vout1 Vin VDD VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=2 m=2
XM3 Vout2 Vin Vs5 VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=2 m=2
XM4 Vout2 Vin Vs4 GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM5 Vs5 Vout2 VDD VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=2 m=2
XM6 Vs4 Vout2 GND GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM7 Vout3 Vout1 Vs5 VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=2 m=2
XM8 Voutfinal Vout2 Vs11 VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=2 m=2
XM9 Voutinverted Vout3 Vs11 VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=2 m=2
XM10 Vs5 Vout3 VDD VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=2 m=2
XM11 Vs11 Voutfinal VDD VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=2 m=2
XM12 Vs11 Voutinverted VDD VDD sky130_fd_pr__pfet_01v8 L=0.45 W=3 nf=2 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=2 m=2
XM13 Vout3 Vout1 Vs4 GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
XM14 Voutfinal Vout2 Vs14 GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
XM15 Voutinverted Vout3 Vs14 GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
XM16 Vs4 Vout3 GND GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM17 Vs14 Voutfinal GND GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
XM18 Vs14 Voutinverted GND GND sky130_fd_pr__nfet_01v8 L=0.45 W=1.13 nf=1 ad='int((nf+1)/2) * W/nf * 0.29'
+ as='int((nf+2)/2) * W/nf * 0.29' pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)'
+ nrd='0.29 / W' nrs='0.29 / W' sa=0 sb=0 sd=0 mult=1 m=1
.ends
Andalib Nizam
12/03/2022, 2:57 AMMitch Bailey
12/03/2022, 3:33 AMLiza_Tgate
, Liza_enable
, and pseudo
too.Andalib Nizam
12/03/2022, 4:14 AMMitch Bailey
12/03/2022, 5:30 AMshorted: gpio_analog[2] - gpio_analog[3]
shorted: gpio_analog[12] - io_out[25]
shorted: gpio_analog[12] - VDD
shorted: vssa2 - GND
shorted: io_in[26] - Vb
shorted: io_in[26] - Vb
shorted: gpio_analog[1] - Vina
shorted: gpio_analog[0] - Vin
Andalib Nizam
12/03/2022, 5:36 AMMitch Bailey
12/03/2022, 5:40 AMMitch Bailey
12/03/2022, 5:46 AMAndalib Nizam
12/03/2022, 5:54 AMMitch Bailey
12/03/2022, 6:00 AMLiza_Tgate
, Liza_enable
, and pseudo
are missing the GND terminal. The schematics are trying to connect GND but there’s nothing there. Maybe my copy is old.
v {xschem version=3.0.0 file_version=1.2 }
G {}
K {type=subcircuit
format="@name @pinlist @symname"
template="name=X1"}
V {}
S {}
E {}
L 4 70 -280 70 -190 {}
L 4 70 -190 140 -190 {}
L 4 140 -280 140 -190 {}
L 4 70 -280 140 -280 {}
B 5 67.5 -262.5 72.5 -257.5 {name=VDD
dir=inout}
B 5 67.5 -212.5 72.5 -207.5 {name=Vin
dir=in}
B 5 137.5 -262.5 142.5 -257.5 {name=Voutfinal
dir=out}
B 5 137.5 -212.5 142.5 -207.5 {name=Voutinverted
dir=out}
T {@name} 70 -295 0 0 0.2 0.2 {}
Also, are the schematics with the inductors available? I’d like to get LVS to pass with the inductors.Andalib Nizam
12/03/2022, 6:09 AMMitch Bailey
12/03/2022, 6:14 AMLiza_Tgate
, Liza_enable
, and pseudo
Mitch Bailey
12/03/2022, 7:49 AMMitch Bailey
12/03/2022, 7:56 AMAndalib Nizam
12/05/2022, 10:44 AMMitch Bailey
12/05/2022, 1:16 PMoutputs
directory, but I’m not sure how to get that from Open Galaxy.Mohammad Farhan
12/05/2022, 6:23 PMmake compress
but we can't bring down the size less than 25 MB. Is there any other way to bring it down less than 25MB ?Mitch Bailey
12/06/2022, 12:24 AMmake compress
will automatically split files over 100MB. Maybe you could modify your Makefile to split files over 25MB.Andalib Nizam
12/06/2022, 12:24 AMMitch Bailey
12/06/2022, 12:28 AMAndalib Nizam
12/06/2022, 12:30 AMMitch Bailey
12/06/2022, 12:57 AMcaravel_user_project
make uncompress
sed -i.bak 's/FILE_SIZE_LIMIT_MB = 100/FILE_SIZE_LIMIT_MB = 25/' caravel/Makefile
make compress
This should make several files in your gds directory with split
in the name. Try uploading those.