some manual work here and there
# openroad
a
some manual work here and there
m
What did you have to change. I didn't run gcd yesterday but assumed it should be running..
a
first, at least from your PR
the constraints file is missing
points to an non-existent file
so I grabbed the one from the nand45
second
the platform config.mk is missing 2 env vars
makes the flow really unhappy
m
Hmmm, probably I forgot to push it
a
i think so
I did that:
export MAX_WIRE_LENGTH = 1000 export FILL_CELLS = ""
since its pretty opaque to me and that seemed like a "safe"
choice
probably not correct
but wire length does not matter right now ... at least in my mind
and the filler cells are not there for sky130
with those 2 changes it ran through
let me check the layout of the gds
m
That's for antenna. I am not there yet. But I will provide you with the right value
a
its fine
more I would like to start understanding this
since everything after synthesis is fully opaque for me
I reviewed the gcd now
and I am not particularly happy with that as an example
I have been preparing for the last couple of days some simpler examples
that can help me understand your business here
so that will be next for me
if you are available for questions => because I am sure I will have them
also thank you very much for the push 🙂
m
Gcd is pretty simple?
a
it is
its just
m
Sure, happy to answer any and you are welcome
a
I want specific things
where I ran them through know good cases of mapping
so I can compare
and get a feeling
also please be aware that our yosys is "very different"
I am not running the version in your repo 🙂
m
Sounds good. So if they are opensource maybe you could share them and I will try tonadd them to our testcases
a
once they are in a decent state I will open then and let you know ok ?
m
Great!
a
sky130-gcd-gds.png
m
Nice :)
a
and now my current understanding is done ...
I am sorry I new to klayout
u
any easy way to remove the labels?
a
and still a bit rusty
u
here is another one, any easy way to search for instances?
m
There should be
a
@mehdi any ideas here:
[ERROR] LEF Cell 'sky130_fd_sc_hs__a211oi_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a211oi_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a21bo_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a21boi_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a21oi_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a221oi_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a222o_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a222oi_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a22oi_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a311oi_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a31oi_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a32o_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__a32o_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__and2_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__and2b_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__and4_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__and4bb_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__buf_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__buf_16' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__buf_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__buf_8' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__clkbuf_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__clkbuf_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__clkdlyinv3sd1_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__clkdlyinv5sd2_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__clkdlyinv5sd3_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__clkinv_16' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__decap_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__dfbbp_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__dfrtp_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__dfstp_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__dfxtp_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__dfxtp_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__dlrtp_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__einvn_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__einvp_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__fah_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__inv_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__maj3_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__mux2i_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__mux4_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nand2_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nand2b_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nand3_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nand4_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nand4_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nor2_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nor2b_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nor3_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nor3b_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__nor4_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o211ai_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o21a_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o21ai_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o21ba_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o21bai_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o22a_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o22ai_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o311ai_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o311ai_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o31a_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o31ai_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__o41ai_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__or2_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__or2_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__or4_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfbbn_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfrbp_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfrtp_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfsbp_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfstp_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfstp_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sdfxtp_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sedfxbp_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__sedfxbp_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__tap_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__tapmet1_2' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__tapvgnd_1' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__xnor2_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__xor2_4' has no matching GDS cell. Cell will be empty [ERROR] LEF Cell 'sky130_fd_sc_hs__xor3_2' has no matching GDS cell. Cell will be empty
m
Yes, I didn't provide a merged gds. @User @User not sure if the script for that is ready?
a
I think so ?
it was doing something last time ?
t
@AndrewSftD: The errors above come from reading the LEF views of the standard cells and then attempting to write GDS. There are two ways to go about this correctly. One is to do the full "open_pdks" installation. This creates magic-style abstract views which are like LEF but have specific pointers to the GDS source so that the GDS for each cell can be found when writing the top-level GDS. the other way to go about this is to just read the GDS library first before reading the final DEF file output from OpenROAD, so that the complete standard cell layout is available, not just the abstract view part. Always use "gds readonly true" before reading GDS from a known-good non-Magic source, as it prevents Magic from messing up the layout by losing layers that it doesn't know about.
a
hmm...or KLayout in this case
u
which step is this? I just deposited the individual GDS files into the platform gds folder, may that will help?
Copy code
[INFO] Merging GDS files...
	./platforms/sw130/gds/sky130_fd_sc_hs__a2111o_1.gds
	./platforms/sw130/gds/sky130_fd_sc_hs__a2111o_2.gds
	./platforms/sw130/gds/sky130_fd_sc_hs__a2111o_4.gds
	./platforms/sw130/gds/sky130_fd_sc_hs__a2111oi_1.gds
...
m
yes, that will work