This commit is contained in:
Ludovic Jacomme 2002-03-21 13:41:36 +00:00
parent 3fc2bb448b
commit ea4f18199c
17 changed files with 14252 additions and 0 deletions

View File

@ -0,0 +1 @@
SUBDIRS = src

View File

@ -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/03/21 13:41:35 ludo Exp $
dnl
dnl
AC_INIT(src/vbl.h)
AM_INIT_AUTOMAKE(vbl, 1.4)
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
])

View File

@ -0,0 +1,11 @@
lib_LIBRARIES = libVbl.a
libVbl_a_SOURCES = vbl_bcomp_y.y vbl_bcomp_l.l \
vbl_bedef.h vbl_bspec.c vbl_byacc.h vbl_util.c vbl_utype.h \
vbl.h vbl_blex.h vbl_bspec.h vbl_parse.c vbl_util.h
CLEANFILES = vbl_bcompyac.c vbl_bcompyac.h vbl_bcomplex.c
vbl_bcompyac.c vbl_bcompyac.h : $(srcdir)/vbl_bcomp_y.y
$(YACC) -d $(YFLAGS) $(srcdir)/vbl_bcomp_y.y && sed -e "s/yy/vbl_y_/g" -e "s/YY/VBL_Y_/g" y.tab.c > vbl_bcompyac.c && sed -e "s/yy/vbl_y_/g" -e "s/YY/VBL_Y_/g" y.tab.h > vbl_bcompyac.h
vbl_bcomplex.c : $(srcdir)/vbl_bcomp_l.l vbl_bcompyac.h
$(LEX) -t $(srcdir)/vbl_bcomp_l.l | sed -e "s/yy/vbl_y_/g" -e "s/YY/VBL_Y_/g" > vbl_bcomplex.c

197
alliance/src/vbl/src/main.c Normal file
View File

@ -0,0 +1,197 @@
/*------------------------------------------------------------\
| |
| 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 <malloc.h>
# include MUT_H
# include AUT_H
# include VEX_H
# include VBH_H
# include VBL_H
# ifdef VBL_DEBUG
extern int vbl_y_debug;
# endif
/*------------------------------------------------------------\
| |
| Usage |
| |
\------------------------------------------------------------*/
void VblUsage()
{
fprintf( stderr, "\t\tvbltest [Options] Input_name\n\n" );
fprintf( stdout, "\t\tOptions : -V Sets Verbose mode on\n" );
# ifdef VBL_DEBUG
fprintf( stdout, "\t\t -D Sets Debug mode on\n" );
# endif
fprintf( stdout, "\t\t -G Load generic instances\n" );
fprintf( stdout, "\t\t -S Simplify Vex\n" );
fprintf( stdout, "\t\t -P File packages list file name\n" );
fprintf( stdout, "\n" );
exit( 1 );
}
/*------------------------------------------------------------\
| |
| Functions |
| |
\------------------------------------------------------------*/
int main( argc, argv )
int argc;
char **argv;
{
char *InputFileName;
char *PackageFileName;
int Number;
int Index;
char Option;
vbfig_list *VbhFigure;
vbfig_list *VbhGenFigure;
vbins_list *VbhInstance;
char *Extention;
int FlagVerbose = 0;
int FlagGeneric = 0;
# ifdef VBL_DEBUG
int FlagDebug = 0;
# endif
int FlagSimplif = 0;
mbkenv();
autenv();
vexenv();
InputFileName = (char *)0;
PackageFileName = (char *)0;
Extention = "vhdl";
if ( argc < 2 ) VblUsage();
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 ];
if ( Option == 'I' )
{
Number++;
if ( Number < argc ) Extention = argv[ Number ];
else VblUsage();
break;
}
else
if ( Option == 'P' )
{
Number++;
if ( Number < argc ) PackageFileName = argv[ Number ];
else VblUsage();
break;
}
switch ( Option )
{
case 'V' : FlagVerbose = 1;
break;
# ifdef VBL_DEBUG
case 'D' : FlagDebug = 1;
break;
# endif
case 'S' : FlagSimplif = 1;
break;
case 'G' : FlagGeneric = 1;
break;
default : VblUsage();
}
}
}
else
if ( InputFileName == (char *)0 ) InputFileName = argv[ Number ];
else
VblUsage();
}
if ( InputFileName == (char *)0 ) VblUsage();
if ( PackageFileName != (char *)0 )
{
getvbpkg( PackageFileName, Extention );
}
# ifdef VBL_DEBUG
if ( FlagDebug ) vbl_y_debug = 1;
# endif
VbhFigure = getvbfig( InputFileName, Extention );
if ( ! FlagGeneric )
{
if ( FlagSimplif ) vbh_simpvbfig( VbhFigure );
if ( FlagVerbose ) vbh_viewvbfig( VbhFigure );
vbh_frevbfig( VbhFigure );
}
else
{
for ( VbhInstance = VbhFigure->BEINS;
VbhInstance != (vbins_list *)0;
VbhInstance = VbhInstance->NEXT )
{
if ( VbhInstance->GEN_MAP != (vbmap_list *)0 )
{
VbhGenFigure = getvbfiggenmap( VbhInstance->MODEL, Extention, VbhInstance->GEN_MAP );
}
}
for ( VbhFigure = VBL_HEADFIG;
VbhFigure != (vbfig_list *)0;
VbhFigure = VbhFigure->NEXT )
{
if ( FlagSimplif ) vbh_simpvbfig( VbhFigure );
if ( FlagVerbose ) vbh_viewvbfig( VbhFigure );
}
vbh_frevbfig( VBL_HEADFIG );
}
return( 0 );
}

