2017-04-25 14:41:48 +02:00
|
|
|
/*
|
|
|
|
|
* extflat.h --
|
|
|
|
|
*
|
|
|
|
|
* Internal definitions for the procedures to flatten hierarchical
|
|
|
|
|
* (.ext) circuit extraction files.
|
|
|
|
|
*
|
2020-05-23 23:13:14 +02:00
|
|
|
* *********************************************************************
|
|
|
|
|
* * Copyright (C) 1985, 1990 Regents of the University of California. *
|
|
|
|
|
* * Permission to use, copy, modify, and distribute this *
|
|
|
|
|
* * software and its documentation for any purpose and without *
|
|
|
|
|
* * fee is hereby granted, provided that the above copyright *
|
|
|
|
|
* * notice appear in all copies. The University of California *
|
|
|
|
|
* * makes no representations about the suitability of this *
|
|
|
|
|
* * software for any purpose. It is provided "as is" without *
|
|
|
|
|
* * express or implied warranty. Export of this software outside *
|
|
|
|
|
* * of the United States of America may require an export license. *
|
2017-04-25 14:41:48 +02:00
|
|
|
* *********************************************************************
|
|
|
|
|
*
|
|
|
|
|
* rcsid $Header: /usr/cvsroot/magic-8.0/extflat/extflat.h,v 1.2 2008/12/03 14:12:09 tim Exp $
|
|
|
|
|
*/
|
|
|
|
|
|
2024-10-16 08:38:41 +02:00
|
|
|
#ifndef _MAGIC__EXTFLAT__EXTFLAT_H
|
|
|
|
|
#define _MAGIC__EXTFLAT__EXTFLAT_H
|
2017-04-25 14:41:48 +02:00
|
|
|
|
|
|
|
|
#include "utils/magic.h"
|
|
|
|
|
|
2025-07-18 23:55:21 +02:00
|
|
|
#include "extflat/EFtypes.h" /* EFCapValue, HierName, EFPerimArea, EFNode */
|
2025-08-06 23:58:30 +02:00
|
|
|
#include "extflat/EFint.h" /* Def, HierContext, Connection, Distance, CallArg */
|
2017-04-25 14:41:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
extern float EFScale; /* Scale factor to multiply all coords by */
|
|
|
|
|
extern char *EFTech; /* Technology of extracted circuit */
|
|
|
|
|
extern char *EFStyle; /* Extraction style of extracted circuit */
|
|
|
|
|
extern char *EFSearchPath; /* Path to search for .ext files */
|
|
|
|
|
extern char *EFLibPath; /* Library search path */
|
|
|
|
|
extern char *EFVersion; /* Version of extractor we work with */
|
|
|
|
|
extern char *EFArgTech; /* Tech file given as command line argument */
|
|
|
|
|
extern bool EFCompat; /* Subtrate backwards-compatibility mode */
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Thresholds used by various extflat clients to filter out
|
|
|
|
|
* unwanted resistors and capacitors. Resistance is in milliohms,
|
|
|
|
|
* capacitance in attofarads.
|
|
|
|
|
*/
|
|
|
|
|
extern int EFResistThreshold;
|
|
|
|
|
extern EFCapValue EFCapThreshold;
|
|
|
|
|
|
|
|
|
|
/* Table of transistor types */
|
|
|
|
|
extern char *EFDevTypes[];
|
|
|
|
|
extern int EFDevNumTypes;
|
|
|
|
|
|
|
|
|
|
/* Table of Magic layers */
|
|
|
|
|
extern char *EFLayerNames[];
|
|
|
|
|
extern int EFLayerNumNames;
|
|
|
|
|
|
|
|
|
|
/* Output control flags */
|
2021-07-11 03:13:24 +02:00
|
|
|
extern int EFOutputFlags;
|
2017-04-25 14:41:48 +02:00
|
|
|
|
2022-11-20 04:02:44 +01:00
|
|
|
/* Behavior regarding disjoint node segments */
|
|
|
|
|
extern bool EFSaveLocs;
|
|
|
|
|
|
2017-04-25 14:41:48 +02:00
|
|
|
/* -------------------------- Exported procedures --------------------- */
|
|
|
|
|
|
|
|
|
|
extern char *EFArgs();
|
|
|
|
|
|
|
|
|
|
/* HierName manipulation */
|
|
|
|
|
extern HashEntry *EFHNLook();
|
|
|
|
|
extern HashEntry *EFHNConcatLook();
|
|
|
|
|
extern HierName *EFHNConcat();
|
|
|
|
|
extern HierName *EFStrToHN();
|
|
|
|
|
extern char *EFHNToStr();
|
|
|
|
|
extern int EFGetPortMax();
|
|
|
|
|
|
2022-10-10 11:50:15 +02:00
|
|
|
/* C99 compat */
|
|
|
|
|
extern void EFHNFree();
|
|
|
|
|
extern bool EFHNIsGlob();
|
|
|
|
|
extern int EFNodeResist();
|
|
|
|
|
extern void efAdjustSubCap();
|
|
|
|
|
extern int efBuildAddStr();
|
|
|
|
|
extern void efBuildAttr();
|
|
|
|
|
extern int efBuildDevice();
|
|
|
|
|
extern void efBuildDeviceParams();
|
|
|
|
|
extern void efBuildDist();
|
|
|
|
|
extern void efBuildEquiv();
|
|
|
|
|
extern void efBuildKill();
|
|
|
|
|
extern void efBuildPortNode();
|
|
|
|
|
extern void efBuildUse();
|
|
|
|
|
extern int efFlatCaps();
|
|
|
|
|
extern int efFlatDists();
|
|
|
|
|
extern int efFlatKills();
|
|
|
|
|
extern int efFlatNodes();
|
|
|
|
|
extern int efFlatNodesStdCell();
|
|
|
|
|
extern void efFreeConn();
|
|
|
|
|
extern void efFreeDevTable();
|
|
|
|
|
extern void efFreeNodeList();
|
|
|
|
|
extern void efFreeNodeTable();
|
|
|
|
|
extern void efFreeUseTable();
|
|
|
|
|
extern void efHNBuildDistKey();
|
|
|
|
|
extern int efHNLexOrder();
|
|
|
|
|
extern void efHNPrintSizes();
|
|
|
|
|
extern void efHNRecord();
|
|
|
|
|
extern int efHierSrArray();
|
|
|
|
|
extern int efHierSrUses();
|
|
|
|
|
extern int efHierVisitDevs();
|
2023-04-28 02:47:55 +02:00
|
|
|
extern EFNode *efNodeMerge();
|
2024-10-20 14:41:23 +02:00
|
|
|
extern void efReadError(const char *fmt, ...) ATTR_FORMAT_PRINTF_1;
|
2022-10-10 11:50:15 +02:00
|
|
|
extern int efReadLine();
|
|
|
|
|
extern bool efSymAdd();
|
|
|
|
|
extern bool efSymAddFile();
|
|
|
|
|
extern void efSymInit();
|
|
|
|
|
extern void EFDone();
|
|
|
|
|
extern void EFFlatBuild();
|
|
|
|
|
extern void EFFlatDone();
|
|
|
|
|
extern bool EFHNIsGND();
|
|
|
|
|
extern void EFInit();
|
|
|
|
|
extern bool EFReadFile();
|
2025-07-20 01:03:14 +02:00
|
|
|
typedef int (*cb_extflat_visitdevs_t)(Dev *dev, HierContext *hc, float scale, Transform *trans, ClientData cdata);
|
|
|
|
|
extern int EFVisitDevs(const cb_extflat_visitdevs_t devProc, ClientData cdata);
|
|
|
|
|
extern int efVisitDevs(HierContext *hc, CallArg *ca);
|
2022-10-10 11:50:15 +02:00
|
|
|
extern bool efSymLook();
|
|
|
|
|
extern int efVisitResists();
|
|
|
|
|
extern int EFVisitResists();
|
|
|
|
|
extern int EFVisitNodes();
|
|
|
|
|
extern int EFVisitCaps();
|
|
|
|
|
extern void EFGetLengthAndWidth();
|
|
|
|
|
extern void EFHNOut();
|
|
|
|
|
extern int EFHierSrDefs();
|
|
|
|
|
extern int EFVisitSubcircuits();
|
|
|
|
|
extern int EFHierVisitSubcircuits();
|
2025-07-20 13:52:23 +02:00
|
|
|
typedef int (*cb_extflat_hiervisitdevs_t)(HierContext *hc, Dev *dev, float scale, ClientData cdata);
|
|
|
|
|
extern int EFHierVisitDevs(HierContext *hc, const cb_extflat_hiervisitdevs_t devProc, ClientData cdata);
|
2022-10-10 11:50:15 +02:00
|
|
|
extern int EFHierVisitResists();
|
|
|
|
|
extern int EFHierVisitCaps();
|
|
|
|
|
extern int EFHierVisitNodes();
|
|
|
|
|
|
2024-10-16 08:38:41 +02:00
|
|
|
#endif /* _MAGIC__EXTFLAT__EXTFLAT_H */
|