<@U017X0NM2E7> CVC doesn't like the EF decap cells...
# openlane
a
@User CVC doesn't like the EF decap cells:
Copy code
CVC: Counting and linking...
Fatal error:could not find subcircuit: XFILLER_246_109(sky130_ef_sc_hd__decap_12) in Microwatt_FP_DFFRFile
m
It's not in the
sky130_fd_sc_hd.cdl
file. 🤔 Quickest fix would be to edit the
$PDK_ROOT/sky130A/libs.ref/sky130_fd_sc_hd/cdl/sky130_fd_sc_hd.cdl
and copy
sky130_fd_sc_hd__decap_12
to
sky130_ef_sc_hd__decap_12
.
a
Thanks Mitch. Do you know how the CDL files were generated? I want to submit an upstream fix in open_pdks, and I'm guessing the spice model for the EF decap cell is going to be different.
m
The separate cdl files from skywater-pdks are concatenated into one file with the open_pdks makefile, I believe. The only difference between
sky130_fd_sc_hd__decap_12
and
sky130_ef_sc_hd__decap_12
is the
li1
area, I believe. The cdl netlists should be the same.
a
Great! I just wanted to check before I submitted a patch
m
I don't know how @User will feel about including
sky130_ef_sc_hd
cells in the
sky130_fd_sc_hd
library. The current CVC integration into openlane is somewhat of a kludge and needs to be reworked.
t
@User: I have SPICE for the "ef" standard cells, not, strictly speaking, CDL. I am ambivalent about how the "ef" cells are arranged. Either as a separate library or as part of the "fd" library is doable.
m
The current setup for CVC-RV in the openlane flow uses the extracted spice from LEF with black-boxed standard cells and adds the transistor level information from the cdl library of the (singular) associated
STD_CELL_LIBRARY
. @User can you create a pull request for adding
sky130_ef_sc_hd__decap_12
to
sky130_fd_sc_hd.cdl
?
a
I managed to get pretty confused over how
include=
works. I had hoped I could just add the file to
sky130/custom/sky130_fd_sc_hd/cdl/
and modify the Makefile:
Copy code
-cdl %l/latest/cells/*/*.cdl ignore=topography compile-only \
+                       include=custom/sky130_fd_sc_hd/cdl/*.cdl \
That failed, so I obviously don't understand. Will look more tomorrow
t
@User: No, "include" doesn't work like that. I will look up a similar example. It needs to be done in two steps. The first step copies the files into the staging directory, and the second step copies the rest and then compiles everything into the library file. Maybe it would make more sense if I just allowed multiple sources on the line.