View File

@ -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. |
| |
\------------------------------------------------------------*/
/*------------------------------------------------------\
| |
| Title : Structures and fonctions for VBL |
| |
| Date : 07.04.96 |
| |
| Author : Jacomme Ludovic |
| |
\------------------------------------------------------*/
# ifndef VBL_104_H
# define VBL_104_H
/*------------------------------------------------------\
| |
| Constants |
| |
\------------------------------------------------------*/
/*------------------------------------------------------\
| |
| Structures |
| |
\------------------------------------------------------*/
/*------------------------------------------------------\
| |
| Global Variables |
| |
\------------------------------------------------------*/
extern vbfig_list *VBL_HEADFIG;
/*------------------------------------------------------\
| |
| Functions |
| |
\------------------------------------------------------*/
extern vbfig_list *getvbfig();
extern vbfig_list *getvbfiggenmap();
extern void getvbpkg();
# endif

View File

@ -0,0 +1,284 @@
/*------------------------------------------------------------\
| |
| 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 VBH_H
typedef struct vbl_expr
{
vexexpr *IDENT; /* identifier or constant name */
vexexpr *VEX; /* pointer on bvl_abllst list */
short WIDTH;
short TYPE;
}
vbl_vexstr;
typedef struct
{
char *NAME; /* identifier name */
long LEFT; /* vector's left index */
long RIGHT; /* vector's right index */
short WIDTH;
char FLAG;
}
vbl_name;
struct g_type
{
int VALU;
char FLAG;
};
#include "vbl_bcompyac.h"
#include "vbl_bedef.h"
#include "vbl_blex.h"
static el_mc tab_mc []=
{
{"abs" ,ABS},
{"access" ,ACCESS},
{"after" ,AFTER},
{"alias" ,ALIAS},
{"all" ,ALL},
{"and" ,_AND},
{"architecture" ,ARCHITECTURE},
{"array" ,ARRAY},
{"assert" ,ASSERT},
{"attribute" ,ATTRIBUTE},
{"begin" ,_BEGIN},
{"block" ,BLOCK},
{"body" ,BODY},
{"buffer" ,_BUFFER},
{"bus" ,BUS},
{"case" ,CASE},
{"component" ,COMPONENT},
{"configuration" ,CONFIGURATION},
{"constant" ,CONSTANT},
{"disconnect" ,DISCONNECT},
{"downto" ,DOWNTO},
{"else" ,ELSE},
{"elsif" ,ELSIF},
{"end" ,_END},
{"entity" ,_ENTITY},
{"error" ,ERROR},
{"event" ,_EVENT},
{"exit" ,_EXIT},
{"false" ,_FALSE},
{"file" ,_FILE},
{"for" ,FOR},
{"fs" ,_FS},
{"function" ,FUNCTION},
{"generate" ,GENERATE},
{"generic" ,GENERIC},
{"guarded" ,GUARDED},
{"high" ,_HIGH},
{"if" ,IF},
{"ift" ,_IFT},
{"in" ,_IN},
{"inout" ,_INOUT},
{"is" ,IS},
{"label" ,_LABEL},
{"left" ,_LEFT},
{"length" ,_LENGTH},
{"library" ,_LIBRARY},
{"linkage" ,_LINKAGE},
{"loop" ,LOOP},
{"low" ,_LOW},
{"map" ,MAP},
{"mod" ,MOD},
{"ms" ,_MS},
{"nand" ,_NAND},
{"new" ,NEW},
{"next" ,_NEXT},
{"nor" ,_NOR},
{"not" ,_NOT},
{"ns" ,_NS},
{"null" ,_NULL},
{"nxor" ,_NXOR},
{"of" ,OF},
{"on" ,ON},
{"open" ,OPEN},
{"or" ,_OR},
{"others" ,OTHERS},
{"out" ,_OUT},
{"package" ,_PACKAGE},
{"port" ,PORT},
{"procedure" ,PROCEDURE},
{"process" ,PROCESS},
{"ps" ,_PS},
{"range" ,_RANGE},
{"record" ,RECORD},
{"register" ,REGISTER},
{"rem" ,REM},
{"report" ,REPORT},
{"return" ,_RETURN},
{"reverse_range" ,_REV_RANGE},
{"right" ,_RIGHT},
{"select" ,SELECT},
{"severity" ,SEVERITY},
{"signal" ,SIGNAL},
{"stable" ,_STABLE},
{"subtype" ,SUBTYPE},
{"then" ,THEN},
{"to" ,TO},
{"transport" ,TRANSPORT},
{"true" ,_TRUE },
{"type" ,_TYPE},
{"units" ,UNITS},
{"until" ,UNTIL},
{"use" ,USE},
{"variable" ,_VARIABLE},
{"wait" ,WAIT},
{"warning" ,WARNING},
{"when" ,WHEN},
{"while" ,WHILE},
{"with" ,WITH},
{"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,VBL_NB_MC,sizeof(el_mc), strcmp);
if (pt==NULL) return(-1);
return(pt->kval);
}
int vbl_y_wrap ()
{
return (1);
}
%}
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(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 {
VBL_LINNUM++;
}
\-\-.*$ {
/* comment */
/* nothing */
}
. {
return (*yytext);
}
%%

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,106 @@
/*------------------------------------------------------------\
| |
| 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 VBL_LG_MC 15
#define VBL_NB_MC ((tab_mc -1 + sizeof(tab_mc)/ (sizeof(tab_mc[0])) - tab_mc+1))
#define VBL_ICNDFN 1 /* input port */
#define VBL_OCNDFN 2 /* output port */
#define VBL_BCNDFN 3 /* inout port */
#define VBL_CSTDFN 4 /* constant */
#define VBL_TPEDFN 5 /* type */
#define VBL_SGNDFN 6 /* signal */
#define VBL_FUNDFN 7 /* function */
#define VBL_VARDFN 8 /* variable */
#define VBL_PARDFN 9 /* parameter */
#define VBL_PRODFN 10 /* procedure */
#define VBL_ATTDFN 11 /* attribute */
#define VBL_COMDFN 12 /* component */
#define VBL_GENDFN 13 /* generic */
#define VBL_LABDFN 14 /* label */
#define VBL_MODDFN 0 /* mod_val field of dct_recrd */
#define VBL_SYMDFN 1 /* sym_val field of dct_recrd */
#define VBL_TYPDFN 2 /* type_val field of dct_recrd */
#define VBL_SUNDFN 3 /* sign_val */
#define VBL_LBLDFN 4 /* lbl_val field of dct_recrd */
#define VBL_WMXDFN 5 /* wmx_val field of dct_recrd */
#define VBL_WMNDFN 6 /* wmn_val field of dct_recrd */
#define VBL_ATLDFN 7 /* attr_left_val */
#define VBL_ATRDFN 8 /* attr_left_val */
#define VBL_PNTDFN 9 /* pnt_val field of dct_recrd */
#define VBL_DYNDFN 10 /* dynamic_val */
#define VBL_UPTDFN 1 /* direction is up */
#define VBL_DWTDFN 2 /* direction is down */
#define VBL_IDXDFN 3
#define VBL_EVENT 1
#define VBL_STABLE 2
#define VBL_LEFT 3
#define VBL_RIGHT 4
#define VBL_HIGH 5
#define VBL_LOW 6
#define VBL_LENGTH 7
#define VBL_RANGE 8
#define VBL_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 VBL_UNGDFN 0
#define VBL_GRDDFN 1
/* ###---------------------------------------------------------------### */
#define VBL_INTDFN 0 /* int_val field of dtc_recrd */
#define VBL_ALODFN 60 /* nbr of allocations */
#define VBL_HSZDFN 97 /* size of dictionnary: entries */

View File

@ -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 "vbl_bedef.h"
extern long VBL_LINNUM; /* file's line number */
typedef struct
{ char nom[VBL_LG_MC];
int kval;
} el_mc;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,92 @@
/*------------------------------------------------------------\
| |
| 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 vbl_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;
}
vbl_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 DYNAMIC; /* Left and Right are static */
char SIGNED;
char AGGREG;
}
vbl_name;
struct g_type
{
int VALU;
char FLAG;
};
struct choice_chain
{
struct choice_chain* NEXT;
chain_list *VALUES;
unsigned int SIZE;
struct ptype *INSTRUCTION;
};
extern vbl_vexstr VBL_EMPSTR;
extern struct vbfig *VBL_HEADFIG;
extern struct vbmap *VBL_GENMAP;
extern vbl_vexstr vbl_crtvex ();
extern char *vbl_numtobin ();
extern char *vbl_enumbitstring();
extern int vbl_codeSize();
extern vexexpr *vbl_dynamicvexatom();
extern int vbl_intSize();
extern int vbl_vextonum();
extern vbtyp_list *vbl_getbasetype();
extern void vbl_error();
extern int vbl_tobin();

