viaEngineContext User Type
When you call pre or post viaEngine callback function, the viaEngineContext user type is specified.
The following example depicts the sample usage of the user type information.
procedure(myPreViaEngineCB(veCxt)
printf("call pre viaEngine procedure with context '%s' and viaDef '%s'.\n" veCxt->operationType veCxt->viaModel->viaDef->name)
printf("overlapInfo is: ")
println(veCxt->overlapInfo)
t
)
viaRegisterPreViaEngineCallback(“myPreViaEngineCB”)
When creating a via in single via mode, the following is the output of the above sample callback function:
\o call pre viaEngine procedure with context 'check' and viaDef 'M3_M2'.
\o overlapInfo is: nil
When creating a via in auto via mode, the following is the output of the sample callback function:
\o call pre viaEngine procedure with context 'generate' and viaDef 'M1_PO'.
\o overlapInfo is: ((((0.25 -4.0) (0.25 1.0) (-0.25 1.0) (-0.25 -4.0)) "Metal1" "drawing" "bottom to top" 0.5) (((1.0 -1.0) (1.0 2.0) (-1.0 2.0) (-1.0 -1.0)) "Poly" "drawing" "vertical" 2.0) ((-0.25 -1.0) (0.25 1.0)))
\r t
In this example, the value, 0.5, means that the first involved shape on Metal1 drawing has a width of 0.5. The value 2.0 means that the second involved shape on Poly drawing has a width of 2.0. And the intersection of the two shapes gives the following overlap box:
((-0.25 -1.0) (0.25 1.0))
Related Topics
Appendix 5, “Setting the Technology to Create Vias”
Calculation Modes for Via Parameters
Return to top