📄 oadefin.cpp
字号:
//// The DEF FILLS constructs are stored in OA as rectangles (oaRect) on the// pre-defined purpose oavPurposeNumberFill.// *****************************************************************************voidDefIn::parseFill(defiFill *data){ oaLayerNum layerNum = getLayerNum(data->layerName()); for (int i = 0; i < data->numRectangles(); i++) { oaInt4 xl = scaleToDBU(data->xl(i)); oaInt4 yl = scaleToDBU(data->yl(i)); oaInt4 xh = scaleToDBU(data->xh(i)); oaInt4 yh = scaleToDBU(data->yh(i)); oaRect::create(design()->getTopBlock(), layerNum, oavPurposeNumberFill, oaBox(oaMin(xl, xh), oaMin(yl, yh), oaMax(xl, xh), oaMax(yl, yh))); }}// *****************************************************************************// DefIn::parseDesignEnd()//// This function handles the "END DESIGN" DEF construct.// *****************************************************************************voidDefIn::parseDesignEnd(void *data){ // Postprocessing ORIGINAL attribute for nets getDefInNet()->setOriginalNets(); if (unresolvedMasters) { oaScalarName cellName; design()->getCellName(cellName); design()->save(); design()->close(); design() = oaDesign::open(options->getLibName(), cellName, options->getViewName(), 'a'); designs.append(design()); return; } oaBox box; design()->getTopBlock()->getBBox(box); design()->save(); design()->close();}// *****************************************************************************// DefIn::cbCaseSensitive()// DefIn::cbBusBitChars()// DefIn::cbDividerChar()// DefIn::cbDesign()// DefIn::cbTechnology()// DefIn::cbUnits()// DefIn::cbPropDef()// DefIn::cbDieArea()// DefIn::cbRow()// DefIn::cbTrack()// DefIn::cbGCellGrid()// DefIn::cbVia()// DefIn::cbRegion()// DefIn::cbComponent()// DefIn::cbPins()// DefIn::cbPinPropDef()// DefIn::cbSNet()// DefIn::cbNet()// DefIn::cbScanChain()// DefIn::cbGroupName()// DefIn::cbGroupMember()// DefIn::cbGroup()// DefIn::cbBlockages()// DefIn::cbFill()// DefIn::cbDesignEnd()// // These static functions are required since the CAT parser only// accepts pointers to functions, and no pointers to member functions.// These functions call their virtual equivalent on the translator class.// *****************************************************************************intDefIn::cbCaseSensitive(defrCallbackType_e cbType, int data, defiUserData userData){ try { ((DefIn*) userData)->parseCaseSensitive(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbBusBitChars(defrCallbackType_e cbType, const char *data, defiUserData userData){ try { ((DefIn*) userData)->parseBusBitChars(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbDividerChar(defrCallbackType_e cbType, const char *data, defiUserData userData){ try { ((DefIn*) userData)->parseDividerChar(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbDesign(defrCallbackType_e cbType, const char *data, defiUserData userData){ try { ((DefIn*) userData)->parseDesign(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbTechnology(defrCallbackType_e cbType, const char *data, defiUserData userData){ try { ((DefIn*) userData)->parseTechnology(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbUnits(defrCallbackType_e cbType, double data, defiUserData userData){ try { ((DefIn*) userData)->parseUnits(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbPropDef(defrCallbackType_e cbType, defiProp *data, defiUserData userData){ try { ((DefIn*) userData)->parsePropDef(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbDieArea(defrCallbackType_e cbType, defiBox *data, defiUserData userData){ try { ((DefIn*) userData)->parseDieArea(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbRow(defrCallbackType_e cbType, defiRow *data, defiUserData userData){ try { ((DefIn*) userData)->parseRow(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbTrack(defrCallbackType_e cbType, defiTrack *data, defiUserData userData){ try { ((DefIn*) userData)->parseTrack(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbGCellGrid(defrCallbackType_e cbType, defiGcellGrid *data, defiUserData userData){ try { ((DefIn*) userData)->parseGCellGrid(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbVia(defrCallbackType_e cbType, defiVia *data, defiUserData userData){ try { ((DefIn*) userData)->parseVia(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbStyle(defrCallbackType_e cbType, defiStyles *data, defiUserData userData){ try { ((DefIn*) userData)->parseStyle(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbNDR(defrCallbackType_e cbType, defiNonDefault *data, defiUserData userData){ try { ((DefIn*) userData)->parseNDR(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbRegion(defrCallbackType_e cbType, defiRegion *data, defiUserData userData){ try { ((DefIn*) userData)->parseRegion(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbComponent(defrCallbackType_e cbType, defiComponent *data, defiUserData userData){ try { ((DefIn*) userData)->parseComponent(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbPins(defrCallbackType_e cbType, defiPin *data, defiUserData userData){ try { ((DefIn*) userData)->parsePin(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbPinPropDef(defrCallbackType_e cbType, defiPinProp *data, defiUserData userData){ try { ((DefIn*) userData)->parsePinPropDef(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbSNet(defrCallbackType_e cbType, defiNet *data, defiUserData userData){ try { ((DefIn*) userData)->parseSNet(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbNet(defrCallbackType_e cbType, defiNet *data, defiUserData userData){ try { ((DefIn*) userData)->parseNet(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbScanChain(defrCallbackType_e cbType, defiScanchain *data, defiUserData userData){ try { ((DefIn*) userData)->parseScanChain(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbGroupName(defrCallbackType_e cbType, const char *data, defiUserData userData){ try { ((DefIn*) userData)->parseGroupName(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbGroupMember(defrCallbackType_e cbType, const char *data, defiUserData userData){ try { ((DefIn*) userData)->parseGroupMember(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbGroup(defrCallbackType_e cbType, defiGroup *data, defiUserData userData){ try { ((DefIn*) userData)->parseGroup(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbBlockages(defrCallbackType_e cbType, defiBlockage *data, defiUserData userData){ try { ((DefIn*) userData)->parseBlockages(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbFill(defrCallbackType_e cbType, defiFill *data, defiUserData userData){ try { ((DefIn*) userData)->parseFill(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}intDefIn::cbDesignEnd(defrCallbackType_e cbType, void *data, defiUserData userData){ try { ((DefIn*) userData)->parseDesignEnd(data); } catch (oaException &err) { ((DefIn*) userData)->error(cGeneric, (const char*) err.getMsg()); } return PARSE_OK;}END_LEFDEF_NAMESPACE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -