Code Monkey home page Code Monkey logo

Comments (15)

RTimothyEdwards avatar RTimothyEdwards commented on May 21, 2024

@proppy : Yes, LVPWELL outside of DNWELL is equivalent to substrate and should be treated as such. That usage is in much of the GF IP.

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

Thanks @RTimothyEdwards

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

proppy avatar proppy commented on May 21, 2024

@RTimothyEdwards Thanks for the explanation.

@atorkmabrains would it makes sense to update the pcells to always draw LVPWELL when Bulk Tie is set?

# Inserting LVPWELL
cell.shapes(lvpwell).insert(pya.Box(-lvpwell_enc_pcmp-cmp2cmp-ld, -lvpwell_enc_ncmp,
(2 * (ld + ld_violat) + l + lvpwell_enc_ncmp + (nf - 1) * (ld + ld_violat + l + cont2ply - cmp2cont)),
w + lvpwell_enc_ncmp))

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

spnadig avatar spnadig commented on May 21, 2024

@msaligane - this was the issue I was talking about - We had to add Deep N well as a fix to pass LVS because the bulk pin would not get connected appropriately if DN WELL was not enabled

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

proppy avatar proppy commented on May 21, 2024

@atorkmabrains currently it seems that LVPWELL is only drawn when DNWELL is set in the pcell option, would it make sense to update the pcell implementation to always draw LVPWELL when bulk tie is enabled independently of the state of the DNWELL option?

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

@proppy That's a separate issue. LVPWELL is optional or don't care in case that DNWELL is not drawn. If you draw, DNWELL you can draw LVPWELL. Pcell is functioning correctly, no need to add this modification into the pcell.

@spnadig Could you please show me the design that caused this?

I advise that you use DRC and LVS from https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pr? Also, please stay tuned as we are going to move LVS and DRC to: https://github.com/efabless/globalfoundries-pdk-libs-gf180mcu_fd_pv.

cc @msaligane

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

@RTimothyEdwards Thanks for the explanation.

@atorkmabrains would it makes sense to update the pcells to always draw LVPWELL when Bulk Tie is set?

https://github.com/google/globalfoundries-pdk-libs-gf180mcu_fd_pr/blob/11770e5e5bae2a2072899e7ef282c080e6c5d762/cells/klayout/pymacros/cells/draw_mos.py#L192-L195

@proppy No, as I mentioned in my comment above, LVPWELL is totally ignored in everything if there is no DNWELL. No need to modify the pcell.

The issue that @spnadig is having is a separate issue. I need to look into it.

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

proppy avatar proppy commented on May 21, 2024

My understanding is that in #104 (comment) @RTimothyEdwards stated that LVPWELL without DNWELL was a valid usecase.

Shouldn't we make sure that this is also supported by the pcell?

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

@proppy yes, you could draw LVPWELL but the correct action is to not to draw it by default as it's disregarded in case the DNWELL is not drawn. The pcell is designed to allow the real use case of the LVPWELL. I don't advise to add LVPWELL if you are not really using it.

An exception to my comment above is the standard cells, standard cells should have LVPWELL just in case the user might want to use DNWELL later around the digital block later for any electrical reasons. But this use scenario is only valid for standard cells.

As for @RTimothyEdwards comments, what he basically wanted to say if I understand it correctly, is that LVPWELL is disregarded and we shall consider it as if it's not even drawn if it doesn't reside inside DNWELL and consider LVPWELL as part of the regular silicon substrate.

@RTimothyEdwards Please correct me if you think my comment above doesn't match yours.

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

@proppy I'm more concerned about the issue highlighted by @spnadig regarding the LVS. I need to understand that use case and why it didn't pass without DNWELL even if the LVPWELL is present. This has nothing to do with the pcell adding LVPWELL rather it's related to the LVS rule deck.

@spnadig Please share a test case and open an issue saying LVS doesn't pass due to LVPWELL. That might be a problem that we might need to fix.

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

proppy avatar proppy commented on May 21, 2024

@atorkmabrains I think this is due to the substrate connection of the bulk tie creating an additional signal (gf180mcu_gnd) when the LVPWELL is not present.

Is there a usecase for setting Bulk tie without drawing LVPWELL?

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

@proppy bulk tie doesn't need LVPWELL to happen, please read here:
https://en.wikipedia.org/wiki/CMOS

And BTW, that's the normal in almost all CMOS processes.

GF180MCU is a triple well technology, hence we need a PWELL marker:
https://www.researchgate.net/figure/Triple-well-NMOS-transistor-structure-See-the-colors-in-the-online-version_fig2_303530652

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

proppy avatar proppy commented on May 21, 2024

bulk tie doesn't need LVPWELL to happen, please read here: https://en.wikipedia.org/wiki/CMOS

Thanks for providing the links, I could find any mention of bulk tie nor its relation (if any) to PWELL on it, do you have an alternative source of documentation?

GF180MCU is a triple well technology, hence we need a PWELL marker:
https://www.researchgate.net/figure/Triple-well-NMOS-transistor-structure-See-the-colors-in-the-online-version_fig2_303530652

Without a PWELL it seems that the current LVS extraction is not able to infer the substrate connection of the BULK tied to SRC terminal for nmos device effectively leaving it floating with a different ground net, is that intentional? Or is there a different way to provide a hint for this implicit connection in the layout?

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

Without a PWELL it seems that the current LVS extraction is not able to infer the substrate connection of the BULK tied to SRC terminal for nmos device effectively leaving it floating with a different ground net, is that intentional? Or is there a different way to provide a hint for this implicit connection in the layout?

If what you mentioned is true that LVS requires LVPWELL to get the connectivity to substrate, then that's definitely a bug in LVS. I need the test case that has that issue. Also, are they using Google repo? If yes, then please tell them to use efabless one as Google repo is not updated and not cleaned.

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

atorkmabrains avatar atorkmabrains commented on May 21, 2024

bulk tie doesn't need LVPWELL to happen, please read here: https://en.wikipedia.org/wiki/CMOS

Thanks for providing the links, I could find any mention of bulk tie nor its relation (if any) to PWELL on it, do you have an alternative source of documentation?

As for your question about this, you need to know more about micro-electronics bulk tie has many different words that represent it, you don't necessarily need to find in the link I provided. Here are a few good courses you could start looking at:

from globalfoundries-pdk-libs-gf180mcu_fd_pr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.