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

📄 oalefoutsite.cpp

📁 openaccess读def,lef文件所用的源代码
💻 CPP
字号:
// *****************************************************************************// *****************************************************************************// LefOutSite.cpp//// This file contains the member functions for the LefOutSite class.//// *****************************************************************************// 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: mhahn $//  $Revision: 1.20 $//  $Date: 2005/01/04 03:26:27 $//  $State: Exp $// *****************************************************************************// *****************************************************************************#include "oaLefDef.h"BEGIN_LEFDEF_NAMESPACE// *****************************************************************************// LefOutSite::LefOutSite()// LefOutSite::~LefOutSite()//// This is the default constructor for the LefOutSite class// *****************************************************************************LefOutSite::LefOutSite(LefOut	&lefOutIn):   lefOut(lefOutIn){    lefOutIn.lefOutSite = this;}LefOutSite::~LefOutSite(){}// *****************************************************************************// LefOutSite::write()//// This function outputs all siteDef information for this siteDef.// *****************************************************************************voidLefOutSite::write(oaSiteDef *siteDefIn){    siteDef = siteDefIn;    oaString	siteName;    siteDef->getName(siteName);    lefOut.output("SITE %s\n", (const char*) siteName);    lefOut.incIndent();    writeClass();    if (siteDef->getType() == oacArraySiteDefType) {	writePattern();    }    writeSymmetry();    writeSize();    lefOut.decIndent();    lefOut.output("END %s\n\n", (const char*) siteName);}// *****************************************************************************// LefOutSite::writeClass()//// This function outputs the class for this siteDef.// *****************************************************************************voidLefOutSite::writeClass(){    oaString	classStr = siteDef->getSiteDefType().getName();    classStr.toUpper();    lefOut.output("CLASS %s ;\n", (const char*) classStr);}// *****************************************************************************// LefOutSite::writeSymmetry()//// This function outputs the symmetry for this siteDef// *****************************************************************************voidLefOutSite::writeSymmetry(){    oaString	symmetry;    if (siteDef->isSymmetricInX()) {	symmetry += " X";    }    if (siteDef->isSymmetricInY()) {	symmetry += " Y";    }    if (siteDef->isSymmetricInRot()) {	symmetry += " R90";    }    if (!symmetry.isEmpty()) {	lefOut.output("SYMMETRY%s ;\n", (const char*) symmetry);    }}// *****************************************************************************// LefOutSite::writeSize()//// This function outputs the size for this siteDef// *****************************************************************************voidLefOutSite::writeSize(){    lefOut.output("SIZE %.11g BY %.11g ;\n",	    lefOut.dbuToUU(oaInt4(siteDef->getWidth())),	    lefOut.dbuToUU(oaInt4(siteDef->getHeight())));}// *****************************************************************************// LefOutSite::writePattern()//// This function outputs the size for this siteDef// *****************************************************************************voidLefOutSite::writePattern(){    oaSitePattern   pattern;    ((oaArraySiteDef*) siteDef)->getSitePattern(pattern);    lefOut.output("ROWPATTERN");    for (oaUInt4 i = 0; i < pattern.getNumElements(); i++) {	oaString os;		switch (pattern[i].transform().orient()) {	    case oacR0:		os = "N";		break;	    case oacR90:		os =  "W";		break;	    case oacR180:		os = "S";		break;	    case oacR270:		os = "E";		break;	    case oacMY:		os = "FN";		break;	    case oacMYR90:		os = "FE";		break;	    case oacMX:		os = "FS";		break;	    case oacMXR90:		os = "FW";	}	lefOut.outNoIndent(" %s %s", (const char*) pattern[i].siteName(), (const char*) os);    }    lefOut.output(" ;\n");}END_LEFDEF_NAMESPACE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -