https://open-source-silicon.dev logo
#openroad
Title
# openroad
a

AndrewSftD

07/20/2020, 3:31 PM
some manual work here and there
m

mehdi

07/20/2020, 3:33 PM
What did you have to change. I didn't run gcd yesterday but assumed it should be running..
a

AndrewSftD

07/20/2020, 3:33 PM
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

mehdi

07/20/2020, 3:34 PM
Hmmm, probably I forgot to push it
a

AndrewSftD

07/20/2020, 3:35 PM
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

mehdi

07/20/2020, 3:36 PM
That's for antenna. I am not there yet. But I will provide you with the right value
a

AndrewSftD

07/20/2020, 3:36 PM
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

mehdi

07/20/2020, 3:38 PM
Gcd is pretty simple?
a

AndrewSftD

07/20/2020, 3:39 PM
it is
its just
m

mehdi

07/20/2020, 3:39 PM
Sure, happy to answer any and you are welcome
a

AndrewSftD

07/20/2020, 3:39 PM
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

mehdi

07/20/2020, 3:40 PM
Sounds good. So if they are opensource maybe you could share them and I will try tonadd them to our testcases
a

AndrewSftD

07/20/2020, 3:40 PM
once they are in a decent state I will open then and let you know ok ?
m

mehdi

07/20/2020, 3:41 PM
Great!
a

AndrewSftD

07/20/2020, 3:43 PM
sky130-gcd-gds.png
m

mehdi

07/20/2020, 3:43 PM
Nice :)
a

AndrewSftD

07/20/2020, 3:43 PM
and now my current understanding is done ...
I am sorry I new to klayout
u

20Mhz

07/20/2020, 3:44 PM
any easy way to remove the labels?
a

AndrewSftD

07/20/2020, 3:44 PM
and still a bit rusty
u

20Mhz

07/20/2020, 3:44 PM
here is another one, any easy way to search for instances?
m

mehdi

07/20/2020, 3:44 PM
There should be
a

AndrewSftD

07/20/2020, 3:45 PM
@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

mehdi

07/20/2020, 3:46 PM
Yes, I didn't provide a merged gds. @User @User not sure if the script for that is ready?
a

AndrewSftD

07/20/2020, 3:46 PM
I think so ?
it was doing something last time ?
t

Tim Edwards

07/20/2020, 3:52 PM
@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

AndrewSftD

07/20/2020, 3:55 PM
hmm...or KLayout in this case
u

20Mhz

07/20/2020, 4:01 PM
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

mehdi

07/20/2020, 4:01 PM
yes, that will work