abcyin
Full Member level 4
- Joined
- Apr 15, 2005
- Messages
- 236
- Helped
- 12
- Reputation
- 24
- Reaction score
- 3
- Trophy points
- 1,298
- Activity points
- 2,855
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Hi abcyin
This can happen under various circumstances most typically when there is a jog on the gate (45deg turns) used in commercial std cells to increase density.
The simplest option is to ignore it or better verify that these little violations are not masking important ones by temporarily increasing the tolerance (see TRACE PROPERTY command in calibre manual)
... could you pls tell me how to increase the tolerance, do you mean I have to modify the rule file, but how to?
procedure(compareMOS(layMos schMos)
prog(nil
unless( and(layMos->w schMos->w layMos->l schMos->l)
sprintf(errorC
"Nil parameter: w:%g l:%g (layout) w:%g l:%g (schematic)"
layMos->w layMos->l schMos->w schMos->l)
return(errorC)
)
when(abs(layMos->w - schMos->w * schMos->m) > 0.01 * schMos->w * schMos->m
&& abs(layMos->l - schMos->l) > 0.001 * schMos->l
sprintf(errorwl
"Gate w & l mismatch : total w:%g l:%g (layout) w:%g m:%g l:%g (schematic)"
float(layMos->w) float(layMos->l)
float(schMos->w) float(schMos->m) float(schMos->l))
return(errorwl)
)
when(abs(layMos->w - schMos->w * schMos->m) > 0.01 * schMos->w * schMos->m
sprintf(errorw "Gate w mismatch: total w:%g (layout) w:%g m:%g (schematic)"
float(layMos->w) float(schMos->w) float(schMos->m) )
return(errorw)
)
when(abs(layMos->l - schMos->l) > 0.001 * schMos->l
sprintf(errorl
"Gate length mismatch: %g layout to %g schematic"
float(layMos->l) float(schMos->l))
return(errorl)
)
return(nil)