-
Notifications
You must be signed in to change notification settings - Fork 5
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
Adding MIM-A table for GF180MCU DRC #72
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please check @FaragElsayed2
# frozen_string_literal: true | ||
|
||
################################################################################################ | ||
# Copyright 2022 GlobalFoundries PDK Authors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will do that for all DRC files in a separate PR after adding all tables.
Refer to #75
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @FaragElsayed2
@proppy Could you please merge this? |
logger.info('Starting MIM Capacitor Option A derivations') | ||
|
||
m2_fusetop = metal2.interacting(fusetop) | ||
mim_virtual = fusetop.sized(1.06.um).and(m2_fusetop) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we add a comment about which rules are using those (also see #77)
logger.info('Executing rule MIM.2') | ||
mim2_via = via2.overlapping(mim_virtual) | ||
mim2_l1 = mim2_via.enclosed(metal2, 0.4.um, euclidian).polygons(0.001.um) | ||
mim2_l2 = mim2_via.not_outside(metal2).not(metal2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you add a comment describe this line (is that for selecting the bottom plate?), because I can't really relate this to the current wording of the rule.
# Rule MIM.3: Minimum MiM bottom plate overlap of Top plate is 0.6um. | ||
logger.info('Executing rule MIM.3') | ||
mim3_l1 = fusetop.enclosed(mim_virtual, 0.6.um).polygons(0.001.um) | ||
mim3_l2 = fusetop.not_inside(mim_virtual) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same q here.
# Rule MIM.4: Minimum MiM top plate (FuseTop) overlap of Via2 is 0.4µm. | ||
logger.info('Executing rule MIM.4') | ||
mim4_l1 = via2.enclosed(fusetop, 0.4.um, euclidian).polygons(0.001.um) | ||
mim4_l2 = via2.not_outside(fusetop).not(fusetop) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same q here.
# Rule MIM.8b: Maximum single MIM Cap area (Use multiple MIM caps in parallel | ||
## connection if bigger capacitors are required) (um2) is 10000µm. | ||
logger.info('Executing rule MIM.8b') | ||
mim8b_l1 = fusetop.with_area(10_001.um, nil) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
curious why you're not using the same thing as mim_b here?
fusetop.with_area(10_000.um, nil).not(fusetop.with_area(10_000.um))
mim10_l1.forget | ||
|
||
# Rule MIM.11: Bottom plate of multiple MIM caps can be shared (for common nodes) | ||
# as long as total MIM area with that single common plate does not exceed MIM.8b rule. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should that be MIM.8a
rule here? (since we're in the mim_a.drc
deck)
@@ -0,0 +1,2 @@ | |||
mim_a: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
first time I see those yaml files, is that new?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some nits and qs, but looks good overall!
sorry for the delay in the review. |
Adding MIM-A table for GF180MCU DRC