This commit is contained in:
parent
3fc2bb448b
commit
ea4f18199c
|
@ -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/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
|
||||
])
|
|
@ -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
|
|
@ -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 );
|
||||
}
|
|
@ -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
|
|
@ -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
|
@ -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 */
|
|
@ -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
|
@ -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();
|
||||
|
|
@ -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();
|
||||
|
|
@ -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 );
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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 */
|
|
@ -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
Loading…
Reference in New Issue