📄 oadefin.h
字号:
// *****************************************************************************// *****************************************************************************// DefIn.h//// This file contains the definition for the DefIn class. This// class implements reading a DEF file and creating an OA design.// It uses the CAT DEF parser to parse the DEF file.//// *****************************************************************************// Except as specified in the OpenAccess terms of use of Cadence or Silicon// Integration Initiative, this material may not be copied, modified,// re-published, uploaded, executed, or distributed in any way, in any medium,// in whole or in part, without prior written permission from Cadence.//// Copyright 2002-2005 Cadence Design Systems, Inc.// All Rights Reserved.//// $Author: sailajad $// $Revision: 1.89 $// $Date: 2005/08/05 01:41:33 $// $State: Exp $// *****************************************************************************// *****************************************************************************#ifndef DefIn_P#define DefIn_P#include "oaLefDef.h"#include "defrReader.hpp"BEGIN_LEFDEF_NAMESPACE// *****************************************************************************// DefIn// *****************************************************************************class OA_LEFDEF_DLL_API DefIn : public LefDefIn { public: DefIn(oaUtil::MsgAdapter &msgAdapterIn); virtual ~DefIn(); virtual void run(DefInOptions *options); virtual void run(FILE *file, DefInOptions *options); // Utility functions for use by helper classes. DefInOptions *getOptions() {return options;} oaBoolean isUpdate() {return update;} oaInt4 scaleToDBU(double x); virtual void getSimpleName(const oaString &str, oaSimpleName &name); virtual oaInst *getInst(const oaSimpleName &instName); virtual oaBitTerm *getTerm(const oaSimpleName &termName); virtual oaBitTerm *getTerm(const oaSimpleName &pinName, const oaSimpleName &netName, oaTermType termType = oacInputOutputTermType, oaSigType sigType = oacSignalSigType, oaBlockDomainVisibility visibility = oacInheritFromTopBlock); virtual oaInstTerm *getInstTerm(oaInst *inst, const oaSimpleName &termName, oaBitNet *net = NULL, oaRouteMethod routeMethod = oacSymbolicRouteMethod, oaBlockDomainVisibility visibility = oacInheritFromTopBlock); virtual oaBitNet *getNet(const oaSimpleName &netName, oaSigType sigType = oacSignalSigType, oaBlockDomainVisibility visibility = oacInheritFromTopBlock); virtual void error(LefDefMsgIds msgId, ...); virtual void warn(LefDefMsgIds msgId, ...); // Callback wrapper functions for the CAT parser. static int cbCaseSensitive(defrCallbackType_e cbType, int data, defiUserData userData); static int cbBusBitChars(defrCallbackType_e cbType, const char *data, defiUserData userData); static int cbDividerChar(defrCallbackType_e cbType, const char *data, defiUserData userData); static int cbDesign(defrCallbackType_e cbType, const char *data, defiUserData userData); static int cbTechnology(defrCallbackType_e cbType, const char *data, defiUserData userData); static int cbUnits(defrCallbackType_e cbType, double data, defiUserData userData); static int cbPropDef(defrCallbackType_e cbType, defiProp *data, defiUserData userData); static int cbDieArea(defrCallbackType_e cbType, defiBox *data, defiUserData userData); static int cbRow(defrCallbackType_e cbType, defiRow *data, defiUserData userData); static int cbTrack(defrCallbackType_e cbType, defiTrack *data, defiUserData userData); static int cbGCellGrid(defrCallbackType_e cbType, defiGcellGrid *data, defiUserData userData); static int cbVia(defrCallbackType_e cbType, defiVia *data, defiUserData userData); static int cbStyle(defrCallbackType_e cbType, defiStyles *data, defiUserData userData); static int cbNDR(defrCallbackType_e cbType, defiNonDefault *data, defiUserData userData); static int cbRegion(defrCallbackType_e cbType, defiRegion *data, defiUserData userData); static int cbComponent(defrCallbackType_e cbType, defiComponent *data, defiUserData userData); static int cbPins(defrCallbackType_e cbType, defiPin *data, defiUserData userData); static int cbPinPropDef(defrCallbackType_e cbType, defiPinProp *data, defiUserData userData); static int cbSNet(defrCallbackType_e cbType, defiNet *data, defiUserData userData); static int cbNet(defrCallbackType_e cbType, defiNet *data, defiUserData userData); static int cbScanChain(defrCallbackType_e cbType, defiScanchain *data, defiUserData userData); static int cbGroupName(defrCallbackType_e cbType, const char *data, defiUserData userData); static int cbGroupMember(defrCallbackType_e cbType, const char *data, defiUserData userData); static int cbGroup(defrCallbackType_e cbType, defiGroup *data, defiUserData userData); static int cbBlockages(defrCallbackType_e cbType, defiBlockage *data, defiUserData userData); static int cbFill(defrCallbackType_e cbType, defiFill *data, defiUserData userData); static int cbDesignEnd(defrCallbackType_e cbType, void *data, defiUserData userData); protected: virtual void parse(FILE *file); virtual void parseCaseSensitive(int data); virtual void parseBusBitChars(const char *data); virtual void parseDividerChar(const char *data); virtual void parseDesign(const char *data); virtual void parseTechnology(const char *data); virtual void parseUnits(double data); virtual void parsePropDef(defiProp *data); virtual void parseDieArea(defiBox *data); virtual void parseRow(defiRow *data); virtual void parseTrack(defiTrack *data); virtual void parseGCellGrid(defiGcellGrid *data); virtual void parseVia(defiVia *data); virtual void parseStyle(defiStyles *data); virtual void parseNDR(defiNonDefault *data); virtual void parseRegion(defiRegion *data); virtual void parseComponent(defiComponent *data); virtual void parsePin(defiPin *data); virtual void parsePinPropDef(defiPinProp *data); virtual void parseSNet(defiNet *data); virtual void parseNet(defiNet *data); virtual void parseScanChain(defiScanchain *data); virtual void parseGroupName(const char *name); virtual void parseGroupMember(const char *name); virtual void parseGroup(defiGroup *data); virtual void parseBlockages(defiBlockage *data); virtual void parseFill(defiFill *data); virtual void parseDesignEnd(void *data); virtual void init(); virtual void initCallbacks(); virtual void initLib(); virtual void initTechDB(); virtual void close(); virtual DefInBlockage *getDefInBlockage(); virtual DefInComponent *getDefInComponent(); virtual DefInGroup *getDefInGroup(); virtual DefInNDR *getDefInNDR(); virtual DefInNet *getDefInNet(); virtual DefInPin *getDefInPin(); virtual DefInRegion *getDefInRegion(); virtual DefInRow *getDefInRow(); virtual DefInScanChain *getDefInScanChain(); virtual DefInStyle *getDefInStyle(); virtual DefInTrack *getDefInTrack(); virtual DefInVia *getDefInVia(); virtual DefInModHier *getDefInModHier(); oaUInt4 dbuPerUUFromTech; oaDouble scaleFactor; oaBoolean update; oaDefNS defNS; oaBoolean unresolvedMasters; oaArray<oaDesign*> designs; DefInOptions *options; DefInModHier *defInModHier; DefInBlockage *defInBlockage; DefInComponent *defInComponent; DefInGroup *defInGroup; DefInNDR *defInNDR; DefInNet *defInNet; DefInPin *defInPin; DefInRegion *defInRegion; DefInRow *defInRow; DefInScanChain *defInScanChain; DefInStyle *defInStyle; DefInTrack *defInTrack; DefInVia *defInVia;friend class DefInModHier;friend class DefInBlockage;friend class DefInComponent;friend class DefInGroup;friend class DefInNDR;friend class DefInNet;friend class DefInPin;friend class DefInRegion;friend class DefInRow;friend class DefInScanChain;friend class DefInStyle;friend class DefInTrack;friend class DefInVia;};END_LEFDEF_NAMESPACE#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -