Hello
This commit is contained in:
parent
a2acfa029f
commit
f5ebb46645
|
@ -0,0 +1 @@
|
||||||
|
SUBDIRS = src
|
|
@ -0,0 +1,45 @@
|
||||||
|
dnl
|
||||||
|
/*
|
||||||
|
dnl This file is part of the Alliance CAD System
|
||||||
|
dnl Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
dnl Universite Pierre et Marie Curie
|
||||||
|
dnl
|
||||||
|
dnl Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
dnl E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
dnl
|
||||||
|
dnl This library is free software; you can redistribute it and/or modify it
|
||||||
|
dnl under the terms of the GNU Library General Public License as published
|
||||||
|
dnl by the Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
dnl your option) any later version.
|
||||||
|
dnl
|
||||||
|
dnl Alliance VLSI CAD System is distributed in the hope that it will be
|
||||||
|
dnl useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
dnl Public License for more details.
|
||||||
|
dnl
|
||||||
|
dnl You should have received a copy of the GNU General Public License along
|
||||||
|
dnl with the GNU C Library; see the file COPYING. If not, write to the Free
|
||||||
|
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
dnl
|
||||||
|
dnl Purpose : Auto stuffing Alliance
|
||||||
|
dnl Almost ten years since I wrote this stuff, I just can't
|
||||||
|
dnl believe it
|
||||||
|
dnl Date : 01/02/2002
|
||||||
|
dnl Author : Frederic Petrot <Frederic.Petrot@lip6.fr>
|
||||||
|
dnl $Id: configure.in,v 1.1 2002/03/21 12:36:13 ludo Exp $
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
AC_INIT(src/scl.h)
|
||||||
|
AM_INIT_AUTOMAKE(scl, 1.5)
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_C_CONST
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
|
AM_ALLIANCE
|
||||||
|
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
src/Makefile
|
||||||
|
])
|
|
@ -0,0 +1,12 @@
|
||||||
|
CFLAGS = @CFLAGS@ \
|
||||||
|
-DALLIANCE_TOP=\"${ALLIANCE_TOP}\"
|
||||||
|
lib_LIBRARIES = libscl.a
|
||||||
|
include_HEADERS = scl.h
|
||||||
|
libScl_a_SOURCES = \
|
||||||
|
scgmain.h schenv.c schget.h scpadd.h scpfree.c \
|
||||||
|
scg.h schadd.c schenv.h schview.c scpalloc.c scpfree.h \
|
||||||
|
scgbefig.c schadd.h scherror.c schview.h scpalloc.h scpswap.h \
|
||||||
|
scgbefig.h schalloc.c scherror.h scpbuild.c \
|
||||||
|
scglofig.c schalloc.h schfree.c scl.h scpbuild.h \
|
||||||
|
scglofig.h schdel.c schfree.h scp.h scpdel.c \
|
||||||
|
scgmain.c schdel.h schget.c scpadd.c scpdel.h
|
|
@ -0,0 +1,178 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : main.c |
|
||||||
|
| |
|
||||||
|
| Date : 08.02.95 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "abl.h"
|
||||||
|
# include "bdd.h"
|
||||||
|
# include "abe.h"
|
||||||
|
# include "abv.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Usage |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void SchUsage()
|
||||||
|
{
|
||||||
|
fprintf( stderr, "\t\tschtest [Options] Input_name [Output_name]\n\n" );
|
||||||
|
fprintf( stdout, "\t\tOptions : -V Sets Verbose mode on\n" );
|
||||||
|
fprintf( stdout, "\t\t -B Behavioral mode on\n" );
|
||||||
|
fprintf( stdout, "\t\t -v Vectorized mode on\n" );
|
||||||
|
fprintf( stdout, "\t\t -P to place and route\n" );
|
||||||
|
fprintf( stdout, "\n" );
|
||||||
|
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int main( argc, argv )
|
||||||
|
|
||||||
|
int argc;
|
||||||
|
char *argv[];
|
||||||
|
{
|
||||||
|
schfig_list *SchFigure;
|
||||||
|
befig_list *BeFigure;
|
||||||
|
lofig_list *LoFigure;
|
||||||
|
char *InputFileName;
|
||||||
|
int Number;
|
||||||
|
int Index;
|
||||||
|
char Option;
|
||||||
|
|
||||||
|
int FlagVerbose = 0;
|
||||||
|
int FlagVector = 0;
|
||||||
|
int FlagBeh = 0;
|
||||||
|
int FlagPlace = 0;
|
||||||
|
|
||||||
|
mbkenv();
|
||||||
|
autenv();
|
||||||
|
schenv();
|
||||||
|
|
||||||
|
InputFileName = (char *)0;
|
||||||
|
|
||||||
|
if ( argc < 2 ) SchUsage();
|
||||||
|
|
||||||
|
InputFileName = (char *)0;
|
||||||
|
|
||||||
|
for ( Number = 1; Number < argc; Number++ )
|
||||||
|
{
|
||||||
|
if ( argv[ Number ][ 0 ] == '-' )
|
||||||
|
{
|
||||||
|
for ( Index = 1; argv[ Number ][ Index ] != '\0'; Index++ )
|
||||||
|
{
|
||||||
|
Option = argv[ Number ][ Index ];
|
||||||
|
|
||||||
|
switch ( Option )
|
||||||
|
{
|
||||||
|
case 'V' : FlagVerbose = 1;
|
||||||
|
break;
|
||||||
|
case 'v' : FlagVector = 1;
|
||||||
|
break;
|
||||||
|
case 'P' : FlagPlace = 1;
|
||||||
|
break;
|
||||||
|
case 'B' : FlagBeh = 1;
|
||||||
|
break;
|
||||||
|
default : SchUsage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if ( InputFileName == (char *)0 ) InputFileName = argv[ Number ];
|
||||||
|
else
|
||||||
|
SchUsage();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( InputFileName == (char *)0 ) SchUsage();
|
||||||
|
|
||||||
|
if ( FlagBeh )
|
||||||
|
{
|
||||||
|
BeFigure = vhdlloadbefig( (befig_list *)0, InputFileName, 3 );
|
||||||
|
SchFigure = befig2schfig( BeFigure );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LoFigure = getlofig( InputFileName, 'A' );
|
||||||
|
SchFigure = lofig2schfig( LoFigure, FlagVector );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( FlagPlace )
|
||||||
|
{
|
||||||
|
placerouteschfig( SchFigure );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( FlagVerbose )
|
||||||
|
{
|
||||||
|
viewschfig( SchFigure );
|
||||||
|
}
|
||||||
|
|
||||||
|
delschfig( SchFigure->NAME );
|
||||||
|
|
||||||
|
return( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scg.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCG_H
|
||||||
|
# define SCG_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schfig_list *getschfig_from_cnsfig();
|
||||||
|
extern schfig_list *getschfig_from_lofig();
|
||||||
|
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,417 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scgbefig.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "abl.h"
|
||||||
|
# include "bdd.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "abe.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
|
||||||
|
# include "scgbefig.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static authtable *ScgHashNameNet = (authtable *)0;
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void scg_connect_schcon( SchCon, NetName )
|
||||||
|
|
||||||
|
schcon_list *SchCon;
|
||||||
|
char *NetName;
|
||||||
|
{
|
||||||
|
schnet_list *SchNet;
|
||||||
|
authelem *Element;
|
||||||
|
|
||||||
|
Element = searchauthelem( ScgHashNameNet, NetName );
|
||||||
|
|
||||||
|
if ( Element != (authelem *)0 )
|
||||||
|
{
|
||||||
|
SchNet = (schnet_list *)Element->VALUE;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Get Sch Figure From Befig |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schfig_list *befig2schfig( BeFigure )
|
||||||
|
|
||||||
|
befig_list *BeFigure;
|
||||||
|
{
|
||||||
|
schfig_list *SchFigure;
|
||||||
|
schcon_list *SchCon;
|
||||||
|
schbox_list *SchBox;
|
||||||
|
schnet_list *SchNet;
|
||||||
|
chain_list *ScanChain;
|
||||||
|
chain_list *Support;
|
||||||
|
biabl_list *ScanBiAbl;
|
||||||
|
bepor_list *ScanPort;
|
||||||
|
beaux_list *ScanAux;
|
||||||
|
bebus_list *ScanBus;
|
||||||
|
bebux_list *ScanBux;
|
||||||
|
bereg_list *ScanReg;
|
||||||
|
beout_list *ScanOut;
|
||||||
|
char *Value;
|
||||||
|
unsigned char SchDir;
|
||||||
|
char Buffer[ 512 ];
|
||||||
|
|
||||||
|
ScgHashNameNet = createauthtable( 100 );
|
||||||
|
|
||||||
|
SchFigure = addschfig( BeFigure->NAME );
|
||||||
|
SchFigure->SOURCE = (void *)BeFigure;
|
||||||
|
SchFigure->SOURCE_TYPE = SCH_SOURCE_BEFIG;
|
||||||
|
|
||||||
|
/*
|
||||||
|
** First create all figure connectors and nets
|
||||||
|
*/
|
||||||
|
for ( ScanPort = BeFigure->BEPOR;
|
||||||
|
ScanPort != (bepor_list *)0;
|
||||||
|
ScanPort = ScanPort->NEXT )
|
||||||
|
{
|
||||||
|
if ( ScanPort->DIRECTION == IN ) SchDir = SCH_CON_IN;
|
||||||
|
else SchDir = SCH_CON_OUT;
|
||||||
|
|
||||||
|
SchCon = addschfigcon( SchFigure, ScanPort->NAME, SchDir );
|
||||||
|
|
||||||
|
SchCon->SOURCE = (void *)ScanPort;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_BEPOR;
|
||||||
|
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
SchNet->SOURCE = (void *)ScanPort;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_BEPOR;
|
||||||
|
|
||||||
|
SchCon->NET = SchNet;
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
|
||||||
|
addauthelem( ScgHashNameNet, ScanPort->NAME, (long)SchNet );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanAux = BeFigure->BEAUX;
|
||||||
|
ScanAux != (beaux_list *)0;
|
||||||
|
ScanAux = ScanAux->NEXT )
|
||||||
|
{
|
||||||
|
if ( ! searchauthelem( ScgHashNameNet, ScanAux->NAME ) )
|
||||||
|
{
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
SchNet->SOURCE = (void *)ScanAux;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_BEAUX;
|
||||||
|
|
||||||
|
addauthelem( ScgHashNameNet, ScanAux->NAME, (long)SchNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanReg = BeFigure->BEREG;
|
||||||
|
ScanReg != (bereg_list *)0;
|
||||||
|
ScanReg = ScanReg->NEXT )
|
||||||
|
{
|
||||||
|
if ( ! searchauthelem( ScgHashNameNet, ScanReg->NAME ) )
|
||||||
|
{
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
SchNet->SOURCE = (void *)ScanReg;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_BEREG;
|
||||||
|
|
||||||
|
addauthelem( ScgHashNameNet, ScanReg->NAME, (long)SchNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanBux = BeFigure->BEBUX;
|
||||||
|
ScanBux != (bebux_list *)0;
|
||||||
|
ScanBux = ScanBux->NEXT )
|
||||||
|
{
|
||||||
|
if ( ! searchauthelem( ScgHashNameNet, ScanBux->NAME ) )
|
||||||
|
{
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
SchNet->SOURCE = (void *)ScanBux;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_BEBUX;
|
||||||
|
|
||||||
|
addauthelem( ScgHashNameNet, ScanBux->NAME, (long)SchNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanBus = BeFigure->BEBUS;
|
||||||
|
ScanBus != (bebus_list *)0;
|
||||||
|
ScanBus = ScanBus->NEXT )
|
||||||
|
{
|
||||||
|
if ( ! searchauthelem( ScgHashNameNet, ScanBus->NAME ) )
|
||||||
|
{
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
SchNet->SOURCE = (void *)ScanBus;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_BEBUS;
|
||||||
|
|
||||||
|
addauthelem( ScgHashNameNet, ScanBus->NAME, (long)SchNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanOut = BeFigure->BEOUT;
|
||||||
|
ScanOut != (beout_list *)0;
|
||||||
|
ScanOut = ScanOut->NEXT )
|
||||||
|
{
|
||||||
|
if ( ! searchauthelem( ScgHashNameNet, ScanOut->NAME ) )
|
||||||
|
{
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
SchNet->SOURCE = (void *)ScanOut;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_BEOUT;
|
||||||
|
|
||||||
|
addauthelem( ScgHashNameNet, ScanOut->NAME, (long)SchNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Now create all boxes for aux, bux, reg etc ..
|
||||||
|
*/
|
||||||
|
for ( ScanAux = BeFigure->BEAUX;
|
||||||
|
ScanAux != (beaux_list *)0;
|
||||||
|
ScanAux = ScanAux->NEXT )
|
||||||
|
{
|
||||||
|
sprintf( Buffer, "beaux_%s", ScanAux->NAME );
|
||||||
|
SchBox = addschbox( SchFigure, Buffer );
|
||||||
|
SchBox->SOURCE = (void *)ScanAux;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_BEAUX;
|
||||||
|
|
||||||
|
Support = getablexprsupport( ScanAux->ABL, ABL_SUPPORT_CHAIN );
|
||||||
|
|
||||||
|
for ( ScanChain = Support;
|
||||||
|
ScanChain != (chain_list *)0;
|
||||||
|
ScanChain = ScanChain->NEXT )
|
||||||
|
{
|
||||||
|
Value = (char *)ScanChain->DATA;
|
||||||
|
|
||||||
|
if ( ( Value[ 0 ] == '\'' ) ||
|
||||||
|
( Value[ 0 ] == '"' ) ) continue;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, Value, SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)ScanAux;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_BEAUX;
|
||||||
|
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
freechain( Support );
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, ScanAux->NAME, SCH_CON_OUT );
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanBus = BeFigure->BEBUS;
|
||||||
|
ScanBus != (bebus_list *)0;
|
||||||
|
ScanBus = ScanBus->NEXT )
|
||||||
|
{
|
||||||
|
sprintf( Buffer, "bebus_%s", ScanBus->NAME );
|
||||||
|
SchBox = addschbox( SchFigure, Buffer );
|
||||||
|
SchBox->SOURCE = (void *)ScanBus;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_BEBUS;
|
||||||
|
|
||||||
|
Support = (chain_list *)0;
|
||||||
|
|
||||||
|
for ( ScanBiAbl = ScanBus->BIABL;
|
||||||
|
ScanBiAbl != (biabl_list *)0;
|
||||||
|
ScanBiAbl = ScanBiAbl->NEXT )
|
||||||
|
{
|
||||||
|
Support = unionablexprsupport( Support, ScanBiAbl->CNDABL, ABL_SUPPORT_CHAIN );
|
||||||
|
Support = unionablexprsupport( Support, ScanBiAbl->VALABL, ABL_SUPPORT_CHAIN );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanChain = Support;
|
||||||
|
ScanChain != (chain_list *)0;
|
||||||
|
ScanChain = ScanChain->NEXT )
|
||||||
|
{
|
||||||
|
Value = (char *)ScanChain->DATA;
|
||||||
|
|
||||||
|
if ( ( Value[ 0 ] == '\'' ) ||
|
||||||
|
( Value[ 0 ] == '"' ) ) continue;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, Value, SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)ScanBus;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_BEBUS;
|
||||||
|
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
freechain( Support );
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, ScanBus->NAME, SCH_CON_OUT );
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanBux = BeFigure->BEBUX;
|
||||||
|
ScanBux != (bebux_list *)0;
|
||||||
|
ScanBux = ScanBux->NEXT )
|
||||||
|
{
|
||||||
|
sprintf( Buffer, "bebux_%s", ScanBux->NAME );
|
||||||
|
SchBox = addschbox( SchFigure, Buffer );
|
||||||
|
SchBox->SOURCE = (void *)ScanBux;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_BEBUX;
|
||||||
|
|
||||||
|
Support = (chain_list *)0;
|
||||||
|
|
||||||
|
for ( ScanBiAbl = ScanBux->BIABL;
|
||||||
|
ScanBiAbl != (biabl_list *)0;
|
||||||
|
ScanBiAbl = ScanBiAbl->NEXT )
|
||||||
|
{
|
||||||
|
Support = unionablexprsupport( Support, ScanBiAbl->CNDABL, ABL_SUPPORT_CHAIN );
|
||||||
|
Support = unionablexprsupport( Support, ScanBiAbl->VALABL, ABL_SUPPORT_CHAIN );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanChain = Support;
|
||||||
|
ScanChain != (chain_list *)0;
|
||||||
|
ScanChain = ScanChain->NEXT )
|
||||||
|
{
|
||||||
|
Value = (char *)ScanChain->DATA;
|
||||||
|
|
||||||
|
if ( ( Value[ 0 ] == '\'' ) ||
|
||||||
|
( Value[ 0 ] == '"' ) ) continue;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, Value, SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)ScanBux;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_BEBUX;
|
||||||
|
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
freechain( Support );
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, ScanBux->NAME, SCH_CON_OUT );
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanReg = BeFigure->BEREG;
|
||||||
|
ScanReg != (bereg_list *)0;
|
||||||
|
ScanReg = ScanReg->NEXT )
|
||||||
|
{
|
||||||
|
sprintf( Buffer, "bereg_%s", ScanReg->NAME );
|
||||||
|
SchBox = addschbox( SchFigure, Buffer );
|
||||||
|
SchBox->SOURCE = (void *)ScanReg;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_BEREG;
|
||||||
|
|
||||||
|
Support = (chain_list *)0;
|
||||||
|
|
||||||
|
for ( ScanBiAbl = ScanReg->BIABL;
|
||||||
|
ScanBiAbl != (biabl_list *)0;
|
||||||
|
ScanBiAbl = ScanBiAbl->NEXT )
|
||||||
|
{
|
||||||
|
Support = unionablexprsupport( Support, ScanBiAbl->CNDABL, ABL_SUPPORT_CHAIN );
|
||||||
|
Support = unionablexprsupport( Support, ScanBiAbl->VALABL, ABL_SUPPORT_CHAIN );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanChain = Support;
|
||||||
|
ScanChain != (chain_list *)0;
|
||||||
|
ScanChain = ScanChain->NEXT )
|
||||||
|
{
|
||||||
|
Value = (char *)ScanChain->DATA;
|
||||||
|
|
||||||
|
if ( ( Value[ 0 ] == '\'' ) ||
|
||||||
|
( Value[ 0 ] == '"' ) ) continue;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, Value, SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)ScanReg;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_BEREG;
|
||||||
|
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
freechain( Support );
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, ScanReg->NAME, SCH_CON_OUT );
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( ScanOut = BeFigure->BEOUT;
|
||||||
|
ScanOut != (beout_list *)0;
|
||||||
|
ScanOut = ScanOut->NEXT )
|
||||||
|
{
|
||||||
|
sprintf( Buffer, "beout_%s", ScanOut->NAME );
|
||||||
|
SchBox = addschbox( SchFigure, Buffer );
|
||||||
|
SchBox->SOURCE = (void *)ScanOut;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_BEOUT;
|
||||||
|
|
||||||
|
Support = getablexprsupport( ScanOut->ABL, ABL_SUPPORT_CHAIN );
|
||||||
|
|
||||||
|
for ( ScanChain = Support;
|
||||||
|
ScanChain != (chain_list *)0;
|
||||||
|
ScanChain = ScanChain->NEXT )
|
||||||
|
{
|
||||||
|
Value = (char *)ScanChain->DATA;
|
||||||
|
|
||||||
|
if ( ( Value[ 0 ] == '\'' ) ||
|
||||||
|
( Value[ 0 ] == '"' ) ) continue;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, Value, SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)ScanOut;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_BEOUT;
|
||||||
|
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, ScanOut->NAME, SCH_CON_OUT );
|
||||||
|
scg_connect_schcon( SchCon, SchCon->NAME );
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyauthtable( ScgHashNameNet );
|
||||||
|
|
||||||
|
return( SchFigure );
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scglofig.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCG_LOFIG_H
|
||||||
|
# define SCG_LOFIG_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schfig_list *getschfig_from_lofig();
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,266 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scglofig.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "scglofig.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Get Sch Figure From Lo fig |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
schfig_list *lofig2schfig( LoFigure, Vectorized )
|
||||||
|
|
||||||
|
lofig_list *LoFigure;
|
||||||
|
int Vectorized;
|
||||||
|
{
|
||||||
|
locon_list *LoCon;
|
||||||
|
loins_list *LoIns;
|
||||||
|
losig_list *LoSig;
|
||||||
|
lotrs_list *LoTrs;
|
||||||
|
schcon_list *SchCon;
|
||||||
|
schbox_list *SchBox;
|
||||||
|
schnet_list *SchNet;
|
||||||
|
schfig_list *SchFigure;
|
||||||
|
ptype_list *PType;
|
||||||
|
|
||||||
|
SchFigure = addschfig( LoFigure->NAME );
|
||||||
|
|
||||||
|
SchFigure->SOURCE = (void *)LoFigure;
|
||||||
|
SchFigure->SOURCE_TYPE = SCH_SOURCE_LOFIG;
|
||||||
|
|
||||||
|
for ( LoSig = LoFigure->LOSIG;
|
||||||
|
LoSig != (losig_list *)0;
|
||||||
|
LoSig = LoSig->NEXT )
|
||||||
|
{
|
||||||
|
SchNet = addschnet( SchFigure );
|
||||||
|
|
||||||
|
SchNet->SOURCE = (void *)LoSig;
|
||||||
|
SchNet->SOURCE_TYPE = SCH_SOURCE_LOSIG ;
|
||||||
|
|
||||||
|
LoSig->USER = addptype( LoSig->USER, SCH_NET_TYPE, SchNet );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( LoCon = LoFigure->LOCON;
|
||||||
|
LoCon != (locon_list *)0;
|
||||||
|
LoCon = LoCon->NEXT )
|
||||||
|
{
|
||||||
|
if ( ( ! ( ( isvdd( LoCon->NAME ) ) ||
|
||||||
|
( isvss( LoCon->NAME ) ) ) ) ||
|
||||||
|
( LoFigure->LOTRS != (lotrs_list *)0 ) )
|
||||||
|
{
|
||||||
|
if ( ( LoCon->DIRECTION == IN ) ||
|
||||||
|
( LoCon->DIRECTION == INOUT ) ||
|
||||||
|
( LoCon->DIRECTION == UNKNOWN ) ||
|
||||||
|
( LoFigure->LOTRS != (lotrs_list *)0 ) )
|
||||||
|
{
|
||||||
|
SchCon = addschfigcon( SchFigure, LoCon->NAME, SCH_CON_IN );
|
||||||
|
|
||||||
|
SchCon->SOURCE = (void *)LoCon;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOCON;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ( LoCon->DIRECTION != IN ) ||
|
||||||
|
( LoFigure->LOTRS != (lotrs_list *)0 ) )
|
||||||
|
{
|
||||||
|
SchCon = addschfigcon( SchFigure, LoCon->NAME, SCH_CON_OUT );
|
||||||
|
|
||||||
|
SchCon->SOURCE = (void *)LoCon;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOCON;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( LoIns = LoFigure->LOINS;
|
||||||
|
LoIns != (loins_list *)0;
|
||||||
|
LoIns = LoIns->NEXT )
|
||||||
|
{
|
||||||
|
SchBox = addschbox( SchFigure, LoIns->INSNAME );
|
||||||
|
SchBox->SOURCE = (void *)LoIns;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_LOINS;
|
||||||
|
|
||||||
|
for ( LoCon = LoIns->LOCON;
|
||||||
|
LoCon != (locon_list *)0;
|
||||||
|
LoCon = LoCon->NEXT )
|
||||||
|
{
|
||||||
|
if ( ! ( ( isvdd( LoCon->NAME ) ) ||
|
||||||
|
( isvss( LoCon->NAME ) ) ) )
|
||||||
|
{
|
||||||
|
if ( ( LoCon->DIRECTION == IN ) ||
|
||||||
|
( LoCon->DIRECTION == INOUT ) ||
|
||||||
|
( LoCon->DIRECTION == UNKNOWN ) )
|
||||||
|
{
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, LoCon->NAME, SCH_CON_IN );
|
||||||
|
|
||||||
|
SchCon->SOURCE = (void *)LoCon;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOCON;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( LoCon->DIRECTION != IN )
|
||||||
|
{
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, LoCon->NAME, SCH_CON_OUT );
|
||||||
|
|
||||||
|
SchCon->SOURCE = (void *)LoCon;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOCON;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( LoTrs = LoFigure->LOTRS;
|
||||||
|
LoTrs != (lotrs_list *)0;
|
||||||
|
LoTrs = LoTrs->NEXT )
|
||||||
|
{
|
||||||
|
if ( LoTrs->TRNAME != (char *)0 )
|
||||||
|
{
|
||||||
|
SchBox = addschbox( SchFigure, LoTrs->TRNAME );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SchBox = addschbox( SchFigure, ( LoTrs->TYPE == TRANSN ) ? "ntrans" : "ptrans " );
|
||||||
|
}
|
||||||
|
|
||||||
|
SchBox->SOURCE = (void *)LoTrs;
|
||||||
|
SchBox->SOURCE_TYPE = SCH_SOURCE_LOTRS;
|
||||||
|
/*
|
||||||
|
** Transitor Source
|
||||||
|
*/
|
||||||
|
LoCon = LoTrs->SOURCE;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, "s", SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)LoTrs;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOTRS;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
/*
|
||||||
|
** Transitor Drain
|
||||||
|
*/
|
||||||
|
LoCon = LoTrs->DRAIN;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, "d", SCH_CON_IN );
|
||||||
|
SchCon->SOURCE = (void *)LoTrs;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOTRS;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
/*
|
||||||
|
** Transitor Grid
|
||||||
|
*/
|
||||||
|
LoCon = LoTrs->GRID;
|
||||||
|
|
||||||
|
SchCon = addschboxcon( SchFigure, SchBox, "g", SCH_CON_OUT );
|
||||||
|
SchCon->SOURCE = (void *)LoTrs;
|
||||||
|
SchCon->SOURCE_TYPE = SCH_SOURCE_LOTRS;
|
||||||
|
|
||||||
|
LoSig = LoCon->SIG;
|
||||||
|
PType = getptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
SchNet = (schnet_list *)PType->DATA;
|
||||||
|
|
||||||
|
addschnetcon( SchNet, SchCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
for ( LoSig = LoFigure->LOSIG;
|
||||||
|
LoSig != (losig_list *)0;
|
||||||
|
LoSig = LoSig->NEXT )
|
||||||
|
{
|
||||||
|
LoSig->USER = delptype( LoSig->USER, SCH_NET_TYPE );
|
||||||
|
}
|
||||||
|
|
||||||
|
return( SchFigure );
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scglofig.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCG_LOFIG_H
|
||||||
|
# define SCG_LOFIG_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schfig_list *getschfig_from_lofig();
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,77 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scgn.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "scg.h"
|
||||||
|
# include "scgmain.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schfig_list *getschfig( FileName )
|
||||||
|
|
||||||
|
char *FileName;
|
||||||
|
{
|
||||||
|
return ( getschfig_from_lofig( FileName ) );
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scg |
|
||||||
|
| |
|
||||||
|
| File : scgmain.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCG_MAIN_H
|
||||||
|
# define SCG_MAIN_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,275 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schadd.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "schadd.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schnet_list *addschnetcon( Net, Con)
|
||||||
|
|
||||||
|
schnet_list *Net;
|
||||||
|
schcon_list *Con;
|
||||||
|
|
||||||
|
{
|
||||||
|
Con->NET = Net;
|
||||||
|
Net->CON_NET = addchain( Net->CON_NET, (void *)Con );
|
||||||
|
|
||||||
|
if ( IsSchConExternal( Con ) )
|
||||||
|
{
|
||||||
|
if ( IsSchConIn( Con ) ) Net->NUMBER_IN++;
|
||||||
|
else Net->NUMBER_OUT++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( IsSchConIn( Con ) ) Net->NUMBER_OUT++;
|
||||||
|
else Net->NUMBER_IN++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ( Net );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Figure |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schfig_list *addschfig( Name )
|
||||||
|
|
||||||
|
char *Name;
|
||||||
|
|
||||||
|
{
|
||||||
|
schfig_list *Figure;
|
||||||
|
|
||||||
|
Figure = allocschfig();
|
||||||
|
|
||||||
|
Figure->NAME = namealloc( Name );
|
||||||
|
|
||||||
|
Figure->NEXT = HEAD_SCHFIG;
|
||||||
|
HEAD_SCHFIG = Figure;
|
||||||
|
|
||||||
|
return( Figure );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Box |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schbox_list *addschbox( Figure, Name )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
char *Name;
|
||||||
|
{
|
||||||
|
schbox_list *Box;
|
||||||
|
|
||||||
|
Box = allocschbox();
|
||||||
|
|
||||||
|
Box->NAME = namealloc( Name );
|
||||||
|
|
||||||
|
Box->NEXT = Figure->BOX;
|
||||||
|
Figure->BOX = Box;
|
||||||
|
|
||||||
|
return( Box );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Box Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schcon_list *addschboxcon( Figure, Box, Name, Type )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
schbox_list *Box;
|
||||||
|
char *Name;
|
||||||
|
unsigned char Type;
|
||||||
|
{
|
||||||
|
schcon_list *Connector;
|
||||||
|
|
||||||
|
Connector = allocschcon();
|
||||||
|
|
||||||
|
Connector->NAME = namealloc( Name );
|
||||||
|
|
||||||
|
if ( Type == SCH_CON_IN )
|
||||||
|
{
|
||||||
|
Connector->NEXT = Box->CON_IN;
|
||||||
|
Box->CON_IN = Connector;
|
||||||
|
|
||||||
|
Box->NUMBER_IN++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Connector->NEXT = Box->CON_OUT;
|
||||||
|
Box->CON_OUT = Connector;
|
||||||
|
|
||||||
|
Box->NUMBER_OUT++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( Type == SCH_CON_IN ) SetSchConIn( Connector );
|
||||||
|
else SetSchConOut( Connector );
|
||||||
|
|
||||||
|
SetSchConInternal( Connector );
|
||||||
|
|
||||||
|
Connector->ROOT_TYPE = SCH_ROOT_CON_BOX;
|
||||||
|
Connector->ROOT = (void *)Box;
|
||||||
|
|
||||||
|
return( Connector );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Figure Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schcon_list *addschfigcon( Figure, Name, Type )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
char *Name;
|
||||||
|
unsigned char Type;
|
||||||
|
{
|
||||||
|
schcon_list *Connector;
|
||||||
|
|
||||||
|
Connector = allocschcon();
|
||||||
|
|
||||||
|
Connector->NAME = namealloc( Name );
|
||||||
|
|
||||||
|
if ( Type == SCH_CON_IN )
|
||||||
|
{
|
||||||
|
Connector->NEXT = Figure->CON_IN;
|
||||||
|
Figure->CON_IN = Connector;
|
||||||
|
|
||||||
|
Figure->NUMBER_IN++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Connector->NEXT = Figure->CON_OUT;
|
||||||
|
Figure->CON_OUT = Connector;
|
||||||
|
|
||||||
|
Figure->NUMBER_OUT++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( Type == SCH_CON_IN ) SetSchConIn( Connector );
|
||||||
|
else SetSchConOut( Connector );
|
||||||
|
|
||||||
|
SetSchConExternal( Connector );
|
||||||
|
|
||||||
|
Connector->ROOT_TYPE = SCH_ROOT_CON_FIG;
|
||||||
|
Connector->ROOT = (void *)Figure;
|
||||||
|
|
||||||
|
return( Connector );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Net |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schnet_list *addschnet( Figure )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
{
|
||||||
|
schnet_list *Net;
|
||||||
|
|
||||||
|
Net = allocschnet();
|
||||||
|
|
||||||
|
Net->NEXT = Figure->NET;
|
||||||
|
Figure->NET = Net;
|
||||||
|
|
||||||
|
return( Net );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Wire |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schwir_list *addschwir( Figure, Net )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
schnet_list *Net;
|
||||||
|
{
|
||||||
|
schwir_list *Wire;
|
||||||
|
|
||||||
|
Wire = allocschwir();
|
||||||
|
|
||||||
|
Wire->NEXT = Net->WIRE;
|
||||||
|
Net->WIRE = Wire;
|
||||||
|
|
||||||
|
return( Wire );
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schadd.h |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_ADD_H
|
||||||
|
# define SCH_ADD_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,136 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schalloc.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include "schalloc.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schfig_list *HEAD_SCHFIG = (schfig_list *)0;
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Alloc Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Alloc Figure |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schfig_list *allocschfig()
|
||||||
|
{
|
||||||
|
return( (schfig_list *)(autallocblock( sizeof( schfig_list ) ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Alloc Box |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schbox_list *allocschbox()
|
||||||
|
{
|
||||||
|
return( (schbox_list *)(autallocheap( sizeof( schbox_list ) ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Alloc Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schcon_list *allocschcon()
|
||||||
|
{
|
||||||
|
return( (schcon_list *)(autallocheap( sizeof( schcon_list ) ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Alloc Net |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schnet_list *allocschnet()
|
||||||
|
{
|
||||||
|
return( (schnet_list *)(autallocheap( sizeof( schnet_list ) ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Alloc Wire |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
schwir_list *allocschwir()
|
||||||
|
{
|
||||||
|
return( (schwir_list *)(autallocheap( sizeof( schwir_list ) ) ) );
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schalloc.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.01.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_ALLOC_H
|
||||||
|
# define SCH_ALLOC_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,222 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schdel.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "schdel.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Del Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Del Connector List |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void loc_delschcon( HeadCon )
|
||||||
|
|
||||||
|
schcon_list *HeadCon;
|
||||||
|
{
|
||||||
|
schcon_list *ScanCon;
|
||||||
|
schcon_list *DelCon;
|
||||||
|
|
||||||
|
ScanCon = HeadCon;
|
||||||
|
|
||||||
|
while ( ScanCon != (schcon_list *)0 )
|
||||||
|
{
|
||||||
|
DelCon = ScanCon;
|
||||||
|
ScanCon = ScanCon->NEXT;
|
||||||
|
|
||||||
|
freeschcon( DelCon );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Del Wire List |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void loc_delschwir( HeadWire )
|
||||||
|
|
||||||
|
schwir_list *HeadWire;
|
||||||
|
{
|
||||||
|
schwir_list *ScanWire;
|
||||||
|
schwir_list *DelWire;
|
||||||
|
|
||||||
|
ScanWire = HeadWire;
|
||||||
|
|
||||||
|
while ( ScanWire != (schwir_list *)0 )
|
||||||
|
{
|
||||||
|
DelWire = ScanWire;
|
||||||
|
ScanWire = ScanWire->NEXT;
|
||||||
|
|
||||||
|
freeschwir( DelWire );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Del Net List |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void loc_delschnet( HeadNet )
|
||||||
|
|
||||||
|
schnet_list *HeadNet;
|
||||||
|
{
|
||||||
|
schnet_list *ScanNet;
|
||||||
|
schnet_list *DelNet;
|
||||||
|
|
||||||
|
ScanNet = HeadNet;
|
||||||
|
|
||||||
|
while ( ScanNet != (schnet_list *)0 )
|
||||||
|
{
|
||||||
|
DelNet = ScanNet;
|
||||||
|
ScanNet = ScanNet->NEXT;
|
||||||
|
|
||||||
|
loc_delschwir( DelNet->WIRE );
|
||||||
|
|
||||||
|
if ( DelNet->CON_NET != (chain_list *)0 )
|
||||||
|
{
|
||||||
|
freechain( DelNet->CON_NET );
|
||||||
|
}
|
||||||
|
|
||||||
|
freeschnet( DelNet );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Del Box List |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void loc_delschbox( HeadBox )
|
||||||
|
|
||||||
|
schbox_list *HeadBox;
|
||||||
|
{
|
||||||
|
schbox_list *ScanBox;
|
||||||
|
schbox_list *DelBox;
|
||||||
|
|
||||||
|
ScanBox = HeadBox;
|
||||||
|
|
||||||
|
while ( ScanBox != (schbox_list *)0 )
|
||||||
|
{
|
||||||
|
DelBox = ScanBox;
|
||||||
|
ScanBox = ScanBox->NEXT;
|
||||||
|
|
||||||
|
loc_delschcon( DelBox->CON_IN );
|
||||||
|
loc_delschcon( DelBox->CON_OUT );
|
||||||
|
|
||||||
|
freeschbox( DelBox );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Del Figure |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int delschfig( Name )
|
||||||
|
|
||||||
|
char *Name;
|
||||||
|
{
|
||||||
|
schfig_list *Figure;
|
||||||
|
schfig_list **Previous;
|
||||||
|
|
||||||
|
Name = namealloc( Name );
|
||||||
|
Previous = &HEAD_SCHFIG;
|
||||||
|
|
||||||
|
for ( Figure = HEAD_SCHFIG;
|
||||||
|
Figure != (schfig_list *)0;
|
||||||
|
Figure = Figure->NEXT )
|
||||||
|
{
|
||||||
|
if ( Figure->NAME == Name ) break;
|
||||||
|
|
||||||
|
Previous = &Figure->NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( Figure == (schfig_list *)0 ) return( 0 );
|
||||||
|
|
||||||
|
*Previous = Figure->NEXT;
|
||||||
|
|
||||||
|
loc_delschcon( Figure->CON_IN );
|
||||||
|
loc_delschcon( Figure->CON_OUT );
|
||||||
|
|
||||||
|
loc_delschnet( Figure->CON_OUT );
|
||||||
|
loc_delschbox( Figure->CON_OUT );
|
||||||
|
|
||||||
|
freeschfig( Figure );
|
||||||
|
|
||||||
|
return( 1 );
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schdel.h |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_DEL_H
|
||||||
|
# define SCH_DEL_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,95 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schenv.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.07.96 |
|
||||||
|
| |
|
||||||
|
| Author : Jacomme Ludovic |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <unistd.h>
|
||||||
|
# include "schenv.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
char *SCH_IN;
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| schenv |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void schenv()
|
||||||
|
{
|
||||||
|
SCH_IN = namealloc( mbkgetenv( "SCH_IN") );
|
||||||
|
|
||||||
|
if ( SCH_IN == (char *)0 )
|
||||||
|
{
|
||||||
|
SCH_IN = namealloc( IN_LO );
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
#ifndef __P
|
||||||
|
# if defined(__STDC__) || defined(__GNUC__)
|
||||||
|
# define __P(x) x
|
||||||
|
# else
|
||||||
|
# define __P(x) ()
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schenv.h |
|
||||||
|
| |
|
||||||
|
| Date : 04.07.96 |
|
||||||
|
| |
|
||||||
|
| Author : Jacomme Ludovic |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_ENV_H
|
||||||
|
# define SCH_ENV_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : Sch Errors |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void sch_error( Error, Text, File, Line )
|
||||||
|
|
||||||
|
char Error;
|
||||||
|
char *Text;
|
||||||
|
char *File;
|
||||||
|
long Line;
|
||||||
|
{
|
||||||
|
char *Name;
|
||||||
|
|
||||||
|
Name = mbkstrdup( File );
|
||||||
|
Name[ strlen( File ) - 1 ] = '\0';
|
||||||
|
|
||||||
|
fprintf( stderr, "%s%ld ", Name, Line );
|
||||||
|
|
||||||
|
switch( Error )
|
||||||
|
{
|
||||||
|
default :
|
||||||
|
|
||||||
|
fprintf( stderr, "unknown internal error %d !\n", Error );
|
||||||
|
}
|
||||||
|
|
||||||
|
autexit( 1 );
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : Sch Errors |
|
||||||
|
| |
|
||||||
|
| Date : 28.01.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_ERROR_H
|
||||||
|
# define SCH_ERROR_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCH_EXPR_NULL_ERROR 0
|
||||||
|
# define SCH_UNKNOWN_ATOM_ERROR 1
|
||||||
|
# define SCH_OPERATOR_ERROR 2
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macros |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define scherror( E, V ) (sch_error( (E), (V), __FILE__, __LINE__ ))
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void sch_error();
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,141 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schfree.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.01.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include "schfree.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Free Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Free Figure |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freeschfig( Figure )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
{
|
||||||
|
autfreeblock( (char *)Figure );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Free Box |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freeschbox( Box )
|
||||||
|
|
||||||
|
schbox_list *Box;
|
||||||
|
{
|
||||||
|
autfreeheap( (char *)Box, sizeof( schbox_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Free Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freeschcon( Connector )
|
||||||
|
|
||||||
|
schcon_list *Connector;
|
||||||
|
{
|
||||||
|
autfreeheap( (char *)Connector, sizeof( schcon_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Free Net |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freeschnet( Net )
|
||||||
|
|
||||||
|
schnet_list *Net;
|
||||||
|
{
|
||||||
|
autfreeheap( (char *)Net, sizeof( schnet_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Free Wire |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freeschwir( Wire )
|
||||||
|
|
||||||
|
schwir_list *Wire;
|
||||||
|
{
|
||||||
|
autfreeheap( (char *)Wire, sizeof( schwir_list ));
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schfree.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.01.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_FREE_H
|
||||||
|
# define SCH_FREE_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,110 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schget.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include "schget.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Get Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Get Sch Vector Name |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
char *getschvectorname( Vector, Index )
|
||||||
|
|
||||||
|
char *Vector;
|
||||||
|
long *Index;
|
||||||
|
{
|
||||||
|
char *LeftParen;
|
||||||
|
char Buffer[ 128 ];
|
||||||
|
|
||||||
|
if ( Vector == (char *)0 )
|
||||||
|
{
|
||||||
|
return( (char *)0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
strcpy( Buffer, Vector );
|
||||||
|
LeftParen = strchr( Buffer, ' ' );
|
||||||
|
|
||||||
|
if ( LeftParen == (char *)0 )
|
||||||
|
{
|
||||||
|
return( (char *)0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
*LeftParen = '\0';
|
||||||
|
*Index = atoi( LeftParen + 1 );
|
||||||
|
Vector = namealloc( Buffer );
|
||||||
|
|
||||||
|
return( Vector );
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schget.h |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_GET_H
|
||||||
|
# define SCH_GET_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,282 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schview.c |
|
||||||
|
| |
|
||||||
|
| Date : 11.03.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include "schview.h"
|
||||||
|
# include "scherror.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch View Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch View Wire |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void viewschwir( Wire )
|
||||||
|
|
||||||
|
schwir_list *Wire;
|
||||||
|
{
|
||||||
|
fprintf( stdout, "\n--> Wire" );
|
||||||
|
fprintf( stdout, "\n X : %ld", Wire->X );
|
||||||
|
fprintf( stdout, "\n Y : %ld", Wire->Y );
|
||||||
|
fprintf( stdout, "\n DX : %ld", Wire->DX );
|
||||||
|
fprintf( stdout, "\n DX : %ld", Wire->DY );
|
||||||
|
fprintf( stdout, "\n FLAGS : %lx", Wire->FLAGS );
|
||||||
|
fprintf( stdout, "\n USER : %lx", (long)Wire->USER );
|
||||||
|
fprintf( stdout, "\n<-- Wire" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch View Net |
|
||||||
|
| |
|
||||||
|
/------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void viewschnet( Net )
|
||||||
|
|
||||||
|
schnet_list *Net ;
|
||||||
|
{
|
||||||
|
schwir_list *ScanWire;
|
||||||
|
schcon_list *ScanCon;
|
||||||
|
chain_list *ScanChain;
|
||||||
|
char *RootName;
|
||||||
|
|
||||||
|
fprintf( stdout, "\n --> Net" );
|
||||||
|
fprintf( stdout, "\n NUMBER_IN : %ld", Net->NUMBER_IN );
|
||||||
|
fprintf( stdout, "\n NUMBER_OUT : %ld", Net->NUMBER_OUT );
|
||||||
|
fprintf( stdout, "\n FLAGS : %lx", Net->FLAGS );
|
||||||
|
|
||||||
|
fprintf( stdout, "\n SOURCE_TYPE : %d", (int)Net->SOURCE_TYPE );
|
||||||
|
fprintf( stdout, "\n USER : %lx", (long)Net->USER );
|
||||||
|
|
||||||
|
fprintf( stdout, "\n CON_NET :" );
|
||||||
|
|
||||||
|
for ( ScanChain = Net->CON_NET;
|
||||||
|
ScanChain != (chain_list *)0;
|
||||||
|
ScanChain = ScanChain->NEXT )
|
||||||
|
{
|
||||||
|
ScanCon = (schcon_list *)ScanChain->DATA;
|
||||||
|
|
||||||
|
if ( ScanCon->ROOT_TYPE == SCH_ROOT_CON_FIG )
|
||||||
|
{
|
||||||
|
RootName = ((schfig_list *)ScanCon->ROOT)->NAME;
|
||||||
|
fprintf( stdout, "\n \t # %s\tof fig %s", ScanCon->NAME, RootName );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RootName = ((schbox_list *)ScanCon->ROOT)->NAME;
|
||||||
|
fprintf( stdout, "\n \t # %s\tof box %s", ScanCon->NAME, RootName );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n WIRE :" );
|
||||||
|
|
||||||
|
for ( ScanWire = Net->WIRE;
|
||||||
|
ScanWire != (schwir_list *)0;
|
||||||
|
ScanWire = ScanWire->NEXT )
|
||||||
|
{
|
||||||
|
viewschwir( ScanWire );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n<-- Net" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch View Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void viewschcon( Con )
|
||||||
|
|
||||||
|
schcon_list *Con ;
|
||||||
|
{
|
||||||
|
fprintf( stdout, "\n --> Con" );
|
||||||
|
fprintf( stdout, "\n \tNAME : %s", Con->NAME );
|
||||||
|
fprintf( stdout, "\n \tSOURCE_TYPE : %d", (int)Con->SOURCE_TYPE );
|
||||||
|
fprintf( stdout, "\n \tDIR : %d", (int)Con->DIR );
|
||||||
|
fprintf( stdout, "\n \tTYPE : Ox%x", (int)Con->TYPE );
|
||||||
|
fprintf( stdout, "\n \tROOT_TYPE : %d", (int)Con->ROOT_TYPE );
|
||||||
|
fprintf( stdout, "\n \tX_REL : %lx", Con->X_REL );
|
||||||
|
fprintf( stdout, "\n \tY_REL : %lx", Con->Y_REL );
|
||||||
|
fprintf( stdout, "\n \tFLAGS : %lx", Con->FLAGS );
|
||||||
|
fprintf( stdout, "\n \tUSER : %lx", (long)Con->USER );
|
||||||
|
fprintf( stdout, "\n <-- Con" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch View Box |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void viewschbox( Box )
|
||||||
|
|
||||||
|
schbox_list *Box;
|
||||||
|
{
|
||||||
|
schcon_list *ScanCon;
|
||||||
|
|
||||||
|
fprintf( stdout, "\n--> Box" );
|
||||||
|
fprintf( stdout, "\n NAME : %s", Box->NAME );
|
||||||
|
fprintf( stdout, "\n SOURCE_TYPE : %d", (int)Box->SOURCE_TYPE );
|
||||||
|
fprintf( stdout, "\n NUMBER_IN : %ld", Box->NUMBER_IN );
|
||||||
|
fprintf( stdout, "\n NUMBER_OUT : %ld", Box->NUMBER_OUT );
|
||||||
|
fprintf( stdout, "\n X : %ld", Box->X );
|
||||||
|
fprintf( stdout, "\n Y : %ld", Box->Y );
|
||||||
|
fprintf( stdout, "\n DX : %ld", Box->DX );
|
||||||
|
fprintf( stdout, "\n DY : %ld", Box->DY );
|
||||||
|
fprintf( stdout, "\n FLAGS : %lx", Box->FLAGS );
|
||||||
|
fprintf( stdout, "\n USER : %lx", (long)Box->USER );
|
||||||
|
|
||||||
|
fprintf( stdout, "\n CON_IN : " );
|
||||||
|
|
||||||
|
for ( ScanCon = Box->CON_IN;
|
||||||
|
ScanCon != (schcon_list *)0;
|
||||||
|
ScanCon = ScanCon->NEXT )
|
||||||
|
{
|
||||||
|
viewschcon( ScanCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n CON_OUT : " );
|
||||||
|
|
||||||
|
for ( ScanCon = Box->CON_OUT;
|
||||||
|
ScanCon != (schcon_list *)0;
|
||||||
|
ScanCon = ScanCon->NEXT )
|
||||||
|
{
|
||||||
|
viewschcon( ScanCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n<-- Box" );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch View Figure |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void viewschfig( Figure )
|
||||||
|
|
||||||
|
schfig_list *Figure;
|
||||||
|
{
|
||||||
|
schcon_list *ScanCon;
|
||||||
|
schbox_list *ScanBox;
|
||||||
|
schnet_list *ScanNet;
|
||||||
|
|
||||||
|
fprintf( stdout, "\n--> Figure" );
|
||||||
|
fprintf( stdout, "\n NAME : %s", Figure->NAME );
|
||||||
|
fprintf( stdout, "\n SOURCE_TYPE : %d", (int)Figure->SOURCE_TYPE );
|
||||||
|
fprintf( stdout, "\n NUMBER_IN : %ld", Figure->NUMBER_IN );
|
||||||
|
fprintf( stdout, "\n NUMBER_OUT : %ld", Figure->NUMBER_OUT );
|
||||||
|
fprintf( stdout, "\n X : %ld", Figure->X );
|
||||||
|
fprintf( stdout, "\n Y : %ld", Figure->Y );
|
||||||
|
fprintf( stdout, "\n FLAGS : %lx", Figure->FLAGS );
|
||||||
|
fprintf( stdout, "\n USER : %lx", (long)Figure->USER );
|
||||||
|
|
||||||
|
fprintf( stdout, "\n CON_IN : " );
|
||||||
|
|
||||||
|
for ( ScanCon = Figure->CON_IN;
|
||||||
|
ScanCon != (schcon_list *)0;
|
||||||
|
ScanCon = ScanCon->NEXT )
|
||||||
|
{
|
||||||
|
viewschcon( ScanCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n CON_OUT : " );
|
||||||
|
|
||||||
|
for ( ScanCon = Figure->CON_OUT;
|
||||||
|
ScanCon != (schcon_list *)0;
|
||||||
|
ScanCon = ScanCon->NEXT )
|
||||||
|
{
|
||||||
|
viewschcon( ScanCon );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n BOX : " );
|
||||||
|
|
||||||
|
for ( ScanBox = Figure->BOX;
|
||||||
|
ScanBox != (schbox_list *)0;
|
||||||
|
ScanBox = ScanBox->NEXT )
|
||||||
|
{
|
||||||
|
viewschbox( ScanBox );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n NET : " );
|
||||||
|
|
||||||
|
for ( ScanNet = Figure->NET;
|
||||||
|
ScanNet != (schnet_list *)0;
|
||||||
|
ScanNet = ScanNet->NEXT )
|
||||||
|
{
|
||||||
|
viewschnet( ScanNet );
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf( stdout, "\n<-- Figure\n" );
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Sch |
|
||||||
|
| |
|
||||||
|
| File : schview.h |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCH_VIEW_H
|
||||||
|
# define SCH_VIEW_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,486 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
#ifndef __P
|
||||||
|
# if defined(__STDC__) || defined(__GNUC__)
|
||||||
|
# define __P(x) x
|
||||||
|
# else
|
||||||
|
# define __P(x) ()
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Title : Structures and fonctions for SCL |
|
||||||
|
| |
|
||||||
|
| File : sch105.h |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCL_105_H
|
||||||
|
# define SCL_105_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Box & Connectors Size / Step |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCP_BOX_MIN_DX 8
|
||||||
|
|
||||||
|
# define SCP_BOX_CON_BASE_Y 2
|
||||||
|
# define SCP_BOX_CON_STEP_Y 4
|
||||||
|
# define SCP_BOX_CON_X 0
|
||||||
|
|
||||||
|
# define SCP_BOX_STEP_Y 5
|
||||||
|
# define SCP_CON_STEP_Y 3
|
||||||
|
# define SCP_CELL_MIN_DX 2
|
||||||
|
|
||||||
|
# define SCP_PRIMARY_CON_DX 3
|
||||||
|
# define SCP_PRIMARY_CON_DY 2
|
||||||
|
# define SCP_CON_DY 2
|
||||||
|
|
||||||
|
# define SCP_CLUSTER_ROUTE_STEP_X 2
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| From Type |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCH_FROM_LOFIG 0x0001
|
||||||
|
# define SCH_FROM_BEFIG 0x0002
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| P Type Id |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCH_NET_TYPE 0x90000020
|
||||||
|
# define SCH_BOX_TYPE 0x90000200
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Box Mask |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCH_BOX_TAGED 0x0001
|
||||||
|
# define SCH_BOX_CLUSTERED 0x0002
|
||||||
|
# define SCH_BOX_CLUSTER 0x0004
|
||||||
|
# define SCH_BOX_CLUSTER_NET 0x0008
|
||||||
|
|
||||||
|
# define SCH_BOX_TRANSPARENCE 0x0010
|
||||||
|
# define SCH_BOX_RETAGED 0x0020
|
||||||
|
# define SCH_BOX_PLACED 0x0040
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Con Mask |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCH_CON_IN 0x0001
|
||||||
|
# define SCH_CON_OUT 0x0002
|
||||||
|
# define SCH_CON_VEC 0x0004
|
||||||
|
# define SCH_CON_EXTERNAL 0x0008
|
||||||
|
# define SCH_CON_INTERNAL 0x0010
|
||||||
|
# define SCH_CON_VEC_FIRST 0x0020
|
||||||
|
# define SCH_CON_VEC_LAST 0x0040
|
||||||
|
|
||||||
|
# define SCH_CON_TAGED 0x0100
|
||||||
|
# define SCH_CON_PLACED 0x0200
|
||||||
|
|
||||||
|
# define SCH_NET_CANAL 0x0F
|
||||||
|
|
||||||
|
# define SCH_NET_MAXDIR 0x20
|
||||||
|
# define SCH_NET_MINDIR 0x10
|
||||||
|
|
||||||
|
# define SCH_ROOT_CON_BOX 0x0001
|
||||||
|
# define SCH_ROOT_CON_FIG 0x0002
|
||||||
|
|
||||||
|
|
||||||
|
# define SCH_SOURCE_LOSIG 1
|
||||||
|
# define SCH_SOURCE_LOINS 2
|
||||||
|
# define SCH_SOURCE_LOCON 3
|
||||||
|
# define SCH_SOURCE_LOFIG 4
|
||||||
|
# define SCH_SOURCE_LOTRS 5
|
||||||
|
|
||||||
|
# define SCH_SOURCE_BEPOR 6
|
||||||
|
# define SCH_SOURCE_BEAUX 7
|
||||||
|
# define SCH_SOURCE_BEREG 8
|
||||||
|
# define SCH_SOURCE_BEBUX 9
|
||||||
|
# define SCH_SOURCE_BEBUS 10
|
||||||
|
# define SCH_SOURCE_BEOUT 11
|
||||||
|
# define SCH_SOURCE_BEFIG 12
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macros |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Box |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define IsSchBoxClustered( X ) ( ( X )->FLAGS & SCH_BOX_CLUSTERED )
|
||||||
|
# define SetSchBoxClustered( X ) ( ( X )->FLAGS |= SCH_BOX_CLUSTERED )
|
||||||
|
# define ClearSchBoxClustered( X ) ( ( X )->FLAGS &= ~SCH_BOX_CLUSTERED )
|
||||||
|
|
||||||
|
# define IsSchBoxTaged( X ) ( ( X )->FLAGS & SCH_BOX_TAGED )
|
||||||
|
# define SetSchBoxTaged( X ) ( ( X )->FLAGS |= SCH_BOX_TAGED )
|
||||||
|
# define ClearSchBoxTaged( X ) ( ( X )->FLAGS &= ~SCH_BOX_TAGED )
|
||||||
|
|
||||||
|
# define IsSchBoxReTaged( X ) ( ( X )->FLAGS & SCH_BOX_RETAGED )
|
||||||
|
# define SetSchBoxReTaged( X ) ( ( X )->FLAGS |= SCH_BOX_RETAGED )
|
||||||
|
# define ClearSchBoxReTaged( X ) ( ( X )->FLAGS &= ~SCH_BOX_RETAGED )
|
||||||
|
|
||||||
|
# define IsSchBoxCluster( X ) ( ( X )->FLAGS & SCH_BOX_CLUSTER )
|
||||||
|
# define SetSchBoxCluster( X ) ( ( X )->FLAGS |= SCH_BOX_CLUSTER )
|
||||||
|
# define ClearSchBoxCluster( X ) ( ( X )->FLAGS &= ~SCH_BOX_CLUSTER )
|
||||||
|
|
||||||
|
# define IsSchBoxTransparence( X ) ( ( X )->FLAGS & SCH_BOX_TRANSPARENCE )
|
||||||
|
# define SetSchBoxTransparence( X ) ( ( X )->FLAGS |= SCH_BOX_TRANSPARENCE )
|
||||||
|
# define ClearSchBoxTransparence( X ) ( ( X )->FLAGS &= ~SCH_BOX_TRANSPARENCE )
|
||||||
|
|
||||||
|
# define IsSchBoxPlaced( X ) ( ( X )->FLAGS & SCH_BOX_PLACED )
|
||||||
|
# define SetSchBoxPlaced( X ) ( ( X )->FLAGS |= SCH_BOX_PLACED )
|
||||||
|
# define ClearSchBoxPlaced( X ) ( ( X )->FLAGS &= ~SCH_BOX_PLACED )
|
||||||
|
|
||||||
|
# define IsSchBoxClusterNet( X ) ( ( X )->FLAGS & SCH_BOX_CLUSTER_NET )
|
||||||
|
# define SetSchBoxClusterNet( X ) ( ( X )->FLAGS |= SCH_BOX_CLUSTER_NET )
|
||||||
|
# define ClearSchBoxClusterNet( X ) ( ( X )->FLAGS &= ~SCH_BOX_CLUSTER_NET )
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define IsSchConIn( X ) ( ( X )->TYPE & SCH_CON_IN )
|
||||||
|
# define SetSchConIn( X ) ( ( X )->TYPE |= SCH_CON_IN )
|
||||||
|
# define ClearSchConIn( X ) ( ( X )->TYPE &= ~SCH_CON_IN )
|
||||||
|
|
||||||
|
# define IsSchConOut( X ) ( ( X )->TYPE & SCH_CON_OUT )
|
||||||
|
# define SetSchConOut( X ) ( ( X )->TYPE |= SCH_CON_OUT )
|
||||||
|
# define ClearSchConOut( X ) ( ( X )->TYPE &= ~SCH_CON_OUT )
|
||||||
|
|
||||||
|
# define IsSchConVec( X ) ( ( X )->TYPE & SCH_CON_VEC )
|
||||||
|
# define SetSchConVec( X ) ( ( X )->TYPE |= SCH_CON_VEC )
|
||||||
|
# define ClearSchConVec( X ) ( ( X )->TYPE &= ~SCH_CON_VEC )
|
||||||
|
|
||||||
|
# define IsSchConVecFirst( X ) ( ( X )->TYPE & SCH_CON_VEC_FIRST )
|
||||||
|
# define SetSchConVecFirst( X ) ( ( X )->TYPE |= SCH_CON_VEC_FIRST )
|
||||||
|
# define ClearSchConVecFirst( X ) ( ( X )->TYPE &= ~SCH_CON_VEC_FIRST )
|
||||||
|
|
||||||
|
# define IsSchConVecLast( X ) ( ( X )->TYPE & SCH_CON_VEC_LAST )
|
||||||
|
# define SetSchConVecLast( X ) ( ( X )->TYPE |= SCH_CON_VEC_LAST )
|
||||||
|
# define ClearSchConVecLast( X ) ( ( X )->TYPE &= ~SCH_CON_VEC_LAST )
|
||||||
|
|
||||||
|
# define IsSchConExternal( X ) ( ( X )->TYPE & SCH_CON_EXTERNAL )
|
||||||
|
# define SetSchConExternal( X ) ( ( X )->TYPE |= SCH_CON_EXTERNAL )
|
||||||
|
# define ClearSchConExternal( X ) ( ( X )->TYPE &= ~SCH_CON_EXTERNAL )
|
||||||
|
|
||||||
|
# define IsSchConInternal( X ) ( ( X )->TYPE & SCH_CON_INTERNAL )
|
||||||
|
# define SetSchConInternal( X ) ( ( X )->TYPE |= SCH_CON_INTERNAL )
|
||||||
|
# define ClearSchConInternal( X ) ( ( X )->TYPE &= ~SCH_CON_INTERNAL )
|
||||||
|
|
||||||
|
# define IsSchConPlaced( X ) ( ( X )->FLAGS & SCH_CON_PLACED )
|
||||||
|
# define SetSchConPlaced( X ) ( ( X )->FLAGS |= SCH_CON_PLACED )
|
||||||
|
# define ClearSchConPlaced( X ) ( ( X )->FLAGS &= ~SCH_CON_PLACED )
|
||||||
|
|
||||||
|
# define IsSchConTaged( X ) ( ( X )->FLAGS & SCH_CON_TAGED )
|
||||||
|
# define SetSchConTaged( X ) ( ( X )->FLAGS |= SCH_CON_TAGED )
|
||||||
|
# define ClearSchConTaged( X ) ( ( X )->FLAGS &= ~SCH_CON_TAGED )
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Net |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define IsSchNetCanal( X ) ( ( X )->FLAGS & SCH_NET_CANAL )
|
||||||
|
# define GetSchNetDirType( X ) ( ( X )->FLAGS & (SCH_NET_MAXDIR|SCH_NET_MINDIR) )
|
||||||
|
# define SetSchNetMaxOutput( X ) ( ( X )->FLAGS |= SCH_NET_MAXDIR )
|
||||||
|
# define SetSchNetMinOutput( X ) ( ( X )->FLAGS |= SCH_NET_MINDIR )
|
||||||
|
|
||||||
|
# define SetSchNetCanal( X ) ( ( X )->FLAGS |= SCH_NET_CANAL )
|
||||||
|
|
||||||
|
# define ClearSchNetCanal( X ) ( ( X )->FLAGS &= ~SCH_NET_CANAL )
|
||||||
|
# define ClearSchNetDir( X ) ( ( X )->FLAGS &= ~(SCH_NET_MINDIR|SCH_NET_MAXDIR) )
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Add Connector |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define addschfigconin( F, N ) (addschfigcon( (F), (N), SCH_CON_IN ))
|
||||||
|
# define addschfigconout( F, N ) (addschfigcon( (F), (N), SCH_CON_OUT ))
|
||||||
|
|
||||||
|
# define addschboxconin( F, B, N ) (addschboxcon( (F), (B), (N), SCH_CON_IN ))
|
||||||
|
# define addschboxconout( F, B, N ) (addschboxcon( (F), (B), (N), SCH_CON_OUT ))
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Structures |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Wires |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct schwir_list
|
||||||
|
{
|
||||||
|
struct schwir_list *NEXT;
|
||||||
|
struct schnet_list *NET;
|
||||||
|
long X;
|
||||||
|
long Y;
|
||||||
|
long DX;
|
||||||
|
long DY;
|
||||||
|
long FLAGS;
|
||||||
|
void *USER;
|
||||||
|
|
||||||
|
} schwir_list;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Nets (Signals) |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct schnet_list
|
||||||
|
{
|
||||||
|
struct schnet_list *NEXT;
|
||||||
|
chain_list *CON_NET;
|
||||||
|
struct schwir_list *WIRE;
|
||||||
|
void *SOURCE;
|
||||||
|
unsigned char SOURCE_TYPE;
|
||||||
|
long FLAGS;
|
||||||
|
long NUMBER_IN;
|
||||||
|
long NUMBER_OUT;
|
||||||
|
long CANAL;
|
||||||
|
long YMIN;
|
||||||
|
long YMAX;
|
||||||
|
void *USER;
|
||||||
|
|
||||||
|
} schnet_list;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Connectors |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct schcon_list
|
||||||
|
{
|
||||||
|
struct schcon_list *NEXT;
|
||||||
|
char *NAME;
|
||||||
|
unsigned short TYPE;
|
||||||
|
unsigned char DIR;
|
||||||
|
unsigned char ROOT_TYPE;
|
||||||
|
void *ROOT;
|
||||||
|
schnet_list *NET;
|
||||||
|
void *SOURCE;
|
||||||
|
unsigned char SOURCE_TYPE;
|
||||||
|
long X_REL;
|
||||||
|
long Y_REL;
|
||||||
|
long FLAGS;
|
||||||
|
void *USER;
|
||||||
|
|
||||||
|
} schcon_list;
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Box (Instance) |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct schbox_list
|
||||||
|
{
|
||||||
|
struct schbox_list *NEXT;
|
||||||
|
char *NAME;
|
||||||
|
struct schcon_list *CON_IN;
|
||||||
|
long NUMBER_IN;
|
||||||
|
struct schcon_list *CON_OUT;
|
||||||
|
long NUMBER_OUT;
|
||||||
|
void *SOURCE;
|
||||||
|
unsigned char SOURCE_TYPE; /* type de la source */
|
||||||
|
long X;
|
||||||
|
long Y;
|
||||||
|
long DX;
|
||||||
|
long DY;
|
||||||
|
long FLAGS;
|
||||||
|
void *USER;
|
||||||
|
|
||||||
|
} schbox_list;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Figure |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct schfig_list
|
||||||
|
{
|
||||||
|
struct schfig_list *NEXT;
|
||||||
|
char *NAME;
|
||||||
|
struct schcon_list *CON_IN;
|
||||||
|
long NUMBER_IN;
|
||||||
|
struct schcon_list *CON_OUT;
|
||||||
|
long NUMBER_OUT;
|
||||||
|
schbox_list *BOX;
|
||||||
|
schnet_list *NET;
|
||||||
|
void *SOURCE;
|
||||||
|
unsigned char SOURCE_TYPE;
|
||||||
|
long X;
|
||||||
|
long Y;
|
||||||
|
long FLAGS;
|
||||||
|
void *USER;
|
||||||
|
|
||||||
|
} schfig_list;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Global Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schfig_list *HEAD_SCHFIG;
|
||||||
|
extern char *SCH_IN;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Env Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void schenv();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Alloc Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schfig_list *allocschfig();
|
||||||
|
extern schcon_list *allocschcon();
|
||||||
|
extern schbox_list *allocschbox();
|
||||||
|
extern schwir_list *allocschwir();
|
||||||
|
extern schnet_list *allocschnet();
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Free Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void freeschfig();
|
||||||
|
extern void freeschcon();
|
||||||
|
extern void freeschbox();
|
||||||
|
extern void freeschwir();
|
||||||
|
extern void freeschnet();
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Add Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schnet_list *addschnetcon();
|
||||||
|
extern schfig_list *addschfig();
|
||||||
|
extern schcon_list *addschfigcon();
|
||||||
|
extern schcon_list *addschboxcon();
|
||||||
|
extern schbox_list *addschbox();
|
||||||
|
extern schwir_list *addschwir();
|
||||||
|
extern schnet_list *addschnet();
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Del Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern int delschfig();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| View Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void viewschfig();
|
||||||
|
extern void viewschbox();
|
||||||
|
extern void viewschcon();
|
||||||
|
extern void viewschwir();
|
||||||
|
extern void viewschnet();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Get Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern char *getschvectorname();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Translate Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern schfig_list *lofig2schfig();
|
||||||
|
extern schfig_list *befig2schfig();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Place / Route Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void placerouteschfig();
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,158 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Title : Structures and fonctions for SCP |
|
||||||
|
| |
|
||||||
|
| File : scp.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_H
|
||||||
|
# define SCP_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCP_CEL_BOX 0x0001
|
||||||
|
# define SCP_CEL_CON 0x0002
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macros |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Structures |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Colums |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct scpcol_list
|
||||||
|
{
|
||||||
|
struct scpcol_list *NEXT;
|
||||||
|
struct scpcel_list *CELL;
|
||||||
|
struct scpcel_list *LAST_CELL;
|
||||||
|
long NUMBER_CELL;
|
||||||
|
long MAX_DX_CELL;
|
||||||
|
} scpcol_list;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Cells |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
typedef struct scpcel_list
|
||||||
|
{
|
||||||
|
struct scpcel_list *NEXT;
|
||||||
|
struct scpcel_list *PREV;
|
||||||
|
struct scpcol_list *COL;
|
||||||
|
void *ROOT;
|
||||||
|
long TYPE;
|
||||||
|
} scpcel_list;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Global Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
scpcol_list *HEAD_SCPCOL;
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Alloc Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern scpcol_list *allocscpcol();
|
||||||
|
extern scpcel_list *allocscpcel();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Free Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void freescpcol();
|
||||||
|
extern void freescpcel();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Add Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern scpcel_list *addscpcel();
|
||||||
|
extern scpcol_list *addscpcol();
|
||||||
|
|
||||||
|
extern scpcel_list *addschboxtoscpcel();
|
||||||
|
extern scpcel_list *addschcontoscpcel();
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Del Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void delscpcol();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Search Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern void swapscpcel();
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| View Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,154 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpadd.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "scp.h"
|
||||||
|
# include "scpadd.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Add Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Sch Add Cell |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
scpcel_list *addscpcel( Column )
|
||||||
|
|
||||||
|
scpcol_list *Column;
|
||||||
|
{
|
||||||
|
scpcel_list *Cell;
|
||||||
|
|
||||||
|
|
||||||
|
Cell = allocscpcel();
|
||||||
|
|
||||||
|
Cell->COL = Column;
|
||||||
|
|
||||||
|
Cell->NEXT = Column->CELL;
|
||||||
|
|
||||||
|
Cell->PREV = NULL;
|
||||||
|
|
||||||
|
if ( Column->CELL != NULL )
|
||||||
|
{
|
||||||
|
Column->CELL->PREV = Cell;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Column->LAST_CELL = Cell;
|
||||||
|
}
|
||||||
|
|
||||||
|
Column->CELL = Cell;
|
||||||
|
|
||||||
|
Column->NUMBER_CELL++;
|
||||||
|
|
||||||
|
return( Cell );
|
||||||
|
}
|
||||||
|
|
||||||
|
scpcel_list *addschboxtoscpcel( SchBox, ScpCel)
|
||||||
|
schbox_list *SchBox;
|
||||||
|
scpcel_list *ScpCel;
|
||||||
|
{
|
||||||
|
ScpCel->ROOT = SchBox;
|
||||||
|
ScpCel->TYPE = SCP_CEL_BOX;
|
||||||
|
|
||||||
|
SchBox->USER = (void *)ScpCel;
|
||||||
|
|
||||||
|
return( ScpCel );
|
||||||
|
}
|
||||||
|
|
||||||
|
scpcel_list *addschcontoscpcel( SchCon, ScpCel)
|
||||||
|
schcon_list *SchCon;
|
||||||
|
scpcel_list *ScpCel;
|
||||||
|
{
|
||||||
|
ScpCel->ROOT = SchCon;
|
||||||
|
ScpCel->TYPE = SCP_CEL_CON;
|
||||||
|
|
||||||
|
SchCon->USER = (void *)ScpCel;
|
||||||
|
|
||||||
|
return( ScpCel );
|
||||||
|
}
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Add Column |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
scpcol_list *addscpcol( )
|
||||||
|
|
||||||
|
{
|
||||||
|
scpcol_list *Column;
|
||||||
|
|
||||||
|
Column = allocscpcol();
|
||||||
|
|
||||||
|
Column->NEXT = HEAD_SCPCOL;
|
||||||
|
HEAD_SCPCOL = Column;
|
||||||
|
|
||||||
|
return( Column );
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpadd.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_ADD_H
|
||||||
|
# define SCP_ADD_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,99 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpalloc.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.03.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include "scp.h"
|
||||||
|
# include "scpalloc.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Alloc Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Alloc Cel |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
scpcel_list *allocscpcel()
|
||||||
|
{
|
||||||
|
return( (scpcel_list *)(autallocheap( sizeof( scpcel_list ) ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Alloc Col |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
scpcol_list *allocscpcol()
|
||||||
|
{
|
||||||
|
return( (scpcol_list *)(autallocheap( sizeof( scpcol_list ) ) ) );
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpalloc.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.01.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_ALLOC_H
|
||||||
|
# define SCP_ALLOC_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,79 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_BUILD_H
|
||||||
|
# define SCP_BUILD_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : Scp Build |
|
||||||
|
| |
|
||||||
|
| Date : 15.03.00 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCP_CLUSTER_BOX 0
|
||||||
|
# define SCP_CLUSTER_BOX_NET 1
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Box Size |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# define SCP_BOX_TRANS_DY 2
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macros |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,125 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpdel.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "scp.h"
|
||||||
|
# include "scpdel.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Del Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Del Cell List |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void loc_delscpcel( HeadCell )
|
||||||
|
|
||||||
|
scpcel_list *HeadCell;
|
||||||
|
{
|
||||||
|
scpcel_list *ScanCell;
|
||||||
|
scpcel_list *DelCell;
|
||||||
|
|
||||||
|
ScanCell = HeadCell;
|
||||||
|
|
||||||
|
while ( ScanCell != (scpcel_list *)0 )
|
||||||
|
{
|
||||||
|
DelCell = ScanCell;
|
||||||
|
ScanCell = ScanCell->NEXT;
|
||||||
|
|
||||||
|
freescpcel( DelCell );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Del Column List |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void delscpcol()
|
||||||
|
{
|
||||||
|
scpcol_list *ScanColumn;
|
||||||
|
scpcol_list *DelColumn;
|
||||||
|
|
||||||
|
ScanColumn = HEAD_SCPCOL;
|
||||||
|
|
||||||
|
while ( ScanColumn != (scpcol_list *)0 )
|
||||||
|
{
|
||||||
|
loc_delscpcel( ScanColumn->CELL );
|
||||||
|
|
||||||
|
DelColumn = ScanColumn;
|
||||||
|
ScanColumn = ScanColumn->NEXT;
|
||||||
|
|
||||||
|
freescpcol( DelColumn );
|
||||||
|
}
|
||||||
|
|
||||||
|
HEAD_SCPCOL = (scpcol_list *)0;
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpdel.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_DEL_H
|
||||||
|
# define SCP_DEL_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,110 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpfree.c |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "mlo.h"
|
||||||
|
# include "scl.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
# include "scp.h"
|
||||||
|
# include "scpfree.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Free Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Free Cell |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freescpcel( Cell )
|
||||||
|
|
||||||
|
scpcel_list *Cell;
|
||||||
|
{
|
||||||
|
autfreeheap( (char *)Cell, sizeof( scpcel_list ));
|
||||||
|
}
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Scp Free Colum |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void freescpcol( Colum )
|
||||||
|
|
||||||
|
scpcol_list *Colum;
|
||||||
|
{
|
||||||
|
autfreeheap( (char *)Colum, sizeof( scpcol_list ));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scpfree.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.97 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_FREE_H
|
||||||
|
# define SCP_FREE_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| This file is part of the Alliance CAD System Copyright |
|
||||||
|
| (C) Laboratoire LIP6 - Département ASIM Universite P&M Curie|
|
||||||
|
| |
|
||||||
|
| Home page : http://www-asim.lip6.fr/alliance/ |
|
||||||
|
| E-mail support : mailto:alliance-support@asim.lip6.fr |
|
||||||
|
| |
|
||||||
|
| This progam is free software; you can redistribute it |
|
||||||
|
| and/or modify it under the terms of the GNU Library General|
|
||||||
|
| Public License as published by the Free Software Foundation |
|
||||||
|
| either version 2 of the License, or (at your option) any |
|
||||||
|
| later version. |
|
||||||
|
| |
|
||||||
|
| Alliance VLSI CAD System is distributed in the hope that |
|
||||||
|
| it will be useful, but WITHOUT ANY WARRANTY; |
|
||||||
|
| without even the implied warranty of MERCHANTABILITY or |
|
||||||
|
| FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|
||||||
|
| Public License for more details. |
|
||||||
|
| |
|
||||||
|
| You should have received a copy of the GNU General Public |
|
||||||
|
| License along with the GNU C Library; see the file COPYING. |
|
||||||
|
| If not, write to the Free Software Foundation, Inc., |
|
||||||
|
| 675 Mass Ave, Cambridge, MA 02139, USA. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Tool : Scp |
|
||||||
|
| |
|
||||||
|
| File : scp.h |
|
||||||
|
| |
|
||||||
|
| Date : 28.04.98 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef SCP_SWAP_H
|
||||||
|
# define SCP_SWAP_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Macro |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# endif
|
Loading…
Reference in New Issue