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

Adding MIM-A table for GF180MCU DRC #72

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

FaragElsayed2
Copy link
Collaborator

Adding MIM-A table for GF180MCU DRC

Copy link
Collaborator

@atorkmabrains atorkmabrains left a 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
Copy link
Collaborator

Choose a reason for hiding this comment

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

Same 2023

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@atorkmabrains

I will do that for all DRC files in a separate PR after adding all tables.

Refer to #75

Copy link
Collaborator

@atorkmabrains atorkmabrains left a comment

Choose a reason for hiding this comment

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

@atorkmabrains
Copy link
Collaborator

@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)
Copy link
Member

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)
Copy link
Member

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)
Copy link
Member

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)
Copy link
Member

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)
Copy link
Member

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.
Copy link
Member

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:
Copy link
Member

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?

Copy link
Member

@proppy proppy left a 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!

@proppy
Copy link
Member

proppy commented Jun 12, 2023

sorry for the delay in the review.

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