View File

@ -0,0 +1,111 @@
/*------------------------------------------------------------\
| |
| 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_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 *vbl_addstr ();
static vbtyp_list *val_type();
static vbtyp_list *get_type();
static struct ptype *reversetype();
static struct choice_chain *addchoice();
static struct choice_chain *order_choice();
extern char VBL_ERRFLG; /* set to 1 in case of error */
extern struct vbfig *VBL_HEADFIG; /* head of vbfigs */
extern long VBL_LINNUM;
extern int VBL_NUMPTP;
extern int VBL_NUMCHOICE;
/*\
pNode VBL_BDDPNT;
\*/
/* BDD pointer */
char *VBL_MODNAM; /* curnennt model name */
char *VBL_PROCNAM; /* current process name */
char *VBL_FUNCNAM; /* current function/procedure name */
char *VBL_COMPNAM;
char *VBL_SAVCOMPNAM;
char *VBL_GNRNAM; /* current generate name */
vbl_vexstr VBL_SLCEXP; /* structure filled with the */
vbl_vexstr VBL_EMPSTR; /* empty structure used with NOT*/
static int VBL_NUMTYP = 0; /* nombre de type */
static struct chain *VBL_NM1LST = NULL; /* 1-st name liste */
static struct chain *VBL_NM2LST = NULL; /* 2-st name liste */
static struct chain *VBL_INSLST = NULL; /* 3-st name liste */
static struct chain *VBL_LOOPLBLLST = NULL;
static struct chain *VBL_GRDLST = NULL; /* list of guard's ABL */
static struct chain *VBL_CNDLST = NULL; /* list of conditions (ABL) */
static struct chain *VBL_LINLST = NULL; /* list of line */
static struct chain *VBL_VALLST = NULL; /* list of waveforms (ABL) */
static struct vbfig *VBL_BEFPNT = NULL; /* current BEFIG pointer */
static char *VBL_LOOPLBL = NULL;
static struct vbmap *VBL_BEMAP = NULL;
static struct vbins *VBL_BEINS = NULL;
static struct vbgnr *VBL_BEGNR = NULL;
static vbpcs_list *VBL_BEPCS = (vbpcs_list *)0;
static vbfun_list *VBL_BEFUN = (vbfun_list *)0;
static chain_list *VBL_GNR_BEPCS = (chain_list *)0;
static chain_list *VBL_GNR_BEINS = (chain_list *)0;
static chain_list *VBL_GNR_BEGNR = (chain_list *)0;
static struct authtable *VBL_ENUMVAL = NULL;
static struct choice_chain *VBL_CASPNT = NULL;
static int VBL_CASSIZE = 0;
static struct ptype *VBL_OTHPNT = NULL;
static struct ptype *VBL_PTYPE = NULL;
static struct dct_entry *VBL_DCEHED; /* free dct_entry's head */
static struct dct_recrd *VBL_DCRHED; /* free dct_recrd's head */
static struct dct_entry **hshtab;
extern struct vbgen *bvl_addgen();
extern vbl_vexstr vbl_crtvex();
extern vbl_vexstr bvl_cpyvexstr();
extern vbl_vexstr bvl_select();
extern char *bvl_stostr();
extern void bvl_error();

