do I need something else to open def files?
# magic
m
do I need something else to open def files?
a
You need to read the tech LEF in as well, so what I recommend is running magic by itself first with
magic -rcfile $PDK_ROOT/sky130A/libs.tech/magic/sky130A.magicrc
Then use the following commands:
Copy code
lef read $::env(PDK_ROOT)/sky130A/libs.ref/sky130_fd_sc_hd/techlef/sky130_fd_sc_hd.tlef
def read  ./results/routing/seven_segment_seconds.def
load seven_segment_seconds
m
I don't think this is working for me
I can omit the lef file and it looks the same (and still get a lot of warnings)
Let's try the CTS file instead
I do the same thing but reading this file: ef read ./results/cts/seven_segment_seconds.cts.def
I get too many errors to share, but ends like this:
and as you see there is no clock tree
a
I am suspecting the magic setup files, but you can load .mag files and .gds files without problems though, right?
m
yep
It's just the intermediate files I can't open
a
have you somehow move the PDK directory around after the installation with open_pdks?
m
no
does it work for you?
a
Yup
perhaps check the .magicrc file at
sky130A/libs.tech/magic
. It should contain a line with:
Copy code
set PDKPATH "/path/to/sky130A"
Is this path correct on your side?
m
It has this:
# Allow override of PDK path from environment variable PDKPATH
if {[catch {set PDKPATH $env(PDKPATH)}]} {
set PDKPATH "/home/matt/work/asic-workshop/pdks/sky130A"
}
there does seem to be some conflict there though
as the pdkpath in the magicrc doesn't match what I have set as PDKPATH
a
Oh, I don't recommend manually setting PDKPATH. Does it work when you
unset PDKPATH
then run magic as usual?
m
that is definitely doing different stuff
thanks I'll have a look
is there a way of 'unloading' magic. So I can keep the same session with the left loaded
and load a def, then throw it and load another def
a
I always wanted to do this actually, but not sure. @Tim Edwards: Is there a way to "clear" the internal magic database without quitting magic?
t
@Ahmed Ghazy (@Matt Venn): Use "cellname delete <name>"
👍 1
m
that is so useful