-
Notifications
You must be signed in to change notification settings - Fork 598
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for MEOL layer? #1872
Comments
@osamahammad21 we are missing a few LEF58_TYPE values including MEOL in lefin/lefTechLayerTypeParser.cpp. Please guide Mohamed for adding all the missing values to odb. (You can reassign this to him once he accepts the project invite). |
Just wanted to let you know that I added
This did remove the warning but TritonRoute still cannot find the |
That's a different issue. we should update TritonRoute to consider MEOL masterslice layers as well. for now, TritonRoute supports only one hard-coded masterslice layer with the name "FR_MASTERSLICE" I am fixing that now in parallel with supporting more LEF58_TYPE values. |
…ject#1872 Signed-off-by: Mohamed Shahawy <[email protected]>
I just pulled the latest version of OpenROAD and I can confirm that at least OpenDB does not complain about the MEOL layer anymore. However, does the issue with TritonRoute not fall under this same GitHub issue? |
Thanks for updated version! 👍 I again pulled in the latest version of OpenROAD, but I still have the same problem. I'll quote from the discussion that lead to this issue:
Is this related to this issue, or is it something else and should I create a different issue for it? |
This reverts commit 6e67137. Signed-off-by: osamahammad21 <[email protected]>
Interestingly, after #1928 I now get a different error:
where the relevant parts in the LEF file are:
Since I saw that you removed the comparison with |
@GuzTech as I told you before we only support one masterSlice layer per tech in tritonroute. So in the end you would have the layers stacked as following: |
@osamahammad21 Ah ok, I misunderstood when you first explained it then. That means that for now we cannot use our PDK with OpenROAD for P&R. Thanks for the hard work! 👍 |
@GuzTech Is your APK public? |
@osamahammad21 Thank you for wanting to look into it! It's a commercial PDK so unfortunately I cannot share it, but I can give an overview of how layers are stacked. There are two types of via rules that are like this:
and
Does that help? Just let me know if you need any more information 👍 EDIT: I have just checked the Sky130 LEF file and from what I can see is that they also have multiple master slices, but none are referenced in vias and viarules (actually anywhere in the file). In our LEF file, via rules have at most one masterslice. When you said that TritonRoute support one masterslice per tech, did you mean that only one masterslice layer can be used in the LEF file? If that's the case, then I understand why it doesn't work with our LEF file since we have via rules that reference master slices which are DIFFUSION, PWELL, NWELL and poly. |
Are you actually routing signals outside the stdcells on the MEOL (or POLY) layers or is it just a matter of successfully ignoring them? |
@maliberty We just give it a Verilog design and call flow.tcl. The standard cells use a contact, metal #1, and nwell layer, but also have several statements that reference the lil layer which is the MEOL layer:
Again, thanks for taking the time. Much appreciated! If you need any more info, I'll be happy to help. |
I'm trying to understand if we can just ignore that layer and associated vias or not. What layer are the std cell pins on in LEF? What are the immediately above cut & routing layers. Where is you MEOL layer in relation to those? |
The standard cell i/o pins are on the metal 1 and contact layers, and power pins are on the NWELL / PWELL layers. The lil layer (MEOL) is only referenced in the statements I mentioned before. In the stack, the MEOL layer apparently is between the highest two metal layers. |
@GuzTech we do have a mechanism to share data under NDA via Precision Innovations consulting. You can email [email protected] for more information. |
@tspyrou I am not in a position to make the decision to share information, but I will ask the PDK partner for permission. I will let you know as soon as I have more information 👍 |
Discussed in #1871
Originally posted by GuzTech May 17, 2022
Hello everyone!
I'm in the process of bringing up a new platform which is going well. I am running into a problem with a local interconnect layer which is specified as a
MASTERSLICE
withLEF58_TYPE
=MEOL
, so it is not specified as aROUTING
layer as is the case with the sky130 PDK. OpenDB complains that there is a parse mismatch for thislil
layer.If I add this
lil
layer as a routing layer tomake_tracks.tcl
then OpenDB complains that it is not a routing layer. If I don't addlil
as a routing layer, then TritonRoute gives an error that it cannot find layerlil
for viarule that connectslil
to the first metal layer.Did anyone else run into a similar problem? If so, how did you solve it?
The text was updated successfully, but these errors were encountered: