Class Reference extractionModule

A module to extract electrical parameter from the design. More...

Member

double calcResistance(pointArray p, int port1, int port2)
void extractComponent(string comp,string lib )
void inductanceAdd(element *shape, int conductorNum)
void inductanceAddSelection()
void inductanceCalc(double frequency=1000000)
void inductanceClear()
double inductanceResult(int con1,int con2)
void removeExtractedDevices()
void setDetailsResistance(int)

Detailed Description

graph LR la(layout)--extractionTool-->em(extractionModule) click la "/layoutscript/api/layout" click bo "/layoutscript/api/booleanhandler" click br "/layoutscript/api/barcodemodule" click em "/layoutscript/api/extractionmodule" click drc "/layoutscript/api/drc" click dr "/layoutscript/api/drawingfield" classDef thisClas fill:#eaf5fc,stroke:#3c7faa,stroke-width:4px; classDef clas fill:#eaf5fc,stroke:#3c7faa,stroke-width:1px; class em thisClas class cl,la,dr,el,ne,bo,br,drc clas

A module contain several methods to extract electrical parameter from the design.

Member Function Documentation


double extractionModule::calcResistance(pointArray p, int port1, int port2)

caluclate the resistance of a single polygon. As ports for the calculation the point array segment port1 and port2 will be used, e.g. a 1 for port1 will use the polygon segment between pointArray.point(1) and pointArray.point(2) as port. The returned value times the square resistance will result in the absolute resistance of the structure.


void extractionModule::extractComponent(string comp,string lib )

extract the component comp from the design. All extraction information is store in the component library.


void extractionModule::inductanceAdd(element *shape, int conductorNum)

add the shape to the shapes used for inductance calculation. As for the inducatance calculation in general path elements are assumed to have a current flow in the drawong plane and polygon are assumed to have a current flow perpendicular to the drawing plane. The shorted currenct flow through all shapes of an conductor is assumed. (introduced with release 20180505)


void extractionModule::inductanceAddSelection()

Adds all selectec shapes to a new conductor for the inducance caluclation.(introduced with release 20180505)


void extractionModule::inductanceCalc(double frequency=1000000)

starts the calculation of the inductance (introduced with release 20180505)


void extractionModule::inductanceClear()

removes all shapes added before from the inductance calculation. (introduced with release 20180505)


double extractionModule::inductanceResult(int con1,int con2)

Returns: the result of the inductance calculation. If con1=con2 the selft inductance of the conductor is returned. Apart from that the coupling is returned. (introduced with release 20180505)

        // setup and performs the extraction
        layout->extractionTool->inductanceClear();
        layout->drawing->deselectAll();
        layout->drawing->activeLayer=1;
        layout->drawing->selectActiveLayer();
        layout->extractionTool->inductanceAddSelection();
        layout->drawing->deselectAll();        
        layout->drawing->activeLayer=6;
        layout->drawing->selectActiveLayer();
        layout->extractionTool->inductanceAddSelection();
        layout->drawing->deselectAll();        
        layout->extractionTool->inductanceCalc(1000000);
        debug("output self inductance in nH");
        debug(layout->extractionTool->inductanceResult(0,0)*1000000000);      //output in nH 

void extractionModule::removeExtractedDevices()

devices created by prior device extractions are removed from the current cell. Use device cells are removed as well.


void extractionModule::setDetailsResistance(int)

set the detaillevel for calculation of the resistance. Allowed values are from 0 (fastest) to 100 (most detailed).