⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oadefin.cpp

📁 openaccess读def,lef文件所用的源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//// 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 + -