does anyone know why the sky130A/B LEF file genera...
# open_pdks
n
does anyone know why the sky130A/B LEF file generated by open_pdks for the sky130_fd_sc_hd library changed from
sky130_fd_sc_hd.lef
to
sky130_ef_sc_hd.lef
? This new LEF is missing all tap cells...
m
I think you should have both
sky130_ef_sc_hd.lef
and
sky130_fd_sc_hd.lef
in
libs.ref/sky130_fd_sc_hd
. Are you creating the pdk yourself or using volare?
ef
contains cells modified or created by efabless.
fd
are foundry cells.
n
oh I see, thanks for that info! I recently re-ran the setup process for sky130 with open_pdks (after cloning the latest version of all repos) and it only generated the
sky130_ef_sc_hd.lef
, whereas when I ran the same exact setup commands before it would generate the
sky130_fd_sc_hd.lef
file. for now I’ll just point to my old foundry LEF file!
m
@Tim Edwards ^^^
t
I don't know what the problem is. I just did a build and got both files; I can't say that I cloned the skywater repos today, but I had updated them a week ago.
n
okay let me try it again, thanks for the quick reply!
Just re-ran this and saw the same behavior, in the output from running
make
the only reference to the
sky130_fd_sc_hd.lef
file is here:
Copy code
Install option: lef
Renaming file to: sky130_ef_sc_hd.lef
Collecting files from ./custom/sky130_fd_sc_hd/lef/*.lef
Files to install:
   ./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef
   ./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fakediode_2.lef
   ./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_8.lef
   ./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef
   Install:./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef to /tools/C/nayiri/sky130/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__decap_12.lef
   Install:./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fakediode_2.lef to /tools/C/nayiri/sky130/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fakediode_2.lef
   Install:./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_8.lef to /tools/C/nayiri/sky130/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_8.lef
   Install:./custom/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef to /tools/C/nayiri/sky130/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_ef_sc_hd__fill_12.lef
Diagnostic:  Sorting files with /tools/C/nayiri/sky130/open_pdks/common/sort_pdkfiles.py
Diagnostic:  Creating consolidated LEF library sky130_fd_sc_hd.lef
New file is:  /tools/C/nayiri/sky130/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_fd_sc_hd.lef
Compile-only:  Removing individual LEF files
   Renaming sky130_fd_sc_hd.lef to sky130_ef_sc_hd.lef
t
@Nayiri: I have the same output at around line 150 of the log file. Then much further down in the file (at line 51840) I have:
Copy code
Install option: lef
LEF files used for annotation only.  Temporary install.
Excluding files: *.magic.lef,sky130_ef_sc_hd.lef
Sorting files with script ../common/sort_pdkfiles.py
Collecting files from /home/tim/gitsrc/open_pdks/sources/sky130-pdk/libraries/sky130_fd_sc_hd/latest/cells/*/*.lef
Files to install:
   /home/tim/gitsrc/open_pdks/sources/sky130-pdk/libraries/sky130_fd_sc_hd/latest/cells/a2bb2o/sky130_fd_sc_hd__a2bb2o_1.lef
   ...
Due to the multi-threading nature of the build, there is lots of interleaved output before it reaches this line (line 136588 in my output):
Copy code
Compiling LEF library from magic output.
Diagnostic:  Creating consolidated LEF library sky130_fd_sc_hd.lef
New file is:  /home/tim/gitsrc/open_pdks/sky130/sky130A/libs.ref/sky130_fd_sc_hd/lef/sky130_fd_sc_hd.lef
Compile-only:  Removing individual LEF files
Migrating LEF files to layout.
I'm wondering if this might be an issue with your version of magic, since it uses magic to create those LEF files. In your log file, you should see a number of places where magic is called, and the output should look something like this:
Copy code
Magic 8.3 revision 331 - Compiled on Sat Oct 22 21:58:21 EDT 2022.
Starting magic under Tcl interpreter
Using the terminal as the console.
Using NULL graphics device.
Processing system .magicrc file
Sourcing design .magicrc for technology sky130A ...
2 Magic internal units = 1 Lambda
Input style sky130(vendor): scaleFactor=2, multiplier=2
The following types are not handled by extraction and will be treated as non-electrical types:
    ubm
Scaled tech values by 2 / 1 to match internal grid scaling
Loading sky130A Device Generator Menu ...
Using technology "sky130A", version 1.0.348-6-g11af192
Do you see something like this, or are there error messages in the output from running magic?
n
Yep I wasn't seeing the last two outputs, and was instead seeing a magic error. I updated my magic version and re-ran this and am now seeing the lef file. thank you so much for the help!