spdCalcOdSpacingWithPoly
spdCalcOdSpacingWithPoly(d_lhsInst d_rhsInst n_minOd n_minPoly) =>n_odSpacing
Description
Calculates the required oxide diffusion spacing between two adjacent instances based on minimum oxide diffusion spacing and polysilicon spacing constraints.
This function can be used to write a user function that is called when the value of SPD Options - Generation - X: OD drop box is set to UserFunction. This user callback specifies the required oxide diffusion spacing between two unabutted instances.
Arguments
Value Returned
|
The required oxygen diffusion spacing between the left-hand and right-hand instances. |
Example
Using user-defined dummy poly spacing callback function:
procedure(MyOdSpcProc(lInst rInst)
let((odSpcWithPoly minOd minPoly)
minOd = 0.038 ; minimum oxide diffusion spacing constraint
minPoly = 0.068 ; minimum poly spacing constraint
odSpcWithPoly = spdCalcOdSpacingWithPoly(lInst rInst minOd minPoly)
info("spdCalcOdSpacingWithPoly: lInst %s rInst %s => %f\n" lInst~>name rInst~>name odSpcWithPoly)
odSpcWithPoly
)
)
To activate the user callback:
- In the SPD Editing window, open the SPD Options form.
- On the Generation option pane, select UserFunction from the X: OD drop-down list.
-
Enter
MyOdSpcProcin the X: OD field and click Apply. - Click Preview Layout or Generate Layout.
The following message is displayed in CIW:
spdCalcOdSpacingWithPoly: lInst I8 rInst I9 => 0.360000
The generated layout is as below:

In the figure, the left-hand instance is I8 and the right-hand instance is I9. These are devices with dummy poly.
In this example, the user callback MyOdSpcProc() is performed on instances I8 and I9 to calculate the minimum required oxide diffusion spacing between them.
Although the minimum oxide diffusion spacing constraint is 0.038, the oxide diffusion spacing between I8 and I9 cannot be 0.038. This is because additional spacing is required for the minimum poly spacing constraint, which is 0.068.
You can use function spdCalcOdSpacingWithPoly()to calculate the required oxide diffusion spacing that can satisfy both the minimum oxide diffusion and the minimum polysilicon spacing constraints.
In this case, spdCalcOdSpacingWithPoly() considers the two instances I8 and I9, minimum oxide diffusion spacing 0.038, and minimum polysilicon spacing 0.068 as arguments. It returns 0.36 which is the required oxide spacing between I8 and I9 to satisfy both spacing constraints. By setting the oxide diffusion spacing of I8 and I9 by 0.36, both the minimum polysilicon spacing constraint 0.068 and the minimum oxide diffusion constraint 0.038 are satisfied.
Related Topics
Return to top