Parser de formules CTL
This commit is contained in:
parent
1b8f467609
commit
7a75e75fa3
|
@ -0,0 +1 @@
|
||||||
|
SUBDIRS = src
|
|
@ -0,0 +1,47 @@
|
||||||
|
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/05/02 13:37:03 ludo Exp $
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
AC_INIT(src/ctp.h)
|
||||||
|
AM_INIT_AUTOMAKE(ctp, 1.1)
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_YACC
|
||||||
|
AM_PROG_LEX
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_C_CONST
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
|
AM_ALLIANCE
|
||||||
|
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
src/Makefile
|
||||||
|
])
|
|
@ -0,0 +1,22 @@
|
||||||
|
AM_CFLAGS = @ALLIANCE_CFLAGS@
|
||||||
|
lib_LIBRARIES = libCtp.a
|
||||||
|
include_HEADERS = ctp.h
|
||||||
|
libCtp_a_SOURCES = ctp_y.y ctp_l.l ctp.h \
|
||||||
|
ctp_bedef.h ctp_bspec.c ctp_byacc.h ctp_parse.c ctp_util.h \
|
||||||
|
ctp_blex.h ctp_bspec.h ctp_util.c ctp_utype.h
|
||||||
|
|
||||||
|
CLEANFILES = ctp_y.c ctp_y.h ctp_l.c
|
||||||
|
|
||||||
|
|
||||||
|
ctp_y.c ctp_y.h : $(srcdir)/ctp_y.y
|
||||||
|
$(YACC) -d $(YFLAGS) $(srcdir)/ctp_y.y && sed -e "s/yy/ctp_y_/g" -e "s/YY/CTL_Y_/g" y.tab.c > ctp_y.c && sed -e "s/yy/ctp_y_/g" -e "s/YY/CTL_Y_/g" y.tab.h > ctp_y.h
|
||||||
|
ctp_l.c : $(srcdir)/ctp_l.l ctp_y.h
|
||||||
|
$(LEX) -t $(srcdir)/ctp_l.l | sed -e "s/yy/ctp_y_/g" -e "s/YY/CTL_Y_/g" > ctp_l.c
|
||||||
|
|
||||||
|
EXTRA_PROGRAMS = ctptest
|
||||||
|
|
||||||
|
ctptest_LDADD = @ALLIANCE_LIBS@ \
|
||||||
|
$(top_builddir)/src/libCtp.a \
|
||||||
|
-lCtl -lVex -lAut -lMut
|
||||||
|
|
||||||
|
ctptest_SOURCES = main.c
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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 : Fonctions to parse a CTL file |
|
||||||
|
| |
|
||||||
|
| Date : 04.22.02 |
|
||||||
|
| |
|
||||||
|
| Author : Jacomme Ludovic |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
# ifndef CTP_H
|
||||||
|
# define CTP_H
|
||||||
|
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Structures |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Global Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern ctlfig_list *loadctlfig __P((char *InputFileName));
|
||||||
|
|
||||||
|
# endif
|
|
@ -0,0 +1,96 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : bvl_bedef.h */
|
||||||
|
/* date : Jun 15 1992 */
|
||||||
|
/* version : v102 */
|
||||||
|
/* author : P.BAZARGAN, M.HANAFI */
|
||||||
|
/* content : declaration of define used by yacc */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#define CTP_LG_MC 15
|
||||||
|
#define CTP_NB_MC ((tab_mc -1 + sizeof(tab_mc)/ (sizeof(tab_mc[0])) - tab_mc+1))
|
||||||
|
|
||||||
|
#define CTP_CSTDFN 1 /* constant */
|
||||||
|
#define CTP_TPEDFN 2 /* type */
|
||||||
|
#define CTP_FORDFN 3 /* formula */
|
||||||
|
#define CTP_VARDFN 4 /* variable */
|
||||||
|
#define CTP_LABDFN 5 /* label */
|
||||||
|
|
||||||
|
#define CTP_MODDFN 0 /* mod_val field of dct_recrd */
|
||||||
|
#define CTP_SYMDFN 1 /* sym_val field of dct_recrd */
|
||||||
|
#define CTP_TYPDFN 2 /* type_val field of dct_recrd */
|
||||||
|
#define CTP_SUNDFN 3 /* sign_val */
|
||||||
|
#define CTP_LBLDFN 4 /* lbl_val field of dct_recrd */
|
||||||
|
#define CTP_WMXDFN 5 /* wmx_val field of dct_recrd */
|
||||||
|
#define CTP_WMNDFN 6 /* wmn_val field of dct_recrd */
|
||||||
|
#define CTP_ATLDFN 7 /* attr_left_val */
|
||||||
|
#define CTP_ATRDFN 8 /* attr_left_val */
|
||||||
|
#define CTP_PNTDFN 9 /* pnt_val field of dct_recrd */
|
||||||
|
|
||||||
|
#define CTP_UPTDFN 1 /* direction is up */
|
||||||
|
#define CTP_DWTDFN 2 /* direction is down */
|
||||||
|
#define CTP_IDXDFN 3
|
||||||
|
|
||||||
|
#define CTP_EVENT 1
|
||||||
|
#define CTP_STABLE 2
|
||||||
|
#define CTP_LEFT 3
|
||||||
|
#define CTP_RIGHT 4
|
||||||
|
#define CTP_HIGH 5
|
||||||
|
#define CTP_LOW 6
|
||||||
|
#define CTP_LENGTH 7
|
||||||
|
#define CTP_RANGE 8
|
||||||
|
#define CTP_REV_RANGE 9
|
||||||
|
|
||||||
|
/* ###---------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#define NE 109
|
||||||
|
#define EQ 110
|
||||||
|
#define GT 111
|
||||||
|
#define GE 112
|
||||||
|
#define LT 113
|
||||||
|
#define LE 114
|
||||||
|
#define NOPI 115
|
||||||
|
#define NOPS 116
|
||||||
|
#define ANDM 117
|
||||||
|
#define CONC 118
|
||||||
|
#define CONVRT 119
|
||||||
|
#define SUBVAR 120
|
||||||
|
#define EMPTYOP 121
|
||||||
|
|
||||||
|
#define CTP_UNGDFN 0
|
||||||
|
#define CTP_GRDDFN 1
|
||||||
|
|
||||||
|
/* ###---------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#define CTP_INTDFN 0 /* int_val field of dtc_recrd */
|
||||||
|
|
||||||
|
#define CTP_ALODFN 60 /* nbr of allocations */
|
||||||
|
#define CTP_HSZDFN 97 /* size of dictionnary: entries */
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : bvl_blex.h */
|
||||||
|
/* date : Jun 15 1992 */
|
||||||
|
/* version : v102 */
|
||||||
|
/* author : TABUSSE L.A. */
|
||||||
|
/* content : declaration of functions and global variables used by */
|
||||||
|
/* lex */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include "ctp_bedef.h"
|
||||||
|
|
||||||
|
extern long CTP_LINNUM; /* file's line number */
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{ char nom[CTP_LG_MC];
|
||||||
|
int kval;
|
||||||
|
} el_mc;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,74 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : bvl_bspec.h */
|
||||||
|
/* date : Jun 15 1992 */
|
||||||
|
/* author : TABUSSE L.A. */
|
||||||
|
/* content : declaration of functions and global variables used by */
|
||||||
|
/* bvl_bspec.c */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
typedef struct ctp_expr
|
||||||
|
{
|
||||||
|
char *IDENT; /* identifier or constant name */
|
||||||
|
vexexpr *VEX; /* pointer on bvl_abllst list */
|
||||||
|
short TYPE;
|
||||||
|
int WIDTH; /* width of bit vector */
|
||||||
|
char SIGNED;
|
||||||
|
char AGGREG;
|
||||||
|
}
|
||||||
|
ctp_vexstr;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char *NAME; /* identifier name */
|
||||||
|
long LEFT; /* vector's left index */
|
||||||
|
long RIGHT; /* vector's right index */
|
||||||
|
char FLAG; /* scalar ('S') or array 'A' */
|
||||||
|
char TYPE; /* scalar ('S') or array 'A' */
|
||||||
|
char SIGNED;
|
||||||
|
}
|
||||||
|
ctp_name;
|
||||||
|
|
||||||
|
extern ctp_vexstr CTP_EMPSTR;
|
||||||
|
extern ctlfig_list *CTP_HEADFIG;
|
||||||
|
extern char *CTP_FILENAME;
|
||||||
|
|
||||||
|
extern ctp_vexstr ctp_crtvex ();
|
||||||
|
extern char *ctp_numtobin ();
|
||||||
|
extern char *ctp_enumbitstring();
|
||||||
|
extern int ctp_codeSize();
|
||||||
|
extern vexexpr *ctp_dynamicvexatom();
|
||||||
|
extern int ctp_intSize();
|
||||||
|
extern int ctp_vextonum();
|
||||||
|
extern ctltype_list *ctp_getbasetype();
|
||||||
|
extern void ctp_error();
|
||||||
|
extern int ctp_tobin();
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : ctp_byacc.h */
|
||||||
|
/* date : Jun 15 1992 */
|
||||||
|
/* version : v102 */
|
||||||
|
/* author : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : declaration of external functions and global variables*/
|
||||||
|
/* used by yacc */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
static struct dct_entry *addent ();
|
||||||
|
static struct dct_recrd *addrcd ();
|
||||||
|
static struct dct_entry **initab ();
|
||||||
|
static void addtab ();
|
||||||
|
static int chktab ();
|
||||||
|
static void fretab ();
|
||||||
|
static void *ctp_addstr ();
|
||||||
|
static ctltype_list *val_type();
|
||||||
|
static ctltype_list *get_type();
|
||||||
|
static struct ptype *reversetype();
|
||||||
|
|
||||||
|
extern char CTP_ERRFLG; /* set to 1 in case of error */
|
||||||
|
extern ctlfig_list *CTP_HEADFIG; /* head of vbfigs */
|
||||||
|
extern long CTP_LINNUM;
|
||||||
|
extern int CTP_NUMPTP;
|
||||||
|
extern char *CTP_MODNAM;
|
||||||
|
|
||||||
|
/*\
|
||||||
|
pNode CTP_BDDPNT;
|
||||||
|
\*/
|
||||||
|
/* BDD pointer */
|
||||||
|
ctp_vexstr CTP_SLCEXP; /* structure filled with the */
|
||||||
|
ctp_vexstr CTP_EMPSTR; /* empty structure used with NOT*/
|
||||||
|
|
||||||
|
static int CTP_NUMTYP = 0; /* nombre de type */
|
||||||
|
static struct chain *CTP_NM1LST = NULL; /* 1-st name liste */
|
||||||
|
static struct chain *CTP_NM2LST = NULL; /* 2-st name liste */
|
||||||
|
static struct chain *CTP_INSLST = NULL; /* 3-st name liste */
|
||||||
|
static struct chain *CTP_LINLST = NULL; /* list of line */
|
||||||
|
static struct chain *CTP_VALLST = NULL; /* list of waveforms (ABL) */
|
||||||
|
|
||||||
|
static struct ptype *CTP_PTYPE = NULL;
|
||||||
|
|
||||||
|
static struct dct_entry *CTP_DCEHED; /* free dct_entry's head */
|
||||||
|
static struct dct_recrd *CTP_DCRHED; /* free dct_recrd's head */
|
||||||
|
|
||||||
|
static struct dct_entry **hshtab;
|
||||||
|
|
||||||
|
extern ctp_vexstr ctp_crtvex();
|
||||||
|
extern ctp_vexstr ctp_cpyvexstr();
|
||||||
|
extern ctp_vexstr ctp_select();
|
||||||
|
extern char *ctp_stostr();
|
||||||
|
extern void ctp_error();
|
||||||
|
|
|
@ -0,0 +1,220 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
%{
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "aut.h"
|
||||||
|
#include "vex.h"
|
||||||
|
#include "ctl.h"
|
||||||
|
|
||||||
|
typedef struct ctp_expr
|
||||||
|
{
|
||||||
|
vexexpr *IDENT; /* identifier or constant name */
|
||||||
|
vexexpr *VEX; /* pointer on bvl_abllst list */
|
||||||
|
short WIDTH;
|
||||||
|
short TYPE;
|
||||||
|
}
|
||||||
|
ctp_vexstr;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char *NAME; /* identifier name */
|
||||||
|
long LEFT; /* vector's left index */
|
||||||
|
long RIGHT; /* vector's right index */
|
||||||
|
short WIDTH;
|
||||||
|
char FLAG;
|
||||||
|
}
|
||||||
|
ctp_name;
|
||||||
|
|
||||||
|
#include "ctp_y.h"
|
||||||
|
#include "ctp_bedef.h"
|
||||||
|
#include "ctp_blex.h"
|
||||||
|
|
||||||
|
static el_mc tab_mc []=
|
||||||
|
{
|
||||||
|
{"abs" ,ABS},
|
||||||
|
{"af" ,_AF},
|
||||||
|
{"ag" ,_AG},
|
||||||
|
{"and" ,_AND},
|
||||||
|
{"array" ,ARRAY},
|
||||||
|
{"au" ,_AU},
|
||||||
|
{"ax" ,_AX},
|
||||||
|
{"begin" ,_BEGIN},
|
||||||
|
{"constant" ,CONSTANT},
|
||||||
|
{"downto" ,DOWNTO},
|
||||||
|
{"ef" ,_EF},
|
||||||
|
{"eg" ,_EG},
|
||||||
|
{"end" ,_END},
|
||||||
|
{"error" ,ERROR},
|
||||||
|
{"eu" ,_EU},
|
||||||
|
{"event" ,_EVENT},
|
||||||
|
{"ex" ,_EX},
|
||||||
|
{"false" ,_FALSE},
|
||||||
|
{"high" ,_HIGH},
|
||||||
|
{"ift" ,_IFT},
|
||||||
|
{"is" ,IS},
|
||||||
|
{"left" ,_LEFT},
|
||||||
|
{"length" ,_LENGTH},
|
||||||
|
{"low" ,_LOW},
|
||||||
|
{"mod" ,MOD},
|
||||||
|
{"nand" ,_NAND},
|
||||||
|
{"nor" ,_NOR},
|
||||||
|
{"not" ,_NOT},
|
||||||
|
{"nxor" ,_NXOR},
|
||||||
|
{"of" ,OF},
|
||||||
|
{"or" ,_OR},
|
||||||
|
{"others" ,OTHERS},
|
||||||
|
{"range" ,_RANGE},
|
||||||
|
{"rem" ,REM},
|
||||||
|
{"reverse_range" ,_REV_RANGE},
|
||||||
|
{"right" ,_RIGHT},
|
||||||
|
{"stable" ,_STABLE},
|
||||||
|
{"subtype" ,SUBTYPE},
|
||||||
|
{"to" ,TO},
|
||||||
|
{"true" ,_TRUE },
|
||||||
|
{"type" ,_TYPE},
|
||||||
|
{"variable" ,_VARIABLE},
|
||||||
|
{"xnor" ,_NXOR},
|
||||||
|
{"xor" ,_XOR}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static int find_mc(s)
|
||||||
|
|
||||||
|
char *s;
|
||||||
|
{
|
||||||
|
char loc[512];
|
||||||
|
int l;
|
||||||
|
el_mc *pt;
|
||||||
|
|
||||||
|
l=strlen(s);
|
||||||
|
strcpy(loc,s);
|
||||||
|
while(l--) loc[l]=tolower(loc[l]); /* conversion en minuscules */
|
||||||
|
pt= (el_mc *) bsearch(loc, (char *)tab_mc,CTP_NB_MC,sizeof(el_mc),
|
||||||
|
(int (*)(const void *, const void *)) strcmp);
|
||||||
|
if (pt==NULL) return(-1);
|
||||||
|
|
||||||
|
return(pt->kval);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
||||||
|
upper_case_letter [A-Z]
|
||||||
|
digit [0-9]
|
||||||
|
special_character [\#\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\_\|]
|
||||||
|
space_character [ \t]
|
||||||
|
format_effector [\t\v\r\l\f]
|
||||||
|
end_of_line \n
|
||||||
|
lower_case_letter [a-z]
|
||||||
|
other_special_character [\!\$\@\?\[\\\]\^\`\{\}\~]
|
||||||
|
|
||||||
|
graphic_character ({basic_graphic_character}|{lower_case_letter}|{other_special_character})
|
||||||
|
basic_graphic_character ({upper_case_letter}|{digit}|{special_character}|{space_character})
|
||||||
|
letter ({upper_case_letter}|{lower_case_letter})
|
||||||
|
letter_or_digit ({letter}|{digit})
|
||||||
|
decimal_literal {integer}(\.{integer})?({exponent})?
|
||||||
|
integer {digit}(_?{digit})*
|
||||||
|
exponent ([eE][-+]?{integer})
|
||||||
|
base {integer}
|
||||||
|
based_integer {extended_digit}(_?{extended_digit})*
|
||||||
|
extended_digit ({digit}|[a-fA-F])
|
||||||
|
base_specifier (B|b|O|o|X|x)
|
||||||
|
|
||||||
|
%%
|
||||||
|
[ \t] ;
|
||||||
|
\& { return(Ampersand); }
|
||||||
|
\' { return(Apostrophe); }
|
||||||
|
\( { return(LeftParen); }
|
||||||
|
\) { return(RightParen); }
|
||||||
|
"<->" { return(Equiv); }
|
||||||
|
"->" { return(Imply); }
|
||||||
|
"**" { return(DoubleStar); }
|
||||||
|
\* { return(Star); }
|
||||||
|
\+ { return(Plus); }
|
||||||
|
\, { return(Comma); }
|
||||||
|
\- { return(Minus); }
|
||||||
|
":=" { return(VarAsgn); }
|
||||||
|
\: { return(Colon); }
|
||||||
|
\; { return(Semicolon); }
|
||||||
|
"<=" { return(_LESym); }
|
||||||
|
">=" { return(_GESym); }
|
||||||
|
\< { return(_LTSym); }
|
||||||
|
\> { return(_GTSym); }
|
||||||
|
= { return(_EQSym); }
|
||||||
|
\/= { return(_NESym); }
|
||||||
|
"=>" { return(Arrow); }
|
||||||
|
"<>" { return(Box); }
|
||||||
|
\| { return(Bar); }
|
||||||
|
! { return(Bar); }
|
||||||
|
\. { return(Dot); }
|
||||||
|
\/ { return(Slash); }
|
||||||
|
|
||||||
|
{letter}(_?{letter_or_digit})* {
|
||||||
|
int itoken;
|
||||||
|
itoken=find_mc(yytext);
|
||||||
|
if (itoken== -1)
|
||||||
|
{
|
||||||
|
yylval.text = namealloc(yytext);
|
||||||
|
return ( Identifier );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return ( itoken );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
({decimal_literal})|({base}#{based_integer}(\.{based_integer})?#({exponent})?)|({base}:{based_integer}(\.{based_integer})?:({exponent})?) {
|
||||||
|
yylval.text = mbkalloc((unsigned int)strlen(yytext)+1);
|
||||||
|
strcpy(yylval.text,yytext);
|
||||||
|
return ( AbstractLit );
|
||||||
|
}
|
||||||
|
'({graphic_character}|\"|\%)' {
|
||||||
|
yylval.text = namealloc (yytext);
|
||||||
|
return ( CharacterLit );
|
||||||
|
}
|
||||||
|
(\"({graphic_character}|(\"\")|\%)*\")|(\%({graphic_character}|(\%\%)|\")*\%) {
|
||||||
|
yylval.text = namealloc (yytext);
|
||||||
|
return ( StringLit );
|
||||||
|
}
|
||||||
|
{base_specifier}((\"{extended_digit}(_?{extended_digit})*\")|(\%{extended_digit}(_?{extended_digit})*\%)) {
|
||||||
|
yylval.text = namealloc (yytext);
|
||||||
|
return ( BitStringLit );
|
||||||
|
}
|
||||||
|
\n {
|
||||||
|
CTP_LINNUM++;
|
||||||
|
}
|
||||||
|
\-\-.*$ {
|
||||||
|
/* comment */
|
||||||
|
/* nothing */
|
||||||
|
}
|
||||||
|
. {
|
||||||
|
return (*yytext);
|
||||||
|
}
|
||||||
|
%%
|
|
@ -0,0 +1,114 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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 : CTP |
|
||||||
|
| |
|
||||||
|
| File : ctp_parse.c |
|
||||||
|
| |
|
||||||
|
| Author : Jacomme Ludovic |
|
||||||
|
| |
|
||||||
|
| Date : 01.01.95 |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "vex.h"
|
||||||
|
# include "ctl.h"
|
||||||
|
# include "ctp.h"
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <string.h>
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
extern FILE *ctp_y_in;
|
||||||
|
extern int ctp_y_parse();
|
||||||
|
extern char CTP_ERRFLG;
|
||||||
|
extern ctlfig_list *CTP_HEADFIG;
|
||||||
|
extern char *CTP_FILENAME;
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| vpnloadvpnfig |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
ctlfig_list *loadctlfig( InputFileName )
|
||||||
|
|
||||||
|
char *InputFileName;
|
||||||
|
{
|
||||||
|
int Value;
|
||||||
|
int Index;
|
||||||
|
|
||||||
|
fprintf( stdout, "loadctlfig InputFileName %s\n", InputFileName );
|
||||||
|
|
||||||
|
ctp_y_in = mbkfopen( InputFileName, "ctl", "r" );
|
||||||
|
|
||||||
|
if ( ctp_y_in == (FILE *)0 )
|
||||||
|
{
|
||||||
|
fprintf( stdout, "Error opening file %s\n", InputFileName );
|
||||||
|
autexit( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
CTP_FILENAME = InputFileName;
|
||||||
|
|
||||||
|
Value = ctp_y_parse();
|
||||||
|
|
||||||
|
fclose( ctp_y_in );
|
||||||
|
|
||||||
|
if ( ( Value ) ||
|
||||||
|
( CTP_ERRFLG ) )
|
||||||
|
{
|
||||||
|
fprintf( stdout, "Error parsing file %s\n", InputFileName );
|
||||||
|
autexit( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
return( CTP_HEADFIG );
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,365 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : ctp_util.c */
|
||||||
|
/* date : Sep 14 1992 */
|
||||||
|
/* version : v100 */
|
||||||
|
/* author : Pirouz BAZARGAN SABET, M.HANAFI */
|
||||||
|
/* description : This file contains some utility functions : */
|
||||||
|
/* ctp_error , ctp_y_error, ctp_toolbug, ctp_message, */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "mut.h"
|
||||||
|
#include "aut.h"
|
||||||
|
#include "vex.h"
|
||||||
|
#include "ctl.h"
|
||||||
|
|
||||||
|
#include "ctp_utype.h"
|
||||||
|
#include "ctp_util.h"
|
||||||
|
|
||||||
|
char CTP_ERRFLG = 0; /* if = 1 no structure is made */
|
||||||
|
char *CTP_FILENAME = (char *)0;
|
||||||
|
long CTP_LINNUM = 1; /* file's line number */
|
||||||
|
int CTP_NUMPTP = 0; /* file's line number */
|
||||||
|
int CTP_NUMCHOICE = 0;
|
||||||
|
char *CTP_MODNAM = (char *)0;
|
||||||
|
ctlfig_list *CTP_HEADFIG = (ctlfig_list *)0;
|
||||||
|
|
||||||
|
char *ctp_func_std_logic_1164[] =
|
||||||
|
{
|
||||||
|
"to_bit",
|
||||||
|
"to_bitvector",
|
||||||
|
"to_stdulogic",
|
||||||
|
"to_stdlogicvector",
|
||||||
|
"to_stdulogicvector",
|
||||||
|
"to_x01",
|
||||||
|
"to_x01z",
|
||||||
|
"to_ux01",
|
||||||
|
"rising_edge",
|
||||||
|
"falling_edge",
|
||||||
|
"is_x",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
char *ctp_func_std_logic_arith[] =
|
||||||
|
{
|
||||||
|
"abs",
|
||||||
|
"shl",
|
||||||
|
"shr",
|
||||||
|
"conv_integer",
|
||||||
|
"conv_unsigned",
|
||||||
|
"conv_signed",
|
||||||
|
"conv_std_logic_vector",
|
||||||
|
"ext",
|
||||||
|
"sxt",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
char *ctp_func_std_numeric_std[] =
|
||||||
|
{
|
||||||
|
"shift_left",
|
||||||
|
"shift_right",
|
||||||
|
"rotate_left",
|
||||||
|
"rotate_right",
|
||||||
|
"resize",
|
||||||
|
"to_integer",
|
||||||
|
"to_unsigned",
|
||||||
|
"to_signed",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : ctp_toolbug */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
void ctp_toolbug (code,str1,str2,nbr1)
|
||||||
|
|
||||||
|
int code;
|
||||||
|
char *str1;
|
||||||
|
char *str2;
|
||||||
|
int nbr1;
|
||||||
|
|
||||||
|
{
|
||||||
|
(void) fprintf (stderr,"Fatal error %d executing `%s`: ", code,str1);
|
||||||
|
switch (code)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
(void) fprintf (stderr,"unknown operator\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
(void) fprintf (stderr,"cannot create empty atom : %s\n",str2);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
(void) fprintf (stderr,"cannot build NOT of empty expression\n");
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
(void) fprintf (stderr,"cannot combine empty expressions\n");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
(void) fprintf (stderr,"cannot find terminal\n");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
(void) fprintf (stderr,"cannot make BDD of empty expression\n");
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
(void) fprintf (stderr,"unknown type `%c` for IO `%s`\n",nbr1,str2);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
(void) fprintf (stderr,"illegal signal value : hex `%x`\n",nbr1);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
(void) fprintf (stderr,"unknown mode `%c` for IO `%s`\n",nbr1,str2);
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
(void) fprintf (stderr,"decompiler called on empty vbfig\n");
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
(void) fprintf (stderr,"illegal user value '%c' for IO\n",nbr1);
|
||||||
|
break;
|
||||||
|
case 13 :
|
||||||
|
(void) fprintf (stderr,"cannot find model of `%s`\n",str2);
|
||||||
|
break;
|
||||||
|
case 14 :
|
||||||
|
(void) fprintf (stderr,"cannot convert empty expression\n");
|
||||||
|
break;
|
||||||
|
case 15 :
|
||||||
|
(void) fprintf (stderr,"illegal bit string value : `%c`\n",nbr1);
|
||||||
|
break;
|
||||||
|
case 16 :
|
||||||
|
(void) fprintf (stderr,"the same expression cannot be used twice\n");
|
||||||
|
break;
|
||||||
|
case 17 :
|
||||||
|
(void) fprintf (stderr,"unknown base specifier : `%c`\n",nbr1);
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
(void) fprintf (stderr,"unknown mode `%c` for port `%s`\n",nbr1,str2);
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
(void) fprintf (stderr,"empty guard expression: `%s`\n",str2);
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
(void) fprintf (stderr,"empty waveform expression: `%s`\n",str2);
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
(void) fprintf (stderr,"cannot find structural level\n");
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
(void) fprintf (stderr,"`%s` : `%c` unknown resolution function\n",str2,nbr1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
autexit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : ctp_message */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
void ctp_message (code,str1,nmb1)
|
||||||
|
|
||||||
|
int code;
|
||||||
|
char *str1;
|
||||||
|
int nmb1;
|
||||||
|
|
||||||
|
{
|
||||||
|
switch (code)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
(void) fprintf(stderr,"USAGE is ctp [filename1],[filename2],.. \n\n\n");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
(void) fprintf (stdout,"Initializing ...\n");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
(void) fprintf (stdout,"Compiling `%s` (Behaviour) ...\n",str1);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
(void) fprintf (stdout,"Compiling `%s` (Structural) ...\n\n",str1);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
(void) fprintf (stdout,"Searching `%s` ...\n",str1);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
(void) fprintf (stdout,"Compiling `%s` (Pattern) ...\n\n",str1);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
(void) fprintf (stdout,"Linking ...\n");
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
(void) fprintf (stdout,"###----- processing pattern %d -----###\n",nmb1);
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
(void) fprintf (stdout,"Decompiling ...\n");
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
(void) fprintf (stdout,"Generating the file '%s' ...\n",str1);
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
(void) fprintf (stdout,"Saving '%s' in a vhdl file (vbe)\n",str1);
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
(void) fprintf (stdout,"File '%s' has been generated.\n",str1);
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
(void) fprintf (stdout,"Making Bdd ...\n\n");
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
(void) fprintf (stdout,"Restoring ...\n\n");
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
(void) fprintf (stdout,"Parsing the file %s .........\n\n",str1);
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
(void) fprintf (stderr,"ERROR: %s VHDL file does not exist !!! \n",str1);
|
||||||
|
(void) fprintf (stderr," Verify the file and restart \n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
(void) fprintf (stderr,"ctp_message : code %d unknown.\n",code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : ctp_error */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void ctp_error (code,str1)
|
||||||
|
|
||||||
|
int code;
|
||||||
|
char *str1;
|
||||||
|
|
||||||
|
{
|
||||||
|
CTP_ERRFLG++;
|
||||||
|
if (code < 100)
|
||||||
|
(void)fprintf (stderr,"Error %d line %ld in file %s :",code,CTP_LINNUM, CTP_FILENAME);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (code < 200)
|
||||||
|
(void)fprintf (stderr,"Error %d :",code);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (code)
|
||||||
|
{
|
||||||
|
case 9:
|
||||||
|
(void) fprintf (stderr,"illegal declaration\n");
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
(void) fprintf (stderr,"symbol `%s` already declared\n",str1);
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
(void) fprintf (stderr,"illegal statement\n");
|
||||||
|
break;
|
||||||
|
case 32:
|
||||||
|
(void) fprintf (stderr,"null array not supported\n");
|
||||||
|
break;
|
||||||
|
case 33:
|
||||||
|
(void) fprintf (stderr,"incompatible constraint and type\n");
|
||||||
|
break;
|
||||||
|
case 35:
|
||||||
|
(void) fprintf (stderr,"illegal assignment of `%s` (widths mismatch)\n",str1);
|
||||||
|
break;
|
||||||
|
case 36:
|
||||||
|
(void) fprintf (stderr,"symbol `%s` used out of declared range\n",str1);
|
||||||
|
break;
|
||||||
|
case 38:
|
||||||
|
(void) fprintf (stderr,"width or/and type mismatch %s\n",str1);
|
||||||
|
break;
|
||||||
|
case 73:
|
||||||
|
(void) fprintf (stderr,"`%s` is not a bit string litteral\n",str1);
|
||||||
|
break;
|
||||||
|
case 78:
|
||||||
|
(void) fprintf (stderr,"illegal constant declaration\n");
|
||||||
|
break;
|
||||||
|
case 79:
|
||||||
|
(void) fprintf (stderr,"illegal use of attribute on `%s`\n",str1);
|
||||||
|
break;
|
||||||
|
case 80:
|
||||||
|
(void) fprintf (stderr,"variable `%s` already declared\n",str1);
|
||||||
|
break;
|
||||||
|
case 82:
|
||||||
|
(void) fprintf (stderr,"enumerate valu `%s` already declared\n",str1);
|
||||||
|
break;
|
||||||
|
case 83:
|
||||||
|
(void) fprintf (stderr,"'%s' illegal index subtype definition \n",str1);
|
||||||
|
break;
|
||||||
|
case 84:
|
||||||
|
(void) fprintf (stderr,"'%s' illegal type mark definition \n",str1);
|
||||||
|
break;
|
||||||
|
case 86:
|
||||||
|
(void) fprintf (stderr,"illegal variable declaration\n");
|
||||||
|
break;
|
||||||
|
case 87:
|
||||||
|
(void) fprintf (stderr,"illegal type declaration\n");
|
||||||
|
break;
|
||||||
|
case 97:
|
||||||
|
(void) fprintf (stderr,"width mismatch on signal initialisation\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 100:
|
||||||
|
(void) fprintf (stderr,"cannot find `%s`\n",str1);
|
||||||
|
break;
|
||||||
|
case 107:
|
||||||
|
(void) fprintf (stderr,"Cannot open result file\n");
|
||||||
|
break;
|
||||||
|
case 114:
|
||||||
|
(void) fprintf (stderr,"illegal aggregate\n");
|
||||||
|
break;
|
||||||
|
case 123:
|
||||||
|
(void) fprintf (stderr,"such array type definition is not supported\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
(void) fprintf (stderr,"syntax error\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CTP_ERRFLG > CTP_MXRDFN)
|
||||||
|
{
|
||||||
|
(void) fprintf (stderr,"Too many errors. Cannot continue further more\n");
|
||||||
|
(void) fprintf (stderr,"\n Have a nice day...\n");
|
||||||
|
EXIT (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
autexit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : ctp_y_error */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
void ctp_y_error (str)
|
||||||
|
|
||||||
|
char *str;
|
||||||
|
{
|
||||||
|
CTP_ERRFLG++;
|
||||||
|
(void)fprintf (stderr,"Error line %ld : %s\n",CTP_LINNUM,str);
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : ctp_util.h */
|
||||||
|
/* date : Jun 15 1992 */
|
||||||
|
/* version : v100 */
|
||||||
|
/* author : Pirouz BAZARGAN SABET */
|
||||||
|
/* description : This file contains declaration of global and external */
|
||||||
|
/* variables and, functions used in `ctp_util.c` */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#define CTP_MXRDFN 30
|
||||||
|
|
||||||
|
extern long CTP_LINNUM; /* file's line number */
|
||||||
|
extern char CTP_ERRFLG; /* Error flag */
|
||||||
|
extern char CTP_CURFIL[]; /* current file name */
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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. |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* */
|
||||||
|
/* file : ctp_utype.h */
|
||||||
|
/* date : Jun 15 1992 */
|
||||||
|
/* version : v100 */
|
||||||
|
/* author : P.BAZARGAN L.A.TABUSSE VUONG H.N. */
|
||||||
|
/* content : declaration of external functions and global variables */
|
||||||
|
/* used by yacc */
|
||||||
|
/* */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct dct_entry
|
||||||
|
{
|
||||||
|
struct dct_entry *next;
|
||||||
|
struct dct_recrd *data;
|
||||||
|
char *key;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct dct_recrd
|
||||||
|
{
|
||||||
|
struct dct_recrd *next;
|
||||||
|
char *key;
|
||||||
|
long fd0_val;
|
||||||
|
long fd1_val;
|
||||||
|
long fd2_val;
|
||||||
|
long fd3_val;
|
||||||
|
long fd4_val;
|
||||||
|
long fd5_val;
|
||||||
|
long fd6_val;
|
||||||
|
long fd7_val;
|
||||||
|
long fd8_val;
|
||||||
|
long pnt_val;
|
||||||
|
};
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,145 @@
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| 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 : CTP |
|
||||||
|
| |
|
||||||
|
| File : main.c |
|
||||||
|
| |
|
||||||
|
| Date : 04.24.02 |
|
||||||
|
| |
|
||||||
|
| Author : Jacomme Ludovic |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Include Files |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <string.h>
|
||||||
|
|
||||||
|
# include "mut.h"
|
||||||
|
# include "aut.h"
|
||||||
|
# include "vex.h"
|
||||||
|
# include "ctl.h"
|
||||||
|
# include "ctp.h"
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Constants |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Types |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Variables |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Usage |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void CtpUsage()
|
||||||
|
{
|
||||||
|
fprintf( stderr, "\t\tctptest [Options] Input_name\n\n" );
|
||||||
|
fprintf( stdout, "\t\tOptions : -V Sets Verbose mode on\n" );
|
||||||
|
fprintf( stdout, "\n" );
|
||||||
|
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*------------------------------------------------------------\
|
||||||
|
| |
|
||||||
|
| Functions |
|
||||||
|
| |
|
||||||
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int main( argc, argv )
|
||||||
|
|
||||||
|
int argc;
|
||||||
|
char *argv[];
|
||||||
|
{
|
||||||
|
ctlfig_list *CtlFigure;
|
||||||
|
char *InputFileName;
|
||||||
|
int Number;
|
||||||
|
int Index;
|
||||||
|
char Option;
|
||||||
|
|
||||||
|
int FlagVerbose = 0;
|
||||||
|
int FlagSave = 0;
|
||||||
|
|
||||||
|
mbkenv();
|
||||||
|
autenv();
|
||||||
|
vexenv();
|
||||||
|
ctlenv();
|
||||||
|
|
||||||
|
InputFileName = (char *)0;
|
||||||
|
|
||||||
|
if ( argc < 2 ) CtpUsage();
|
||||||
|
|
||||||
|
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;
|
||||||
|
default : CtpUsage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if ( InputFileName == (char *)0 ) InputFileName = argv[ Number ];
|
||||||
|
else
|
||||||
|
CtpUsage();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( InputFileName == (char *)0 ) CtpUsage();
|
||||||
|
|
||||||
|
fprintf( stdout, "InputFileName %s\n", InputFileName );
|
||||||
|
|
||||||
|
CtlFigure = loadctlfig( InputFileName );
|
||||||
|
|
||||||
|
if ( FlagVerbose ) viewctlfig( CtlFigure );
|
||||||
|
|
||||||
|
delctlfig( CtlFigure->NAME );
|
||||||
|
|
||||||
|
return( 0 );
|
||||||
|
}
|
Loading…
Reference in New Issue