View File

@ -0,0 +1,206 @@
/*------------------------------------------------------------\
| |
| 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 : VBL |
| |
| File : vbl_parse.c |
| |
| Author : Jacomme Ludovic |
| |
| Date : 01.01.95 |
| |
\------------------------------------------------------------*/
/*------------------------------------------------------------\
| |
| Include Files |
| |
\------------------------------------------------------------*/
# include MUT_H
# include AUT_H
# include VEX_H
# include VBH_H
# include VBL_H
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
/*------------------------------------------------------------\
| |
| Constants |
| |
\------------------------------------------------------------*/
/*------------------------------------------------------------\
| |
| Types |
| |
\------------------------------------------------------------*/
/*------------------------------------------------------------\
| |
| Variables |
| |
\------------------------------------------------------------*/
extern FILE *vbl_y_in;
extern int vbl_y_parse();
extern char VBL_ERRFLG;
extern vbfig_list *VBL_HEADFIG;
extern vbmap_list *VBL_GENMAP;
extern char *VBL_FILENAME;
/*------------------------------------------------------------\
| |
| vpnloadvpnfig |
| |
\------------------------------------------------------------*/
vbfig_list *getvbfiggenmap( InputFileName, Extention, GenericMap )
char *InputFileName;
char *Extention;
vbmap_list *GenericMap;
{
int Value;
int Index;
static char *AllianceExtention[] = { "vst", "vbe", "fsm" };
if ( ! strcmp( Extention, "vst" ) )
{
Index = 0;
for ( Index = 0; Index < 3; Index++ )
{
vbl_y_in = mbkfopen( InputFileName, AllianceExtention[ Index ], "r" );
if ( vbl_y_in != (FILE *)0 ) break;
}
}
else
{
vbl_y_in = mbkfopen( InputFileName, Extention, "r" );
}
if ( vbl_y_in == (FILE *)0 )
{
fprintf( stdout, "Error opening file %s\n", InputFileName );
autexit( 1 );
}
VBL_GENMAP = GenericMap;
VBL_FILENAME = InputFileName;
Value = vbl_y_parse();
fclose( vbl_y_in );
if ( ( Value ) ||
( VBL_ERRFLG ) )
{
fprintf( stdout, "Error parsing file %s\n", InputFileName );
autexit( 1 );
}
VBL_HEADFIG->BEGEN = (vbgen_list *)reverse( (chain_list *)VBL_HEADFIG->BEGEN );
VBL_HEADFIG->BECST = (vbcst_list *)reverse( (chain_list *)VBL_HEADFIG->BECST );
return( VBL_HEADFIG );
}
/*------------------------------------------------------------\
| |
| getvbfig |
| |
\------------------------------------------------------------*/
vbfig_list *getvbfig( InputFileName, Extention )
char *InputFileName;
char *Extention;
{
return( getvbfiggenmap( InputFileName, Extention, (vbmap_list *)0 ) );
}
/*------------------------------------------------------------\
| |
| getvbpkg |
| |
\------------------------------------------------------------*/
void getvbpkg( FileName, Extention )
char *FileName;
char *Extention;
{
vbfig_list *VbhFigure;
FILE *File;
char Buffer[ 512 ];
char LogicalName[ 512 ];
char PhysicalName[ 512 ];
long LineNumber;
if ( FileName == (char *)0 ) return;
File = mbkfopen( FileName, "pkg", "r" );
if ( File != (FILE *)0 )
{
LineNumber = 0;
while ( fgets( Buffer, 512, File ) != (char *)0 )
{
LineNumber++;
if ( Buffer[ 0 ] == '#' ) continue;
if ( sscanf( Buffer, "%s : %s\n", LogicalName, PhysicalName ) == 2 )
{
VbhFigure = getvbfiggenmap( PhysicalName, Extention, (vbmap_list *)0 );
if ( ! VbhFigure->PACKAGE )
{
fprintf( stdout, "ERROR file %s is not a package\n", PhysicalName );
autexit( 1 );
}
VbhFigure->NAME = namealloc( LogicalName );
}
else
{
fprintf( stdout, "ERROR syntax error line %ld, in file %s\n", LineNumber, FileName );
autexit( 1 );
}
}
}
else
{
fprintf( stdout, "Error opening package file list %s\n", FileName );
autexit( 1 );
}
}

