Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Journey through custom setup of SKY130#842

Unanswered
suzizecat asked this question inHelp (Q&A)
Jan 12, 2022· 3 comments· 16 replies
Discussion options

Hi there !
I am trying, mainly for understanding purposes, to setup a SKY130 PDK myself.
As I took the existing skywater130.py PDK as an example, I am targeting the same lib :sky130_fd_sc_hd

I installed the PDK throughRTimothyEdwards/open_pdks and modified a copy of skywater130.py to point on the new location.
The point was to add the full list of buffer cells, clock buffer cells and so on.

The first issue is that openroad seems to need a single lef file merged containing the standard cell library lef file and the tlef content.
Could this merging operation be done automatically from within SiliconCompiler flow, as a "read" step of multiple lef files ?

As of today, specifying the tlef file and the lef file from the PDK, as one (me) would expect, without edition through those lines :

# APR tech filechip.set('pdk','aprtech',stackup,libtype,'lef',os.path.join(sclib_dir_ref,"techlef",f"{sclib_name}.tlef"))# ...# lefchip.add('library',libname,'lef',os.path.join(sclib_dir_ref,'lef',f'{sclib_name}.lef'))

produce, at floorplan step, in openroad,

[INFO ODB-0222] Reading LEF file: /media/Data/Linux/eda/pdk/sky130A/libs.ref/sky130_fd_sc_hd/techlef/sky130_fd_sc_hd.tlef[INFO ODB-0223]     Created 13 technology layers[INFO ODB-0224]     Created 25 technology vias[INFO ODB-0226] Finished LEF file:  /media/Data/Linux/eda/pdk/sky130A/libs.ref/sky130_fd_sc_hd/techlef/sky130_fd_sc_hd.tlef[WARNING ODB-0229] Error: library (sky130_fd_sc_hd) already exists[WARNING ORD-1012] Liberty cell has no LEF master.[WARNING ORD-1013] instance _393_ LEF master sky130_fd_sc_hd__clkinv_1 not found....

Followed by a lot ofORD-1013, for almost every cell used, see details infloorplan.log

This might be an issue on OpenROAD side though.

For reference, find attached my PDK file:csky130hd.py.txt .

You must be logged in to vote

Replies: 3 comments 16 replies

Comment options

I thought multi-lef issue was fixed a while back in openroad? What version of openroad are you using?

openroad -v
You must be logged in to vote
7 replies
@suzizecat
Comment options

A git pull of siliconcompiler ? I've done it and it seems that it doesn't fix the issue.
You can see an updated version of my PDK file on the link in the original post (I've updated it after pulling master version of SC) so now I have :

# APR tech filefortoolin ('openroad','klayout','magic'):chip.set('pdk','aprtech',tool,stackup,libtype,'lef',os.path.join(sclib_dir_ref,"techlef",f"{sclib_name}.tlef"))

for SKY130 which should match the content of skywater130 which is :

# Tech filefortoolin ('openroad','klayout','magic'):chip.set('pdk','aprtech',tool,stackup,libtype,'lef',pdkdir+'/apr/sky130_fd_sc_hd.tlef')

I don't really know about techlef format thoug, it comes from SKY130 master too.

@aolofsson
Comment options

Yes, "a git pull from siliconcompiler." Now that you are up to date, have you done a diff between the tlef that we have included in our repo?
https://github.com/siliconcompiler/siliconcompiler/blob/main/third_party/pdks/skywater/skywater130/pdk/v0_0_2/apr/sky130_fd_sc_hd.tlef

Another possibility, are you running this in an active openroad prompt.
If so you may need to quit out of it to "delete the design", otherwise errors like "library already loaded" would pop up.

Hard to debug like this, so just offering possible some possibilities...

@suzizecat
Comment options

I'm running it from siliconcompiler only, so no problem on this end.
I'll check the tlef diff, but please know that your help is greatly appreciated nonetheless !

@suzizecat
Comment options

So, I did the diff and the only difference is that my version got this addition :

LAYER nwell  TYPE MASTERSLICE ;  PROPERTY LEF58_TYPE "TYPE NWELL ;" ;END nwellLAYER pwell  TYPE MASTERSLICE ;  PROPERTY LEF58_TYPE "TYPE PWELL ;" ;END pwell

Which should probably not cause any major issue at this point.

@suzizecat
Comment options

By the way, I getFOREIGN statements in the lef file, which seems to cause issues too... Where those removed in siliconcompiler versions ?

Comment options

For some reason I get thepathed_files variable, indef2streazm.py (lines 140-ish, in the export step) empty when using my PDK while it indeed contains the lef file when I use SC'sskywater130 PDK. Would you have an idea of what could cause this ?
I indeed providechip.add('library', libname, 'lef', os.path.join(sclib_dir_ref,'lef',f'{sclib_name}.merged.lef')) which should be working, as the synthesis goes fine.

You must be logged in to vote
1 reply
@suzizecat
Comment options

On this subject, it seems that the.lyt file must directly reference the.lef file used by the design.
The lef file passed through silliconcompiler have no impact with regard to this issue.

Moreover, if the file path is relative, it must start with./ even if the path following starts with../../. Seesky130A_hd.lyt.txt for details.

Comment options

Thanks for sharing these additional details -- I think one thing that would be helpful is if you could zip/tar your build directory after a run and share that with us? I particularly want to take a look at the manifest files (*.pkg.json) dumped by SC, that would help me debug the problem.

You must be logged in to vote
8 replies
@nmoroze
Comment options

Thank you! I think it would also be helpful to see copies of the following files:

  • sky130_fd_sc_hd.lef
  • sky130_fd_sc_hd.merged.cleaned.lef
  • sky130_fd_sc_hd.merged.lef
  • sky130_fd_sc_hd.tlef

My best guess right now is that this is something subtle to do with differences in LEF content. I don't believe OpenROAD needs the tlef and library data merged, rather I think the "merged" in the filename in our case refers to a merged file containing all std cell definitions. We took our LEF files from theOpenROAD-flow-scripts repo, rather than directly from the open PDKs repo (so we were not responsible for the preprocessing).

@suzizecat
Comment options

I'll send them to you, just for information, merged is the merging of the .tlef + the .lef using mergeLef tool from the openroad utils. The cleaned was an unsuccessful attempt and is not meaningful.

@suzizecat
Comment options

Please find all mentioned files in this archive :sky130_fd_sc_hd_lef.tar.gz

@aolofsson
Comment options

@suzizecat I am hoping this is a dead thread after 3 years, but just checking. A lot has happened with SC since 2022.

@suzizecat
Comment options

Hi@aolofsson , It is indeed a dead thread (mainly because it was an experiment more than anything, so I went on other experiments) but IIRC I never quite fixed those issues in the end.

I'll give another spin to SC when I'll have a suitable project to play around with 🙂

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Labels
None yet
3 participants
@suzizecat@aolofsson@nmoroze

[8]ページ先頭

©2009-2025 Movatter.jp