efabless / globalfoundries-pdk-libs-gf180mcu_fd_pr

Primitives for GF180MCU provided by GlobalFoundries.
https://gf180mcu-pdk.rtfd.io
Apache License 2.0
9 stars 8 forks source link

Via DRC Violation Issue #34

Closed StanleyAlwaysLoveYou closed 1 year ago

StanleyAlwaysLoveYou commented 1 year ago

Expected Behavior

The V1.1 violation will pop up when a via size is less than 0.26*0.26

Actual Behavior

I accidentally used 0.22*0.22 vias all over my layout and this V1.1 didn't show up when running the drc. Those four violations are the density violations.

截圖 2023-02-23 下午2 52 21

Steps to Reproduce the Problem

  1. Create a small block consisting of M1, M2, and via1 in my layout. Then copy to a new layout called testvia.txt and run the DRC. No V1.1 violation shows.

截圖 2023-02-22 下午4 13 38

  1. To figure out what happens. I create a new, identical layout called testvia2.txt manually(this time not copy from my previous layout). V1.1 violation shows

截圖 2023-02-22 下午4 28 26

  1. Now I compare testvia.txt with testvia2.txt, The only difference are time stamp and the name of layout.

截圖 2023-02-22 下午4 29 13 截圖 2023-02-22 下午4 30 02

  1. These steps shows a weird issue of this via violation.

@msaligane @proppy @andylithia

Specifications

atorkmabrains commented 1 year ago

@StanleyAlwaysLoveYou Could you please use: https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pv/tree/main/klayout/drc instead of the DRC here?

proppy commented 1 year ago

@atorkmabrains isn't the content at https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pr (what's currently packaged in open_pdks) equivalent to what's in the _pv repo?

atorkmabrains commented 1 year ago

It's no longer the case @proppy. What in the PR repo is not up to date as PV. We have cleaned the DRC significantly due to the review we are doing with you. We improved the performance and fixed a handful of DRC bugs. And @RTimothyEdwards has just migrated the source of DRC for open_pdks from PR to PV:

https://github.com/RTimothyEdwards/open_pdks/commit/7ddd413a3495a9055f03ae60b4320b14d0d6dc55

I'm going to remove DRC from this PR repo as we have originally planned.

proppy commented 1 year ago

@RTimothyEdwards has just migrated the source of DRC for open_pdks from PR to PV:

Awesome!

I'm going to remove DRC from this PR repo as we have originally planned.

Perfect, maybe also add a line to the README to inform people of the new location.

Do we still plan to merge most of the content in https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pv? /cc @mithro

atorkmabrains commented 1 year ago

Yes, that has been always the plan to move to Google. But I think we are stuck with the issue of meeting the complex linting requirements for ruby at that point.

proppy commented 1 year ago

But I think we are stuck with the issue of meeting the complex linting requirements for ruby at that point.

Let's discuss this in https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pv/issues/40 I didn't realize it was a blocker.

atorkmabrains commented 1 year ago

Thanks @proppy

atorkmabrains commented 1 year ago

@StanleyAlwaysLoveYou I'll keep this ticket open until, I hear back from you about the results using pv version.

StanleyAlwaysLoveYou commented 1 year ago

I used the drc in pv version and still shows the different result: testvia.gds doesn't have the V1.1 rule violation while testvia2.gds has.

image

I guess there is some difference in these two .gds while they look identical in klayout, even the .txt files translated from the corresponding .gds file look the same. However I can't run the drc on the .txt file so it is hard to figure out what happens between these two "identical" layouts.

atorkmabrains commented 1 year ago

@StanleyAlwaysLoveYou Could you please upload the files this way we could test?

StanleyAlwaysLoveYou commented 1 year ago

I am not sure how to directly upload the files. I'll put them in a zip folder: testvia.zip

StanleyAlwaysLoveYou commented 1 year ago

Found another way, in case the file will change during compression. The below is the link of the two gds files https://drive.google.com/drive/folders/1bJGJSbtJjhNF4FMp3EHazQeSTnmY0TDa?usp=sharing Thanks a lot!

atorkmabrains commented 1 year ago

@FaragElsayed2 Could you please take a look at this?

FaragElsayed2 commented 1 year ago

@atorkmabrains

The difference between them is database unit image

This cause an issue in extended command as we have used 0.001 db value not um. image

I have opened an issue to make DRC rules independent of DB unit. https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pv/issues/86

atorkmabrains commented 1 year ago

Thanks @FaragElsayed2

atorkmabrains commented 1 year ago

@StanleyAlwaysLoveYou Will be fixed soon.

StanleyAlwaysLoveYou commented 1 year ago

Thanks @FaragElsayed2 @atorkmabrains So the problem is I used the different database unit in these two layouts? May I ask what exactly the database unit is?

atorkmabrains commented 1 year ago

@StanleyAlwaysLoveYou Precision is a number that is stored in the layout file GDS/OASIS to tell it what each integer number represent in the layout. For example, if the precision is 1000, then each database unit is 0.001 um. If precision is 10000, then each database unit is 0.0001um. So on so forth.

StanleyAlwaysLoveYou commented 1 year ago

Oh I see. I saved testvia.gds as a new file with 0.001um database unit, then the V1.1 violation did work.

atorkmabrains commented 1 year ago

@StanleyAlwaysLoveYou and @proppy Fixed in https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pv/pull/88