View File

@ -0,0 +1,516 @@
/*------------------------------------------------------------\
| |
| 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 : vbl_util.c */
/* date : Sep 14 1992 */
/* version : v100 */
/* author : Pirouz BAZARGAN SABET, M.HANAFI */
/* description : This file contains some utility functions : */
/* vbl_error , vbl_y_error, vbl_toolbug, vbl_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 VBH_H
#include "vbl_utype.h"
#include "vbl_util.h"
char VBL_ERRFLG = 0; /* if = 1 no structure is made */
char *VBL_FILENAME = (char *)0;
long VBL_LINNUM = 1; /* file's line number */
int VBL_NUMPTP = 0; /* file's line number */
int VBL_NUMCHOICE = 0;
vbfig_list *VBL_HEADFIG = (vbfig_list *)0;
vbmap_list *VBL_GENMAP = (vbmap_list *)0;
char *vbl_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 *vbl_func_std_logic_arith[] =
{
"abs",
"shl",
"shr",
"conv_integer",
"conv_unsigned",
"conv_signed",
"conv_std_logic_vector",
"ext",
"sxt",
NULL
};
char *vbl_func_std_numeric_std[] =
{
"shift_left",
"shift_right",
"rotate_left",
"rotate_right",
"resize",
"to_integer",
"to_unsigned",
"to_signed",
NULL
};
/* ###--------------------------------------------------------------### */
/* function : vbl_toolbug */
/* ###--------------------------------------------------------------### */
void vbl_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 : vbl_message */
/* ###--------------------------------------------------------------### */
void vbl_message (code,str1,nmb1)
int code;
char *str1;
int nmb1;
{
switch (code)
{
case 1:
(void) fprintf(stderr,"USAGE is vbl [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,"vbl_message : code %d unknown.\n",code);
}
}
/* ###--------------------------------------------------------------### */
/* function : vbl_error */
/* ###--------------------------------------------------------------### */
void vbl_error (code,str1)
int code;
char *str1;
{
VBL_ERRFLG++;
if (code < 100)
(void)fprintf (stderr,"Error %d line %ld in file %s :",code,VBL_LINNUM, VBL_FILENAME);
else
{
if (code < 200)
(void)fprintf (stderr,"Error %d :",code);
}
switch (code)
{
case 1:
(void) fprintf (stderr,"`%s` is incompatible with the entity name\n",str1);
break;
case 2:
(void) fprintf (stderr,"bad entity declaration\n");
break;
case 3:
(void) fprintf (stderr,"bad port clause declaration\n");
break;
case 4:
(void) fprintf (stderr,"port `%s` already declared\n",str1);
break;
case 5:
(void) fprintf (stderr,"illegal port declaration\n");
break;
case 6:
(void) fprintf (stderr,"bad port declaration\n");
break;
case 7:
(void) fprintf (stderr,"`%s` is incompatible with the architecture name\n",str1);
break;
case 8:
(void) fprintf (stderr,"bad architecture declaration\n");
break;
case 9:
(void) fprintf (stderr,"illegal declaration\n");
break;
case 10:
(void) fprintf (stderr,"symbol `%s` already declared\n",str1);
break;
case 11:
(void) fprintf (stderr,"illegal signal declaration\n");
break;
case 17:
(void) fprintf (stderr,"`%s` unknown port or signal\n",str1);
break;
case 18:
(void) fprintf (stderr,"illegal concurrent statement\n");
break;
case 19:
(void) fprintf (stderr,"label `%s` already used\n",str1);
break;
case 20:
(void) fprintf (stderr,"`%s` is incompatible with the block's label\n",str1);
break;
case 21:
(void) fprintf (stderr,"input port `%s` cannot be assigned\n",str1);
break;
case 22:
(void) fprintf (stderr,"unguarded signal `%s` assigned by guarded assignment\n",str1);
break;
case 23:
(void) fprintf (stderr,"guarded signal `%s` assigned by unguarded assignment\n",str1);
break;
case 25:
(void) fprintf (stderr,"some choices missing in the selected signal assignment\n");
break;
case 26:
(void) fprintf (stderr,"output port `%s` cannot be read\n",str1);
break;
case 27:
(void) fprintf (stderr," '%s' only variable can be assigned with ':=' \n",str1);
break;
case 28:
(void) fprintf (stderr,"duplicate choice in selected signal assignment\n");
break;
case 30:
(void) fprintf (stderr,"illegal use of OTHERS in selected signal assignment\n");
break;
case 31:
(void) fprintf (stderr,"illegal use of OTHERS in case 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,"signal `%s` used out of declared range\n",str1);
break;
case 38:
(void) fprintf (stderr,"width or/and type mismatch %s\n",str1);
break;
case 39:
(void) fprintf (stderr,"signal `%s` assigned more than once\n",str1);
break;
case 40:
(void) fprintf (stderr,"signal `%s` never assigned\n",str1);
break;
case 41:
(void) fprintf (stderr,"usage of GUARD statement outside a block not permitted\n");
break;
case 68:
(void) fprintf (stderr,"BEPOR type is unknown\n");
break;
case 73:
(void) fprintf (stderr,"`%s` is not a bit string litteral\n",str1);
break;
case 74:
(void) fprintf (stderr,"bad generic declaration\n");
break;
case 75:
(void) fprintf (stderr,"bad generic element\n");
break;
case 76:
(void) fprintf (stderr,"`%s`: when expression must be a constant\n",str1);
break;
case 77:
(void) fprintf (stderr,"illegal generic declaration\n");
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 81:
(void) fprintf (stderr,"internal signal not allowed `%s`\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 85:
(void) fprintf (stderr,"when choice is empty in case statement \n");
break;
case 86:
(void) fprintf (stderr,"illegal variable declaration\n");
break;
case 87:
(void) fprintf (stderr,"illegal type declaration\n");
break;
case 94:
(void) fprintf (stderr,"The %s instruction is not accepted in the VHDL SUBSET \n",str1);
break;
case 95:
(void) fprintf (stderr,"`%s` is incompatible with the loop's label\n",str1);
break;
case 96:
(void) fprintf (stderr,"A process with sensitivity list cannot have WAIT statements\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 112:
(void) fprintf (stderr,"multiple driver on guarded signal `%s`\n",str1);
break;
case 113:
(void) fprintf (stderr,"bad subprogram declaration\n");
break;
case 114:
(void) fprintf (stderr,"illegal aggregate\n");
break;
case 115:
(void) fprintf (stderr,"illegal function declaration\n");
break;
case 116:
(void) fprintf (stderr,"function `%s` already declared\n",str1);
break;
case 117:
(void) fprintf (stderr,"procedure `%s` already declared\n",str1);
break;
case 118:
(void) fprintf (stderr,"unknown procedure or function `%s`\n",str1);
break;
case 119:
(void) fprintf (stderr,"illegal procedure call `%s`\n",str1);
break;
case 120:
(void) fprintf (stderr,"illegal return statement\n");
break;
case 121:
(void) fprintf (stderr,"illegal for statement\n");
break;
case 122:
(void) fprintf (stderr,"illegal qualified expression\n");
break;
case 123:
(void) fprintf (stderr,"such array type definition is not supported\n");
break;
case 124:
(void) fprintf (stderr,"bad association list (%s)\n",str1);
break;
case 125:
(void) fprintf (stderr,"unknown model name (%s)\n",str1);
break;
case 126:
(void) fprintf (stderr,"bad generic declaration\n");
break;
case 127:
(void) fprintf (stderr,"unknown package %s\n", str1 );
break;
case 128:
(void) fprintf (stderr,"`%s` is incompatible with the package name\n",str1);
break;
case 129:
(void) fprintf (stderr,"bad package body declaration\n");
break;
default:
(void) fprintf (stderr,"syntax error\n");
break;
}
if (VBL_ERRFLG > VBL_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 : vbl_y_error */
/* ###--------------------------------------------------------------### */
void vbl_y_error (str)
char *str;
{
VBL_ERRFLG++;
(void)fprintf (stderr,"Error line %ld : %s\n",VBL_LINNUM,str);
}

View File

@ -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 : vbl_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 `vbl_util.c` */
/* */
/* ###--------------------------------------------------------------### */
#define VBL_MXRDFN 30
extern long VBL_LINNUM; /* file's line number */
extern char VBL_ERRFLG; /* Error flag */
extern char VBL_CURFIL[]; /* current file name */

View File

@ -0,0 +1,61 @@
/*------------------------------------------------------------\
| |
| 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 : vbl_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;
char dyn_val;
};

File diff suppressed because it is too large Load Diff