Skip to content
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

Added layer map manupulation functions to LefImport #129

Merged
merged 1 commit into from
Feb 17, 2024
Merged

Conversation

lanserge
Copy link
Collaborator

@lanserge lanserge commented Feb 16, 2024

Python functions added to LefImport:

addLayer - add LEF layer name mapped to existing layer

getLayer - get layer mapped by LEF layer name

clearLayer - remove LEF layer name mapping

With these functions it is possible to import LEF with it's layer names mapped to proper existing layers.

Copy link

github-actions bot commented Feb 16, 2024

A preview of is uploaded and can be seen here:

https://lip6.github.io/coriolis/pull/129/

Changes may take a few minutes to propagate. Since this is a preview of production, content with draft: true will not be rendered. The source is here: https://github.com/lip6/coriolis/tree/gh-pages/pull/129/

Copy link
Collaborator

@jpc-lip6 jpc-lip6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK for me. Just one though : why the layer name in the Coriolis config files be different that the ones in the LEF file ? I try to use the same names for the sake of clarity, but maybe there are corner cases.

@lanserge
Copy link
Collaborator Author

lanserge commented Feb 16, 2024

OK for me. Just one though : why the layer name in the Coriolis config files be different that the ones in the LEF file ? I try to use the same names for the sake of clarity, but maybe there are corner cases.

There is no problem with single LEF, but for different IPs that provide different LEFs, like standard cells LEF and padring cells LEF and SRAM macro LEF they all could have different layer names for the same technology and especially if they are from different providers. The layermap file that accompany the LEF file could be used for mapping names to the proper GDS layers.

@jpc-lip6
Copy link
Collaborator

OK for me. Just one though : why the layer name in the Coriolis config files be different that the ones in the LEF file ? I try to use the same names for the sake of clarity, but maybe there are corner cases.

There is no problem with single LEF, but for different IPs that provide different LEFs, like standard cells LEF and padring cells LEF and SRAM macro LEF they all could have different layer names for the same technology and especially if they are from different providers. The layermap file that accompany the LEF file could be used for mapping names to the proper GDS layers.

I assume that you did encounter that case. I find it extremely scary that, for a same technology, different providers uses different layer names. Especially as the GDS layer name is not indicated in the LEF file, so we have to rely on some third party information to ensure that the mapping is consistent across different LEF files.

@lanserge
Copy link
Collaborator Author

The accompanied layermap file contains information that maps LEF layer names to GDS numerical values. So this makes LEF use any names for the GDS layers. Using this information will guarantee no mess with layers.

@lanserge lanserge merged commit 12bdf80 into main Feb 17, 2024
8 of 12 checks passed
@lanserge lanserge deleted the leflayers branch February 17, 2024 00:01
@stafverhaegen-chipflow
Copy link
Collaborator

stafverhaegen-chipflow commented Feb 20, 2024

Also it is not uncommon that the layer names in the design rule manual and the Virtuoso layer names differ from the layer names used in LEF files. In such cases I think in Coriolis the names used in DRM/Virtuoso should be used and the LEF layers mapped onto those names.

rchotin pushed a commit that referenced this pull request Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants