This commit is contained in:
parent
500f9334aa
commit
6e10725924
|
@ -0,0 +1 @@
|
||||||
|
SUBDIRS = src man3
|
|
@ -0,0 +1,46 @@
|
||||||
|
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/04/04 14:54:47 ludo Exp $
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
AC_INIT(src/beh.h)
|
||||||
|
AM_INIT_AUTOMAKE(beh, 1.11)
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_C_CONST
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
|
AM_ALLIANCE
|
||||||
|
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
src/Makefile
|
||||||
|
man3/Makefile
|
||||||
|
])
|
|
@ -0,0 +1,12 @@
|
||||||
|
man_MANS = \
|
||||||
|
beh.3 beh_addbiabl.3 beh_delbereg.3 beh_frebemsg.3 beh_rmvbeaux.3 \
|
||||||
|
beh_addbeaux.3 beh_addbinod.3 beh_delberin.3 beh_frebeout.3 beh_rmvbebus.3 \
|
||||||
|
beh_addbebus.3 beh_debug.3 beh_delbiabl.3 beh_frebepor.3 beh_rmvbebux.3 \
|
||||||
|
beh_addbebux.3 beh_delbeaux.3 beh_delbinod.3 beh_frebereg.3 beh_rmvbefig.3 \
|
||||||
|
beh_addbefig.3 beh_delbebus.3 beh_depend.3 beh_freberin.3 beh_rmvbegen.3 \
|
||||||
|
beh_addbegen.3 beh_delbebux.3 beh_error.3 beh_frebiabl.3 beh_rmvbemsg.3 \
|
||||||
|
beh_addbemsg.3 beh_delbefig.3 beh_frebeaux.3 beh_frebinod.3 beh_rmvbeout.3 \
|
||||||
|
beh_addbeout.3 beh_delbegen.3 beh_frebebus.3 beh_getgenva.3 beh_rmvbepor.3 \
|
||||||
|
beh_addbepor.3 beh_delbemsg.3 beh_frebebux.3 beh_makbdd.3 beh_rmvbereg.3 \
|
||||||
|
beh_addbereg.3 beh_delbeout.3 beh_frebefig.3 beh_makgex.3 beh_rmvberin.3 \
|
||||||
|
beh_addberin.3 beh_delbepor.3 beh_frebegen.3 beh_message.3
|
|
@ -0,0 +1,152 @@
|
||||||
|
.\" $Id: beh.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh.2 108 Feb 15 1995 UPMC; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH 3 "October 1, 1997" "ASIM/LIP6" "cao\-vlsi reference manual"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBBEH\fP \- Generic behavioural data structures
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBBEH\fP is a generic data structure supporting vlsi concepts.
|
||||||
|
It allows representation of a behavioral description in a data structure.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
The goal of \fBBEH\fP is to define an ad hoc single data structure (object),
|
||||||
|
with well known fixed meaning for each concept manipulated within a behavioural
|
||||||
|
description. So any tools that needs to work with a behavioral view can be
|
||||||
|
build upon it using these structures.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
For each object (data structure), a set of functions has been defined in order
|
||||||
|
to add, delete or access it. These functions are defined in a low\-level library
|
||||||
|
\fIlibBeh108.a\fP. Some other functions are higher level. They are defined in a
|
||||||
|
high\-level library \fIlibBhl108.a\fP. There are also some parsers\-drivers.
|
||||||
|
A pareser reads a behavioural description file in a given format and build up a
|
||||||
|
complete \fBBEH\fP data base. A driver creates a text file in a given
|
||||||
|
behavioural description format from a \fBBEH\fP data base. A VHDL
|
||||||
|
parser\-driver is available in the \fIlibBvl103.a\fP library.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
The behavioural view envolves the following notions:
|
||||||
|
|
||||||
|
.TP 20
|
||||||
|
\fIfigure\fP
|
||||||
|
behavioural representation of a circuit (see \fBBEFIG\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIport list\fP
|
||||||
|
ordered list of the circuit's logical ports (see \fBBEPOR\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIgeneric\fP
|
||||||
|
a global data (constants) relative to a circuit other than logical ports (see
|
||||||
|
\fBBEGEN\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIsimple output\fP
|
||||||
|
a simple output port of the circuit (see \fBBEOUT\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIbused output\fP
|
||||||
|
a bused output port of the circuit (see \fBBEBUS\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIinput\fP
|
||||||
|
an input port of the circuit (see \fBBERIN\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIinternal register\fP
|
||||||
|
an internal memorizing element (see \fBBEREG\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIinternal signal\fP
|
||||||
|
an internal simple signal of the circuit (see \fBBEAUX\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIinternal bus\fP
|
||||||
|
an internal bused signal of the circuit (see \fBBEBUX\fP).
|
||||||
|
.TP 20
|
||||||
|
\fIassert\fP
|
||||||
|
a condition, noticed by the circuit designer, that insures a correct usage of
|
||||||
|
the circuit. The validity of these conditions is to be checked continuously at
|
||||||
|
run time (see \fBBEMSG\fP).
|
||||||
|
|
||||||
|
.PP
|
||||||
|
In order to use \fBBEH\fP, concepts on use of libraries are needed. And, since
|
||||||
|
these libraries are under development, the code is subject to change.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
To enable work, a static version of each library is always present for the
|
||||||
|
user. Libraries and header files are suffixed by a number (the library's
|
||||||
|
version). The programmer can prefer to work with an earlier version of a
|
||||||
|
library rather than the most recent one. However, it is recommended to adapt
|
||||||
|
softwares to libraries as soon as possible in order to spotlight potential
|
||||||
|
compatibility problems before old libraries are removed.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
A \fImakefile\fP is necessary for all \fBBEH\fP applications.
|
||||||
|
This is required because any soft must be easily recompilable, and knowing
|
||||||
|
the needed libraries for a \fBBEH\fP based program is not an easy matter.
|
||||||
|
It can't be achieved an other way, so do use \fImakefile\fP.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
For each behavioural description format a parser and a driver have been
|
||||||
|
developed . These are organized in as many seperate libraries as description
|
||||||
|
format. So if a parser or driver changes it is not needed to recompile
|
||||||
|
\fBBEH\fP. Only a relink of the application is needed.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
In terms of software organization, \fBBEH\fP is splitted into two libraries
|
||||||
|
for the basic functions, a header file for structures and variable declarations,
|
||||||
|
and , up to now, one parser\-driver library for VHDL format.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
It is to be noticed that library's version number is incremented when, at least,
|
||||||
|
one function composing the library has been modified. Therefore, \fBBEH\fP
|
||||||
|
libraries may evolve independently form each other.
|
||||||
|
|
||||||
|
.ta 1.5i 3i 4.5i
|
||||||
|
.PP
|
||||||
|
Here follows the list of the libraries and their contents.
|
||||||
|
|
||||||
|
.TP 20
|
||||||
|
libBeh108.a:
|
||||||
|
\fBbeh_addbefig, beh_addbeaux, beh_addbebux\fP,
|
||||||
|
\fBbeh_addbegen, beh_addbebus, beh_addbemsg\fP,
|
||||||
|
\fBbeh_addbeout, beh_addbepor, beh_addbereg\fP,
|
||||||
|
\fBbeh_addberin, beh_addbiabl, beh_addbinode\fP,
|
||||||
|
\fBbeh_delbefig, beh_delbeaux, beh_delbebux\fP,
|
||||||
|
\fBbeh_delbegen, beh_delbebus, beh_delbemsg\fP,
|
||||||
|
\fBbeh_delbeout, beh_delbepor, beh_delbereg\fP,
|
||||||
|
\fBbeh_delberin, beh_delbiabl, beh_delbinode\fP,
|
||||||
|
\fBbeh_frebefig, beh_frebeaux, beh_frebebux\fP,
|
||||||
|
\fBbeh_frebegen, beh_frebebus, beh_frebemsg\fP,
|
||||||
|
\fBbeh_frebeout, beh_frebepor, beh_frebereg\fP,
|
||||||
|
\fBbeh_freberin, beh_frebiabl, beh_frebinode\fP,
|
||||||
|
\fBbeh_rmvbefig, beh_rmvbeaux, beh_rmvbebux\fP,
|
||||||
|
\fBbeh_rmvbegen, beh_rmvbebus, beh_rmvbemsg\fP,
|
||||||
|
\fBbeh_rmvbeout, beh_rmvbepor, beh_rmvbereg\fP,
|
||||||
|
\fBbeh_rmvberin\fP
|
||||||
|
|
||||||
|
.TP 20
|
||||||
|
libBhl108.a:
|
||||||
|
\fBbeh_debug\fP
|
||||||
|
|
||||||
|
.PP
|
||||||
|
The libraries are organized in such a way that no cycle can appear through
|
||||||
|
calls. It means that if a given library a function calls another function
|
||||||
|
in another library, then none of the functions of this one does call any
|
||||||
|
function that belongs to the first library.
|
||||||
|
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
In order to use BEH libraries, one needs something like that in its
|
||||||
|
\fImakefile\fP:
|
||||||
|
|
||||||
|
.RS
|
||||||
|
HEADER = -I/labo/include
|
||||||
|
.br
|
||||||
|
LIB = -L/labo/lib -lBeh108 -lBhl108 -lBvl109 -llog200 -lMut315
|
||||||
|
.RE
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
mbk(1), log(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbeaux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbeaux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeaux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbebus.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbebus.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebus.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbebux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbebux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbefig.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbefig.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbefig.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbegen.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbegen.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbegen.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbemsg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbemsg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbemsg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbeout.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbeout.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeout.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbepor.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbepor.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbepor.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbereg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbereg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbereg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addberin.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addberin.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funberin.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbiabl.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbiabl.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbiabl.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_addbinod.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_addbinod.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbinod.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,133 @@
|
||||||
|
.\" $Id: beh_debug.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_debug.3 109 Oct 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH_DEBUG 3 "October 1, 1997" "ASIM/LIP6" "BHL functions"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBbeh_debug\fP \- BEH structures displayer\-debugger
|
||||||
|
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
void beh_debug (pnt, type)
|
||||||
|
void *pnt;
|
||||||
|
char *type;
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH PARAMETERS
|
||||||
|
.PP
|
||||||
|
.TP 10
|
||||||
|
\fIpnt\fP
|
||||||
|
pointer of the structure to be displayed
|
||||||
|
.TP 10
|
||||||
|
\fItype\fP
|
||||||
|
name of the structure to be displayed. \fItype\fP can be any of "befig",
|
||||||
|
"beout", "bereg", "bemsg", "bepor", "begen", "berin", "bebus", "beaux",
|
||||||
|
"bebux", "biabl", "binode", "beder", "bequad", "abl", "integer", "long",
|
||||||
|
"short", "character", "ptype", "chain"
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
When called, \fBbeh_debug()\fP displaies the structure pointed by
|
||||||
|
\fIpnt\fP then, prints the line:
|
||||||
|
|
||||||
|
.RS
|
||||||
|
COMMAND >>
|
||||||
|
.RE
|
||||||
|
|
||||||
|
and waits for a command being entered by the user. If \fIpnt\fP is a NULL
|
||||||
|
pointer or \fItype\fP doesn\'t represent a known structure, \fBbeh_debug()\fP
|
||||||
|
exits without making any action.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
To display the structure, \fBbeh_debug()\fP prints a line per field. Fields
|
||||||
|
containing immediate value (integer, character, string, ...) are displayed
|
||||||
|
in the following form:
|
||||||
|
|
||||||
|
.RS
|
||||||
|
name_of_the_field : value_of_the_field
|
||||||
|
.RE
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Fields containing a pointer are marked by the symbol \fB\->\fP. If the field
|
||||||
|
contains a NULL pointer, the field is displayed as:
|
||||||
|
|
||||||
|
.RS
|
||||||
|
-> name_of_the_field :
|
||||||
|
.RE
|
||||||
|
|
||||||
|
In the other case, \fBbeh_debug()\fP prints :
|
||||||
|
|
||||||
|
.RS
|
||||||
|
-> name_of_the_field : available
|
||||||
|
.RE
|
||||||
|
|
||||||
|
.PP
|
||||||
|
Two kinds of command are accepted by the displayer.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
A command can be the name of a field containing a pointer. The command is
|
||||||
|
accepted only if the pointer is not a NULL pointer (field displayed as
|
||||||
|
"available"). When the debugger receives such a command, it first pushes the
|
||||||
|
current structure on its stack then, displaies the structure pointed by the
|
||||||
|
named field.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
The second kind of commands are predefined commands :
|
||||||
|
|
||||||
|
.RS
|
||||||
|
.TP 10
|
||||||
|
\fB_exit\fP
|
||||||
|
to exit from the debugger
|
||||||
|
.TP 10
|
||||||
|
\fB_up\fP
|
||||||
|
to return to the previous structure
|
||||||
|
.TP 10
|
||||||
|
\fB_stop\fP
|
||||||
|
to put a stop mark on the current structure
|
||||||
|
.TP 10
|
||||||
|
\fB_top\fP
|
||||||
|
to return to the first structure (pointed by \fIpnt\fP)
|
||||||
|
.TP 10
|
||||||
|
\fB_back\fP
|
||||||
|
to return to the last structure marked with a stop mark
|
||||||
|
.TP 10
|
||||||
|
\fB_save\fP
|
||||||
|
to save the current structure in a static table. At most 10 structures may
|
||||||
|
be saved. (example : "_save 1" saves the current structure in the entry
|
||||||
|
number ! of the table)
|
||||||
|
.TP 10
|
||||||
|
\fB_jump\fP
|
||||||
|
to jump to a saved structure (example : "_jump 1" dislpaies the etructure
|
||||||
|
save in the entry number 1 of the table).
|
||||||
|
.TP 10
|
||||||
|
\fB_display\fP
|
||||||
|
displaies a field under a given format. (example : "_display next integer" displaies the field named \fInext\fP as an integer).
|
||||||
|
.RE
|
||||||
|
|
||||||
|
.PP
|
||||||
|
In addition to these commands, the command \fB.\fP (dot) can be used to repete
|
||||||
|
the last command.
|
||||||
|
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#include <beh109.h>
|
||||||
|
struct beout *beout_pnt;
|
||||||
|
|
||||||
|
beh_debug (beout_pnt , "beout");
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH NOTES
|
||||||
|
.PP
|
||||||
|
\fBbeh_debug()\fP uses an internal stack. The message \fI"stack overflow"\fP
|
||||||
|
is printed if too many structures have been pushed on the stack.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
beh(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbeaux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbeaux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeaux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbebus.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbebus.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebus.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbebux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbebux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbefig.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbefig.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbefig.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbegen.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbegen.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbegen.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbemsg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbemsg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbemsg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbeout.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbeout.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeout.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbepor.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbepor.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbepor.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbereg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbereg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbereg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delberin.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delberin.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funberin.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbiabl.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbiabl.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbiabl.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_delbinod.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_delbinod.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbinod.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
.\" $Id: beh_depend.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_depend.3 109 Oct 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH_DEPEND 3 "October 1, 1997" "ASIM/LIP6" "BHL functions"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBbeh_depend\fP \- compute forward dependencies in a description
|
||||||
|
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
void beh_depend (fig_pnt)
|
||||||
|
struct befig *fig_pnt;
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH PARAMETERS
|
||||||
|
.PP
|
||||||
|
.TP 10
|
||||||
|
\fIfig_pnt\fP
|
||||||
|
pointer of the BEFIG structure
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBbeh_depend()\fP analyzes the forward dependencies in a whole description
|
||||||
|
(a BEFIG). Forward dependency means, for each input finding out the set of
|
||||||
|
outputs that depend on it.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fIfig_pnt\fP represents the pointer of the description to be analyzed.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
After the analysis is acheived, \fBbeh_depend\fP produces a set of dependency
|
||||||
|
lists for each input. Each dependency list is a list of pointers to those
|
||||||
|
outputs that depends on the input. A seprate list is produced for each type
|
||||||
|
of outputs (BEOUT, BEREG, BEAUX, BEBUX, BEMSG, BEDLY, BEBUS).
|
||||||
|
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#include <beh109.h>
|
||||||
|
struct befig *befig_pnt;
|
||||||
|
|
||||||
|
beh_depend (befig_pnt);
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
beh(3), befig(3), berin(3), beaux(3), bereg(3), beh_debug(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
.\" $Id: beh_error.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_error.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH_ERROR 3 "October 1, 1997" "ASIM/LIP6" "BEH functions"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBbeh_error\fP
|
||||||
|
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
int beh_error (code, str)
|
||||||
|
int code;
|
||||||
|
char *str;
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH PARAMETERS
|
||||||
|
.PP
|
||||||
|
.TP 10
|
||||||
|
\fIcode\fP
|
||||||
|
error\'s code
|
||||||
|
.TP 10
|
||||||
|
\fIstr\fP
|
||||||
|
a string to be printed within the error message
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBbeh_error()\fP prints an error message on the standard error output
|
||||||
|
depending on an error code. The \fIcode\fP parameter determines the message
|
||||||
|
to be printed.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
beh(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebeaux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebeaux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeaux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebebus.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebebus.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebus.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebebux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebebux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebefig.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebefig.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbefig.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebegen.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebegen.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbegen.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebemsg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebemsg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbemsg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebeout.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebeout.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeout.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebepor.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebepor.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbepor.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebereg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebereg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbereg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_freberin.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_freberin.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funberin.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebiabl.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebiabl.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbiabl.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_frebinod.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_frebinod.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbinod.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_getgenva.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_getgenva.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbegen.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
.\" $Id: beh_makbdd.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_makbdd.3 109 Oct 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH_MAKBDD 3 "October 1, 1997" "ASIM/LIP6" "BHL functions"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBbeh_makbdd\fP \- create a BDD for each expression in a description
|
||||||
|
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
void beh_makbdd (fig_pnt)
|
||||||
|
struct befig *fig_pnt;
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH PARAMETERS
|
||||||
|
.PP
|
||||||
|
.TP 10
|
||||||
|
\fIfig_pnt\fP
|
||||||
|
pointer of the BEFIG structure
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBbeh_makbdd()\fP reads a whole behavioral description (a BEFIG) and
|
||||||
|
creates a BDD for each expression present in the description. For simple
|
||||||
|
signals (simple outputs - BEOUT, simple iternal signals - BEAUX, simple
|
||||||
|
internal delayed signals - BEDLY), one BDD is created which corresponds to
|
||||||
|
the expression that drives the signal. The BDD is stored into a specific
|
||||||
|
field in the corresponding structure (NODE). For signals that have multiple
|
||||||
|
expressions (registers, internal busses, bussed ports), one BDD is created
|
||||||
|
for each expression and stored in the corresponding field of the structure
|
||||||
|
(CNDNODE for conditions or VALNODE for the value).
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fIfig_pnt\fP represents the pointer of the description.
|
||||||
|
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#include <beh109.h>
|
||||||
|
struct befig *befig_pnt;
|
||||||
|
|
||||||
|
beh_makbdd (befig_pnt);
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
beh(3), befig(3), berin(3), beaux(3), bereg(3), beh_debug(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
.\" $Id: beh_makgex.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_makgex.3 109 Oct 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH_MAKGEX 3 "October 1, 1997" "ASIM/LIP6" "BHL functions"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBbeh_makgex\fP \- create a GEX for each expression in a description
|
||||||
|
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
void beh_makgex (fig_pnt)
|
||||||
|
struct befig *fig_pnt;
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH PARAMETERS
|
||||||
|
.PP
|
||||||
|
.TP 10
|
||||||
|
\fIfig_pnt\fP
|
||||||
|
pointer of the BEFIG structure
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBbeh_makgex()\fP reads a whole behavioral description (a BEFIG) and
|
||||||
|
creates a GEX for each expression present in the description. A GEX is
|
||||||
|
a structure able to represents binary expressions. It has almost the same
|
||||||
|
organization as an ABL but, like a BDD, uses an index to represent variables.
|
||||||
|
For simple signals (simple outputs - BEOUT, simple iternal signals - BEAUX,
|
||||||
|
simple internal delayed signals - BEDLY), one GEX is created which corresponds
|
||||||
|
to the expression that drives the signal. The GEX is stored into a specific
|
||||||
|
field in the corresponding structure (NODE). For signals that have multiple
|
||||||
|
expressions (registers, internal busses, bussed ports), one GEX is created
|
||||||
|
for each expression and stored in the corresponding field of the structure
|
||||||
|
(CNDNODE for conditions or VALNODE for the value).
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fIfig_pnt\fP represents the pointer of the description.
|
||||||
|
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
#include <beh109.h>
|
||||||
|
struct befig *befig_pnt;
|
||||||
|
|
||||||
|
beh_makgex (befig_pnt);
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
beh(3), befig(3), berin(3), beaux(3), bereg(3), beh_debug(3), beh_makbdd(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
.\" $Id: beh_message.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_message.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.TH BEH_MESSAGE 3 "October 1, 1997" "ASIM/LIP6" "BEH functions"
|
||||||
|
|
||||||
|
.so man1/alc_origin.1
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
\fBbeh_message\fP
|
||||||
|
|
||||||
|
.SH SYNOPSYS
|
||||||
|
.PP
|
||||||
|
.nf
|
||||||
|
void beh_message (code, str)
|
||||||
|
int code;
|
||||||
|
char *str;
|
||||||
|
.fi
|
||||||
|
|
||||||
|
.SH PARAMETERS
|
||||||
|
.PP
|
||||||
|
.TP 10
|
||||||
|
\fIcode\fP
|
||||||
|
error\'s code
|
||||||
|
.TP 10
|
||||||
|
\fIstr\fP
|
||||||
|
a string to be printed within the error message
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\fBbeh_message()\fP prints an error message on the standard output depending
|
||||||
|
on a message code. The \fIcode\fP parameter determines the message to be
|
||||||
|
printed.
|
||||||
|
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
beh (3), beh_error(3)
|
||||||
|
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbeaux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbeaux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeaux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbebus.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbebus.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebus.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbebux.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbebux.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbebux.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbefig.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbefig.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbefig.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbegen.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbegen.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbegen.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbemsg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbemsg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbemsg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbeout.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbeout.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbeout.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbepor.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbepor.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbepor.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvbereg.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvbereg.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funbereg.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
.\" $Id: beh_rmvberin.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
|
||||||
|
.\" @(#)beh_rmvberin.2 108 Feb 15 1995 UPMC ; Pirouz BAZARGAN SABET
|
||||||
|
.so man3/funberin.3
|
||||||
|
|
||||||
|
.so man1/alc_bug_report.1
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
CFLAGS = @ALLIANCE_CFLAGS@ \
|
||||||
|
-DALLIANCE_TOP=\"${ALLIANCE_TOP}\"
|
||||||
|
lib_LIBRARIES = libBeh.a
|
||||||
|
include_HEADERS = beh.h
|
||||||
|
libBeh_a_SOURCES = \
|
||||||
|
beh_addbeaux.c beh_delbebus.c beh_frebeaux.c beh_message.c \
|
||||||
|
beh_addbebus.c beh_delbebux.c beh_frebebus.c beh_rmvbeaux.c \
|
||||||
|
beh_addbebux.c beh_delbeder.c beh_frebebux.c beh_rmvbebus.c \
|
||||||
|
beh_addbeder.c beh_delbefig.c beh_frebeder.c beh_rmvbebux.c \
|
||||||
|
beh_addbefig.c beh_delbegen.c beh_frebefig.c beh_rmvbeder.c \
|
||||||
|
beh_addbegen.c beh_delbemsg.c beh_frebegen.c beh_rmvbefig.c \
|
||||||
|
beh_addbemsg.c beh_delbeout.c beh_frebemsg.c beh_rmvbegen.c \
|
||||||
|
beh_addbeout.c beh_delbepor.c beh_frebeout.c beh_rmvbemsg.c \
|
||||||
|
beh_addbepor.c beh_delbequad.c beh_frebepor.c beh_rmvbeout.c \
|
||||||
|
beh_addbequad.c beh_delbereg.c beh_frebereg.c beh_rmvbepor.c \
|
||||||
|
beh_addbereg.c beh_delberin.c beh_freberin.c beh_rmvbereg.c \
|
||||||
|
beh_addberin.c beh_delbiabl.c beh_frebiabl.c beh_rmvberin.c \
|
||||||
|
beh_addbiabl.c beh_delbinod.c beh_frebinod.c beh_rpldelayed.c \
|
||||||
|
beh_addbinod.c beh_dict.c beh_getgenva.c beh_rplstable.c \
|
||||||
|
beh_apdbeaux.c beh_error.c beh_getvers.c beh_toolbug.c \
|
||||||
|
beh_apdberin.c beh_expdelayed.c beh_globals.c beh_vhdlname.c \
|
||||||
|
beh_delbeaux.c beh_expstable.c beh.h beh_vhvector.c
|
|
@ -0,0 +1,351 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh111.h */
|
||||||
|
/* date : Mar 8 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* author : Pirouz BAZARGAN SABET */
|
||||||
|
/* contents : low level library for behavioural description */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#ifndef BEH_BEHDEF
|
||||||
|
#define BEH_BEHDEF
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* defines */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
#define BEH_GENERIC 203698 /* generic ptype code */
|
||||||
|
#define BEH_STABLE 0x01 /* description using STABLE */
|
||||||
|
|
||||||
|
#define BEH_NODE_BDD 0x01 /* fig TYPE : expr. BDD */
|
||||||
|
#define BEH_NODE_GEX 0x02 /* fig TYPE : expr. GEX */
|
||||||
|
#define BEH_NODE_VARLIST 0x04 /* fig TYPE : list of variables */
|
||||||
|
#define BEH_NODE_DERIVATE 0x08 /* fig TYPE : derivatives */
|
||||||
|
#define BEH_NODE_USER 0x10 /* fig TYPE : user expression */
|
||||||
|
#define BEH_NODE_QUAD 0x20 /* fig TYPE : QUAD structure */
|
||||||
|
|
||||||
|
#define BEH_CHK_DRIVERS 0x00000001 /* check output drivers */
|
||||||
|
#define BEH_CHK_EMPTY 0x00000002 /* check for empty architecture */
|
||||||
|
|
||||||
|
#define BEH_ARC_VHDL 0x01 /* fig FLAG : VHDL architecture */
|
||||||
|
#define BEH_ARC_C 0x02 /* fig FLAG : C architecture */
|
||||||
|
#define BEH_FIG_DEPEND 0x04 /* fig FLAG : forward depend. */
|
||||||
|
#define BEH_FIG_ZERODELAY 0x08 /* fig FLAG : no delay specified*/
|
||||||
|
|
||||||
|
#define BEH_CND_UNKNOWN 0x00 /* cond. precedence is unknown */
|
||||||
|
#define BEH_CND_PRECEDE 0x01 /* cond. has a precedence */
|
||||||
|
#define BEH_CND_NOPRECEDE 0x02 /* cond. has no precedence */
|
||||||
|
|
||||||
|
#define BEH_ASG_INERTIAL 0x10 /* assignment FLAG : inertial */
|
||||||
|
#define BEH_ASG_TRANSPORT 0x20 /* assignment FLAG : transport */
|
||||||
|
|
||||||
|
#define BEH_FIG__TIMEUNIT 0x07 /* fig TIME UNIT */
|
||||||
|
#define BEH_TU__FS 1 /* fig TIME UNIT : fs */
|
||||||
|
#define BEH_TU__PS 2 /* fig TIME UNIT : ps */
|
||||||
|
#define BEH_TU__NS 3 /* fig TIME UNIT : ns */
|
||||||
|
#define BEH_TU__US 4 /* fig TIME UNIT : us */
|
||||||
|
#define BEH_TU__MS 5 /* fig TIME UNIT : ms */
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* global variables */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
extern unsigned int BEH_LINNUM ;
|
||||||
|
|
||||||
|
extern unsigned char BEH_TIMEUNIT;
|
||||||
|
extern unsigned int BEH_TIMESTEP;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* structure definitions */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beden /* dictionary entry point */
|
||||||
|
{
|
||||||
|
struct beden *NEXT; /* next entry */
|
||||||
|
struct bedrd *DATA; /* data */
|
||||||
|
char *KEY ; /* key */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct bedrd /* dictionary record */
|
||||||
|
{
|
||||||
|
struct bedrd *NEXT ; /* next record */
|
||||||
|
char *KEY ; /* context key */
|
||||||
|
short FD0_VAL; /* data field */
|
||||||
|
short FD1_VAL; /* data field */
|
||||||
|
short FD2_VAL; /* data field */
|
||||||
|
short FD3_VAL; /* data field */
|
||||||
|
short FD4_VAL; /* data field */
|
||||||
|
short FD5_VAL; /* data field */
|
||||||
|
short FD6_VAL; /* data field */
|
||||||
|
long PNT_VAL; /* data field */
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct befig /* behaviour figure */
|
||||||
|
{
|
||||||
|
struct befig *NEXT ; /* next figure */
|
||||||
|
char *NAME ; /* figure's name */
|
||||||
|
struct bereg *BEREG ; /* list of internal signals (REGISTER) */
|
||||||
|
struct bemsg *BEMSG ; /* list of assert instructions */
|
||||||
|
struct berin *BERIN ; /* list of inputs (registers and ports) */
|
||||||
|
struct beout *BEOUT ; /* list of output ports */
|
||||||
|
struct bebus *BEBUS ; /* list of output ports (BUS) */
|
||||||
|
struct beaux *BEAUX ; /* list of internal signals */
|
||||||
|
struct beaux *BEDLY ; /* internal signals used for 'DELAYED */
|
||||||
|
struct bebux *BEBUX ; /* list of internal signals (BUS) */
|
||||||
|
struct bepor *BEPOR ; /* list of ports in reverse order */
|
||||||
|
struct begen *BEGEN ; /* list of generic data */
|
||||||
|
struct circuit *CIRCUI ; /* Pointer on Circuit for BDDs */
|
||||||
|
struct ptype *USER ; /* reserved for user's applications */
|
||||||
|
char ERRFLG ; /* error flag */
|
||||||
|
char TYPE ; /* description type */
|
||||||
|
unsigned char FLAG ; /* description flag */
|
||||||
|
unsigned char TIME_UNIT; /* time unit */
|
||||||
|
unsigned int TIME_STEP; /* minimum time step */
|
||||||
|
}
|
||||||
|
befig_list;
|
||||||
|
|
||||||
|
typedef struct bereg /* register */
|
||||||
|
{
|
||||||
|
struct bereg *NEXT ; /* next register */
|
||||||
|
char *NAME ; /* register's name */
|
||||||
|
struct biabl *BIABL ; /* list of drivers (ABL) */
|
||||||
|
struct binode *BINODE; /* list of drivers (BDD) */
|
||||||
|
}
|
||||||
|
bereg_list;
|
||||||
|
|
||||||
|
typedef struct bemsg /* assert instruction */
|
||||||
|
{
|
||||||
|
struct bemsg *NEXT ; /* next assertion */
|
||||||
|
char *LABEL ; /* instruction's label */
|
||||||
|
char *MESSAGE; /* assertion's message */
|
||||||
|
struct chain *ABL ; /* assertion's condition (ABL) */
|
||||||
|
struct node *NODE ; /* assertion's condition (BDD) */
|
||||||
|
char LEVEL ; /* severity level of the assertion */
|
||||||
|
}
|
||||||
|
bemsg_list;
|
||||||
|
|
||||||
|
typedef struct beout /* simple output port */
|
||||||
|
{
|
||||||
|
struct beout *NEXT; /* next output */
|
||||||
|
char *NAME; /* port's name */
|
||||||
|
struct chain *ABL ; /* port's equation (ABL) */
|
||||||
|
struct node *NODE; /* port's equation (BDD) */
|
||||||
|
unsigned int TIME; /* driver's delay */
|
||||||
|
unsigned char FLAG; /* driver's flag */
|
||||||
|
}
|
||||||
|
beout_list;
|
||||||
|
|
||||||
|
typedef struct bebus /* bussed output port */
|
||||||
|
{
|
||||||
|
struct bebus *NEXT ; /* next bus port */
|
||||||
|
char *NAME ; /* port's name */
|
||||||
|
struct biabl *BIABL ; /* list of drivers (ABL) */
|
||||||
|
struct binode *BINODE; /* list of drivers (BDD) */
|
||||||
|
char TYPE ; /* port's type : W or M */
|
||||||
|
}
|
||||||
|
bebus_list;
|
||||||
|
|
||||||
|
typedef struct beaux /* simple internal signal */
|
||||||
|
{
|
||||||
|
struct beaux *NEXT; /* next signal */
|
||||||
|
char *NAME; /* signal's name */
|
||||||
|
struct chain *ABL ; /* signal's equation (ABL) */
|
||||||
|
struct node *NODE; /* signal's equation (BDD) */
|
||||||
|
unsigned int TIME; /* driver's delay */
|
||||||
|
unsigned char FLAG; /* driver's flag */
|
||||||
|
}
|
||||||
|
beaux_list;
|
||||||
|
|
||||||
|
typedef struct bebux /* bussed internal signal */
|
||||||
|
{
|
||||||
|
struct bebux *NEXT ; /* next signal */
|
||||||
|
char *NAME ; /* signal's name */
|
||||||
|
struct biabl *BIABL ; /* list of drivers (ABL) */
|
||||||
|
struct binode *BINODE; /* list of drivers (BDD) */
|
||||||
|
char TYPE ; /* signal's type : W or M */
|
||||||
|
}
|
||||||
|
bebux_list;
|
||||||
|
|
||||||
|
typedef struct bepor /* port */
|
||||||
|
{
|
||||||
|
struct bepor *NEXT ; /* next port */
|
||||||
|
char *NAME ; /* port's name */
|
||||||
|
char DIRECTION; /* port's mode (I, O, B, Z, T) */
|
||||||
|
char TYPE ; /* port's type (B, M or W) */
|
||||||
|
}
|
||||||
|
bepor_list;
|
||||||
|
|
||||||
|
typedef struct biabl /* couple of ABL */
|
||||||
|
{
|
||||||
|
struct biabl *NEXT ; /* next couple */
|
||||||
|
char *LABEL ; /* driver's label */
|
||||||
|
struct chain *CNDABL; /* driver's connection condition (ABL) */
|
||||||
|
struct chain *VALABL; /* equation of driven value (ABL) */
|
||||||
|
struct ptype *USER ; /* user field */
|
||||||
|
unsigned int TIME ; /* driver's delay */
|
||||||
|
unsigned char FLAG ; /* condition and driver's flag */
|
||||||
|
}
|
||||||
|
biabl_list;
|
||||||
|
|
||||||
|
typedef struct binode /* couple of BDD */
|
||||||
|
{
|
||||||
|
struct binode *NEXT ; /* next figure */
|
||||||
|
struct node *CNDNODE; /* driver's connection condition (BDD) */
|
||||||
|
struct node *VALNODE; /* equation of driven value (BDD) */
|
||||||
|
unsigned int TIME ; /* driver's delay */
|
||||||
|
unsigned char FLAG ; /* driver's flag */
|
||||||
|
}
|
||||||
|
binode_list;
|
||||||
|
|
||||||
|
typedef struct berin /* primary inputs */
|
||||||
|
{
|
||||||
|
struct berin *NEXT; /* next input */
|
||||||
|
char *NAME; /* input's name */
|
||||||
|
struct chain *OUT_REF; /* dependent simple output */
|
||||||
|
struct chain *BUS_REF; /* dependent bussed output */
|
||||||
|
struct chain *AUX_REF; /* dependent simple internal signal */
|
||||||
|
struct chain *REG_REF; /* dependent internal register */
|
||||||
|
struct chain *BUX_REF; /* dependent bussed internal signal */
|
||||||
|
struct chain *MSG_REF; /* dependent assertion */
|
||||||
|
struct chain *DLY_REF; /* dependent delayed internal signal */
|
||||||
|
}
|
||||||
|
berin_list;
|
||||||
|
|
||||||
|
typedef struct begen /* generic */
|
||||||
|
{
|
||||||
|
struct begen *NEXT ; /* next generic */
|
||||||
|
char *NAME ; /* generic`s name */
|
||||||
|
char *TYPE ; /* generic type`s name */
|
||||||
|
void *VALUE; /* generic`s value */
|
||||||
|
}
|
||||||
|
begen_list;
|
||||||
|
|
||||||
|
typedef struct bequad
|
||||||
|
{
|
||||||
|
struct node *BDD ; /* expression using BDD format */
|
||||||
|
struct begex *GEX ; /* expression using GEX format */
|
||||||
|
struct chain *VARLIST ; /* variable list */
|
||||||
|
struct beder *DERIVATE; /* list of derivate BDDs */
|
||||||
|
void *USER ; /* user defined form of the expression */
|
||||||
|
}
|
||||||
|
bequad_list;
|
||||||
|
|
||||||
|
typedef struct beder
|
||||||
|
{
|
||||||
|
struct beder *NEXT ; /* next derivative */
|
||||||
|
struct node *BDD ; /* derivative BDD */
|
||||||
|
short INDEX; /* index of the variable */
|
||||||
|
}
|
||||||
|
beder_list;
|
||||||
|
|
||||||
|
typedef struct begex
|
||||||
|
{
|
||||||
|
struct chain *OPERAND; /* list of operands or NULL for term */
|
||||||
|
unsigned int TERM ; /* operator or terminal's index */
|
||||||
|
unsigned short TYPE ; /* expression's type index */
|
||||||
|
}
|
||||||
|
begex_list;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* functions */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
extern struct beaux *beh_addbeaux ();
|
||||||
|
extern struct bebux *beh_addbebux ();
|
||||||
|
extern struct bebus *beh_addbebus ();
|
||||||
|
extern struct befig *beh_addbefig ();
|
||||||
|
extern struct begen *beh_addbegen ();
|
||||||
|
extern struct bemsg *beh_addbemsg ();
|
||||||
|
extern struct beout *beh_addbeout ();
|
||||||
|
extern struct bepor *beh_addbepor ();
|
||||||
|
extern struct bereg *beh_addbereg ();
|
||||||
|
extern struct berin *beh_addberin ();
|
||||||
|
extern struct biabl *beh_addbiabl ();
|
||||||
|
extern struct binode *beh_addbinode ();
|
||||||
|
|
||||||
|
extern struct beaux *beh_apdbeaux ();
|
||||||
|
extern struct berin *beh_apdberin ();
|
||||||
|
|
||||||
|
extern struct beder *beh_addbeder ();
|
||||||
|
extern struct beaux *beh_delbeaux ();
|
||||||
|
extern struct bebux *beh_delbebux ();
|
||||||
|
extern struct bebus *beh_delbebus ();
|
||||||
|
extern struct befig *beh_delbefig ();
|
||||||
|
extern struct begen *beh_delbegen ();
|
||||||
|
extern struct bemsg *beh_delbemsg ();
|
||||||
|
extern struct beout *beh_delbeout ();
|
||||||
|
extern struct bepor *beh_delbepor ();
|
||||||
|
extern struct bereg *beh_delbereg ();
|
||||||
|
extern struct berin *beh_delberin ();
|
||||||
|
extern struct biabl *beh_delbiabl ();
|
||||||
|
extern struct binode *beh_delbinode ();
|
||||||
|
extern struct beder *beh_delbeder ();
|
||||||
|
extern void beh_delbequad ();
|
||||||
|
|
||||||
|
extern void beh_frebeaux ();
|
||||||
|
extern void beh_frebebux ();
|
||||||
|
extern void beh_frebebus ();
|
||||||
|
extern void beh_frebefig ();
|
||||||
|
extern void beh_frebegen ();
|
||||||
|
extern void beh_frebemsg ();
|
||||||
|
extern void beh_frebeout ();
|
||||||
|
extern void beh_frebepor ();
|
||||||
|
extern void beh_frebereg ();
|
||||||
|
extern void beh_freberin ();
|
||||||
|
extern void beh_frebiabl ();
|
||||||
|
extern void beh_frebinode ();
|
||||||
|
extern void beh_frebeder ();
|
||||||
|
|
||||||
|
extern struct beaux *beh_rmvbeaux ();
|
||||||
|
extern struct bebux *beh_rmvbebux ();
|
||||||
|
extern struct bebus *beh_rmvbebus ();
|
||||||
|
extern struct befig *beh_rmvbefig ();
|
||||||
|
extern struct begen *beh_rmvbegen ();
|
||||||
|
extern struct bemsg *beh_rmvbemsg ();
|
||||||
|
extern struct beout *beh_rmvbeout ();
|
||||||
|
extern struct bepor *beh_rmvbepor ();
|
||||||
|
extern struct bereg *beh_rmvbereg ();
|
||||||
|
extern struct berin *beh_rmvberin ();
|
||||||
|
extern struct beder *beh_rmvbeder ();
|
||||||
|
|
||||||
|
extern struct chain *beh_expstable ();
|
||||||
|
extern struct chain *beh_expdelayed ();
|
||||||
|
|
||||||
|
extern struct chain *beh_rplstable ();
|
||||||
|
extern struct chain *beh_rpldelayed ();
|
||||||
|
|
||||||
|
extern struct beden **beh_initab ();
|
||||||
|
extern void beh_addtab ();
|
||||||
|
extern long beh_chktab ();
|
||||||
|
extern void beh_fretab ();
|
||||||
|
|
||||||
|
extern unsigned int beh_error ();
|
||||||
|
extern void beh_message ();
|
||||||
|
extern void beh_toolbug ();
|
||||||
|
|
||||||
|
extern char *beh_vhdlname ();
|
||||||
|
extern char *beh_vhvector ();
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbeaux.c */
|
||||||
|
/* date : Feb 29 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbeaux */
|
||||||
|
/* description : create a BEAUX structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beaux *beh_addbeaux (lastbeaux, name, abl_expr, bdd_expr)
|
||||||
|
|
||||||
|
struct beaux *lastbeaux; /* pointer on the last beaux structure */
|
||||||
|
char *name ; /* simple internal signal's name */
|
||||||
|
struct chain *abl_expr ; /* simple internal signal's expr. (ABL) */
|
||||||
|
struct node *bdd_expr ; /* simple internal signal's expr. (BDD) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beaux *ptaux;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptaux = (struct beaux *) mbkalloc (sizeof(struct beaux));
|
||||||
|
ptaux->NAME = name ;
|
||||||
|
ptaux->TIME = 0 ;
|
||||||
|
ptaux->FLAG = BEH_ASG_INERTIAL;
|
||||||
|
ptaux->ABL = abl_expr ;
|
||||||
|
ptaux->NODE = bdd_expr ;
|
||||||
|
ptaux->NEXT = lastbeaux ;
|
||||||
|
|
||||||
|
return (ptaux);
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbebus.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbebus */
|
||||||
|
/* description : create a BEBUS structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bebus *beh_addbebus (lastbebus, name, biabl, binode, type)
|
||||||
|
|
||||||
|
struct bebus *lastbebus; /* pointer on the last bebus structure */
|
||||||
|
char *name; /* port's name */
|
||||||
|
struct biabl *biabl; /* port's drivers (ABL) */
|
||||||
|
struct binode *binode; /* port's drivers (BDD) */
|
||||||
|
char type; /* port type mark (M or W) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bebus *ptbus;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptbus = (struct bebus *) mbkalloc (sizeof(struct bebus));
|
||||||
|
ptbus->NAME = name;
|
||||||
|
ptbus->BIABL = biabl;
|
||||||
|
ptbus->BINODE = binode;
|
||||||
|
ptbus->TYPE = type;
|
||||||
|
ptbus->NEXT = lastbebus;
|
||||||
|
|
||||||
|
return (ptbus);
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbebux.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbebux */
|
||||||
|
/* description : create a BEBUX structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bebux *beh_addbebux (lastbebux, name, biabl, binode, type)
|
||||||
|
|
||||||
|
struct bebux *lastbebux; /* pointer on the last bebux structure */
|
||||||
|
char *name; /* signal's name */
|
||||||
|
struct biabl *biabl; /* signal's expression (ABL) */
|
||||||
|
struct binode *binode; /* signal's expression (BDD) */
|
||||||
|
char type; /* signal's type mark (M or W) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bebux *ptbux;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptbux = (struct bebux *) mbkalloc (sizeof(struct bebux));
|
||||||
|
ptbux->NAME = name;
|
||||||
|
ptbux->BIABL = biabl;
|
||||||
|
ptbux->BINODE = binode;
|
||||||
|
ptbux->TYPE = type;
|
||||||
|
ptbux->NEXT = lastbebux;
|
||||||
|
|
||||||
|
return (ptbux);
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbeder.c */
|
||||||
|
/* date : Mar 17 1995 */
|
||||||
|
/* version : v109 */
|
||||||
|
/* authors : Laurent VUILLEMIN */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbeder */
|
||||||
|
/* description : create a BEDER structure at the top of the list */
|
||||||
|
/* called func. : mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beder *beh_addbeder (last_beder, bdd_expr, index)
|
||||||
|
|
||||||
|
struct beder *last_beder;
|
||||||
|
struct node *bdd_expr ;
|
||||||
|
short index ;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beder *ptder;
|
||||||
|
|
||||||
|
ptder = (struct beder *) mbkalloc (sizeof(struct beder));
|
||||||
|
|
||||||
|
ptder->BDD = bdd_expr ;
|
||||||
|
ptder->INDEX = index ;
|
||||||
|
ptder->NEXT = last_beder;
|
||||||
|
|
||||||
|
return (ptder);
|
||||||
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbefig.c */
|
||||||
|
/* date : Mar 8 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbefig */
|
||||||
|
/* description : create an empty BEFIG structure at the top of the list*/
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct befig *beh_addbefig (lastbefig, name)
|
||||||
|
|
||||||
|
struct befig *lastbefig; /* pointer on the last befig structure */
|
||||||
|
char *name ; /* figure's name */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct befig *ptfig ;
|
||||||
|
unsigned char err_flg = 0;
|
||||||
|
|
||||||
|
ptfig = (struct befig *) mbkalloc (sizeof(struct befig));
|
||||||
|
|
||||||
|
ptfig->NAME = namealloc (name);
|
||||||
|
ptfig->BEREG = NULL ;
|
||||||
|
ptfig->BEMSG = NULL ;
|
||||||
|
ptfig->BERIN = NULL ;
|
||||||
|
ptfig->BEOUT = NULL ;
|
||||||
|
ptfig->BEBUS = NULL ;
|
||||||
|
ptfig->BEAUX = NULL ;
|
||||||
|
ptfig->BEDLY = NULL ;
|
||||||
|
ptfig->BEBUX = NULL ;
|
||||||
|
ptfig->BEPOR = NULL ;
|
||||||
|
ptfig->CIRCUI = NULL ;
|
||||||
|
ptfig->USER = NULL ;
|
||||||
|
ptfig->BEGEN = NULL ;
|
||||||
|
ptfig->ERRFLG = err_flg ;
|
||||||
|
ptfig->TYPE = 0 ;
|
||||||
|
ptfig->FLAG = 0 ;
|
||||||
|
ptfig->TIME_UNIT = BEH_TIMEUNIT ;
|
||||||
|
ptfig->TIME_STEP = BEH_TIMESTEP ;
|
||||||
|
ptfig->NEXT = lastbefig ;
|
||||||
|
|
||||||
|
return (ptfig);
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbegen.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbegen */
|
||||||
|
/* description : create a BEGEN structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct begen *beh_addbegen (lastbegen, name, type, value)
|
||||||
|
|
||||||
|
struct begen *lastbegen; /* pointer on the last begen structure */
|
||||||
|
char *name; /* generic's name */
|
||||||
|
char *type; /* generic's type mark */
|
||||||
|
void *value; /* generic's value */
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
struct begen *ptgen;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
type = namealloc (type);
|
||||||
|
|
||||||
|
ptgen = (struct begen *) mbkalloc (sizeof(struct begen));
|
||||||
|
ptgen->NAME = name;
|
||||||
|
ptgen->TYPE = type;
|
||||||
|
ptgen->VALUE = value;
|
||||||
|
ptgen->NEXT = lastbegen;
|
||||||
|
|
||||||
|
return (ptgen);
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbemsg.c */
|
||||||
|
/* date : Nov 6 1995 */
|
||||||
|
/* version : v109 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbemsg */
|
||||||
|
/* description : create BEMSG structure at the top the list */
|
||||||
|
/* called func. : mbkalloc, namealloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bemsg *beh_addbemsg (lastbemsg,label,level,message,abl_expr,bdd_expr)
|
||||||
|
|
||||||
|
struct bemsg *lastbemsg; /* pointer on the last bemsg structure */
|
||||||
|
char *label; /* assert's label */
|
||||||
|
char level; /* severity level (E or W) */
|
||||||
|
char *message; /* reported message */
|
||||||
|
struct chain *abl_expr; /* assert's condition (ABL) */
|
||||||
|
struct node *bdd_expr; /* assert's condition (BDD) */
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
struct bemsg *ptmsg;
|
||||||
|
|
||||||
|
label = namealloc (label);
|
||||||
|
|
||||||
|
ptmsg = (struct bemsg *) mbkalloc (sizeof(struct bemsg));
|
||||||
|
ptmsg->LABEL = label;
|
||||||
|
ptmsg->LEVEL = level;
|
||||||
|
ptmsg->MESSAGE = message;
|
||||||
|
ptmsg->ABL = abl_expr;
|
||||||
|
ptmsg->NODE = bdd_expr;
|
||||||
|
ptmsg->NEXT = lastbemsg;
|
||||||
|
|
||||||
|
return (ptmsg);
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbeout.c */
|
||||||
|
/* date : Feb 29 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbeout */
|
||||||
|
/* description : create a BEOUT structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beout *beh_addbeout (lastbeout, name, abl_expr, bdd_expr)
|
||||||
|
|
||||||
|
struct beout *lastbeout; /* pointer on the last beout structure */
|
||||||
|
char *name ; /* simple output port's name */
|
||||||
|
struct chain *abl_expr ; /* simple output port's expression (ABL)*/
|
||||||
|
struct node *bdd_expr ; /* simple output port's expression (BDD)*/
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beout *ptout;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptout = (struct beout *) mbkalloc (sizeof(struct beout));
|
||||||
|
ptout->NAME = name ;
|
||||||
|
ptout->ABL = abl_expr ;
|
||||||
|
ptout->TIME = 0 ;
|
||||||
|
ptout->FLAG = BEH_ASG_INERTIAL;
|
||||||
|
ptout->NODE = bdd_expr ;
|
||||||
|
ptout->NEXT = lastbeout ;
|
||||||
|
|
||||||
|
return (ptout);
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbepor.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbepor */
|
||||||
|
/* description : create a BEPOR structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bepor *beh_addbepor (lastbepor, name, dir, type)
|
||||||
|
|
||||||
|
struct bepor *lastbepor; /* pointer on the last bepor structure */
|
||||||
|
char *name; /* signal's name */
|
||||||
|
char dir; /* signal's mode (I, O, B, Z, or T) */
|
||||||
|
char type; /* signal'type mark (M or W) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bepor *ptbepor;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptbepor = (struct bepor *) mbkalloc (sizeof(struct bepor));
|
||||||
|
ptbepor->NAME = name;
|
||||||
|
ptbepor->DIRECTION = dir;
|
||||||
|
ptbepor->TYPE = type;
|
||||||
|
ptbepor->NEXT = lastbepor;
|
||||||
|
|
||||||
|
return (ptbepor);
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbequad.c */
|
||||||
|
/* date : Mar 17 1995 */
|
||||||
|
/* version : v000 */
|
||||||
|
/* authors : Laurent VUILLEMIN */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbequad */
|
||||||
|
/* description : create a BEQUAD structure at the top of the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bequad *beh_addbequad ( bdd_expr, gex_expr, var_list, der_list)
|
||||||
|
|
||||||
|
struct node *bdd_expr;
|
||||||
|
struct begex *gex_expr;
|
||||||
|
struct chain *var_list;
|
||||||
|
struct beder *der_list;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bequad *ptquad;
|
||||||
|
|
||||||
|
|
||||||
|
ptquad = (struct bequad *) mbkalloc (sizeof(struct bequad));
|
||||||
|
ptquad->BDD = bdd_expr;
|
||||||
|
ptquad->GEX = gex_expr;
|
||||||
|
ptquad->VARLIST = var_list;
|
||||||
|
ptquad->DERIVATE = der_list;
|
||||||
|
ptquad->USER = NULL;
|
||||||
|
return (ptquad);
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbereg.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbereg */
|
||||||
|
/* description : create a BEREG structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bereg *beh_addbereg (lastbereg, name, biabl, binode)
|
||||||
|
|
||||||
|
struct bereg *lastbereg; /* pointer on the last bereg structure */
|
||||||
|
char *name; /* register's name */
|
||||||
|
struct biabl *biabl; /* register's drivers (ABL) */
|
||||||
|
struct binode *binode; /* register's drivers (BDD) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bereg *ptreg;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptreg = (struct bereg *) mbkalloc (sizeof(struct bereg));
|
||||||
|
ptreg->NAME = name;
|
||||||
|
ptreg->BIABL = biabl;
|
||||||
|
ptreg->BINODE = binode;
|
||||||
|
ptreg->NEXT = lastbereg;
|
||||||
|
|
||||||
|
return (ptreg);
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addberin.c */
|
||||||
|
/* date : Sep 20 1994 */
|
||||||
|
/* version : v107 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addberin */
|
||||||
|
/* description : create a BERIN structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct berin *beh_addberin (lastberin, name)
|
||||||
|
|
||||||
|
struct berin *lastberin; /* pointer on the last berin structure */
|
||||||
|
char *name; /* signal's name */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct berin *ptrin;
|
||||||
|
|
||||||
|
name = namealloc (name);
|
||||||
|
|
||||||
|
ptrin = (struct berin *) mbkalloc (sizeof(struct berin));
|
||||||
|
ptrin->NAME = name;
|
||||||
|
ptrin->NEXT = lastberin;
|
||||||
|
|
||||||
|
ptrin->REG_REF = NULL;
|
||||||
|
ptrin->MSG_REF = NULL;
|
||||||
|
ptrin->AUX_REF = NULL;
|
||||||
|
ptrin->BUX_REF = NULL;
|
||||||
|
ptrin->BUS_REF = NULL;
|
||||||
|
ptrin->OUT_REF = NULL;
|
||||||
|
ptrin->DLY_REF = NULL;
|
||||||
|
|
||||||
|
return (ptrin);
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbiabl.c */
|
||||||
|
/* date : Feb 29 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbiabl */
|
||||||
|
/* description : create a BIABL structure at the top the list */
|
||||||
|
/* called func. : namealloc, mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct biabl *beh_addbiabl (lastbiabl, label, condition, value)
|
||||||
|
|
||||||
|
struct biabl *lastbiabl; /* pointer on the last biabl structure */
|
||||||
|
char *label ; /* block's label */
|
||||||
|
struct chain *condition; /* guard expression (ABL) */
|
||||||
|
struct chain *value ; /* value expression (ABL) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct biabl *ptbiabl;
|
||||||
|
|
||||||
|
ptbiabl = (struct biabl *) mbkalloc (sizeof(struct biabl));
|
||||||
|
|
||||||
|
ptbiabl->LABEL = label ;
|
||||||
|
ptbiabl->CNDABL = condition ;
|
||||||
|
ptbiabl->VALABL = value ;
|
||||||
|
ptbiabl->TIME = 0 ;
|
||||||
|
ptbiabl->FLAG = BEH_ASG_INERTIAL;
|
||||||
|
ptbiabl->USER = NULL ;
|
||||||
|
ptbiabl->NEXT = lastbiabl ;
|
||||||
|
|
||||||
|
return (ptbiabl);
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_addbinod.c */
|
||||||
|
/* date : Feb 29 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addbinode */
|
||||||
|
/* description : create a BINODE structure at the top the list */
|
||||||
|
/* called func. : mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct binode *beh_addbinode (lastbinode, condition, value)
|
||||||
|
|
||||||
|
struct binode *lastbinode; /* pointer on the last binode structure */
|
||||||
|
struct node *condition ; /* guard expression (BDD) */
|
||||||
|
struct node *value ; /* value expression (BDD) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct binode *ptbinode;
|
||||||
|
|
||||||
|
ptbinode = (struct binode *) mbkalloc (sizeof(struct binode));
|
||||||
|
ptbinode->TIME = 0 ;
|
||||||
|
ptbinode->FLAG = BEH_ASG_INERTIAL;
|
||||||
|
ptbinode->CNDNODE = condition ;
|
||||||
|
ptbinode->VALNODE = value ;
|
||||||
|
ptbinode->NEXT = lastbinode ;
|
||||||
|
|
||||||
|
return (ptbinode);
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_apdbeaux.c */
|
||||||
|
/* date : Dec 2 1999 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_apdbeaux */
|
||||||
|
/* description : append two lists of internal signals (BEAUX) */
|
||||||
|
/* called func. : none */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beaux *beh_apdbeaux (s1_aux, s2_aux)
|
||||||
|
|
||||||
|
struct beaux *s1_aux;
|
||||||
|
struct beaux *s2_aux;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beaux *pt_aux;
|
||||||
|
|
||||||
|
pt_aux = s2_aux;
|
||||||
|
if (pt_aux != NULL)
|
||||||
|
{
|
||||||
|
while (pt_aux->NEXT != NULL)
|
||||||
|
pt_aux = pt_aux->NEXT;
|
||||||
|
pt_aux->NEXT = s1_aux;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
s2_aux = s1_aux;
|
||||||
|
|
||||||
|
return (s2_aux);
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_apdberin.c */
|
||||||
|
/* date : Dec 2 1999 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_apdberin */
|
||||||
|
/* description : append two lists of input signals (BERIN) */
|
||||||
|
/* called func. : none */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct berin *beh_apdberin (s1_rin, s2_rin)
|
||||||
|
|
||||||
|
struct berin *s1_rin;
|
||||||
|
struct berin *s2_rin;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct berin *pt_rin;
|
||||||
|
|
||||||
|
pt_rin = s2_rin;
|
||||||
|
if (pt_rin != NULL)
|
||||||
|
{
|
||||||
|
while (pt_rin->NEXT != NULL)
|
||||||
|
pt_rin = pt_rin->NEXT;
|
||||||
|
pt_rin->NEXT = s1_rin;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
s2_rin = s1_rin;
|
||||||
|
|
||||||
|
return (s2_rin);
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbeaux.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbeaux */
|
||||||
|
/* description : delete a BEAUX structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, freeExpr */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beaux *beh_delbeaux (listbeaux, ptbeaux, mode)
|
||||||
|
|
||||||
|
struct beaux *listbeaux; /* list of beaux containing the object */
|
||||||
|
struct beaux *ptbeaux; /* pointer of the BEAUX to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beaux headaux;
|
||||||
|
struct beaux *ptlastaux;
|
||||||
|
|
||||||
|
if ((listbeaux != NULL) && (ptbeaux != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headaux.NEXT = listbeaux;
|
||||||
|
ptlastaux = &headaux;
|
||||||
|
while ((ptlastaux != NULL) && (ptlastaux->NEXT != ptbeaux))
|
||||||
|
ptlastaux = ptlastaux->NEXT;
|
||||||
|
|
||||||
|
if (ptlastaux != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if (ptbeaux->ABL != NULL)
|
||||||
|
(void) fprintf (stderr,"BEH_warning : beaux `%s` not empty\n",
|
||||||
|
ptbeaux->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
freeExpr (ptbeaux->ABL);
|
||||||
|
|
||||||
|
ptlastaux->NEXT = ptbeaux->NEXT;
|
||||||
|
mbkfree (ptbeaux);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbeaux = headaux.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbeaux);
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbebus.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbebus */
|
||||||
|
/* description : delete a BEBUS structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, beh_frebiabl, beh_frebinode */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bebus *beh_delbebus (listbebus, ptbebus, mode)
|
||||||
|
|
||||||
|
struct bebus *listbebus; /* list of bebus containing the object */
|
||||||
|
struct bebus *ptbebus; /* pointer of the BEBUS to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bebus headbus;
|
||||||
|
struct bebus *ptlastbus;
|
||||||
|
|
||||||
|
if ((listbebus != NULL) && (ptbebus != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headbus.NEXT = listbebus;
|
||||||
|
ptlastbus = &headbus;
|
||||||
|
while ((ptlastbus != NULL) && (ptlastbus->NEXT != ptbebus))
|
||||||
|
ptlastbus = ptlastbus->NEXT;
|
||||||
|
|
||||||
|
if (ptlastbus != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbebus->BIABL != NULL) || (ptbebus->BINODE != NULL))
|
||||||
|
(void) fprintf (stderr,"BEH_warning : bebus `%s` not empty\n",
|
||||||
|
ptbebus->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
beh_frebiabl (ptbebus->BIABL);
|
||||||
|
beh_frebinode (ptbebus->BINODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastbus->NEXT = ptbebus->NEXT;
|
||||||
|
mbkfree (ptbebus);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbebus = headbus.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbebus);
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbebux.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbebux */
|
||||||
|
/* description : delete a BEBUX structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, beh_frebiabl, beh_frebinode */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bebux *beh_delbebux (listbebux, ptbebux, mode)
|
||||||
|
|
||||||
|
struct bebux *listbebux; /* list of bebux containing the object */
|
||||||
|
struct bebux *ptbebux; /* pointer of the BEBUX to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bebux headbux;
|
||||||
|
struct bebux *ptlastbux;
|
||||||
|
|
||||||
|
if ((listbebux != NULL) && (ptbebux != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headbux.NEXT = listbebux;
|
||||||
|
ptlastbux = &headbux;
|
||||||
|
while ((ptlastbux != NULL) && (ptlastbux->NEXT != ptbebux))
|
||||||
|
ptlastbux = ptlastbux->NEXT;
|
||||||
|
|
||||||
|
if (ptlastbux != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbebux->BIABL != NULL) || (ptbebux->BINODE != NULL))
|
||||||
|
(void) fprintf (stderr,"BEH_warning : bebux `%s` not empty\n",
|
||||||
|
ptbebux->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
beh_frebiabl (ptbebux->BIABL);
|
||||||
|
beh_frebinode (ptbebux->BINODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastbux->NEXT = ptbebux->NEXT;
|
||||||
|
mbkfree (ptbebux);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbebux = headbux.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbebux);
|
||||||
|
}
|
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbeder.c */
|
||||||
|
/* date : Oct 25 1995 */
|
||||||
|
/* version : v109 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbeder */
|
||||||
|
/* description : delete a BEDER structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beder *beh_delbeder (listbeder, ptbeder, mode)
|
||||||
|
|
||||||
|
struct beder *listbeder; /* list of beder containing the object */
|
||||||
|
struct beder *ptbeder ; /* pointer of the beder to be deleted */
|
||||||
|
char mode ; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beder headder ;
|
||||||
|
struct beder *ptlastder;
|
||||||
|
|
||||||
|
if ((listbeder != NULL) && (ptbeder != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headder.NEXT = listbeder;
|
||||||
|
ptlastder = &headder;
|
||||||
|
|
||||||
|
while ((ptlastder != NULL) && (ptlastder->NEXT != ptbeder))
|
||||||
|
ptlastder = ptlastder->NEXT;
|
||||||
|
|
||||||
|
if (ptlastder != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbeder->BDD != NULL) )
|
||||||
|
(void) fprintf (stderr,"BEH_warning : beder not empty\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastder->NEXT = ptbeder->NEXT;
|
||||||
|
mbkfree (ptbeder);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbeder = headder.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbeder);
|
||||||
|
}
|
|
@ -0,0 +1,115 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbefig.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbefig */
|
||||||
|
/* description : delete a BEFIG structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N. */
|
||||||
|
/* called func. : mbkfree , beh_frebereg, beh_frebemsg, */
|
||||||
|
/* beh_freberin, beh_frebeout, beh_frebebus, */
|
||||||
|
/* beh_frebeaux, beh_frebebux, beh_frebepor, */
|
||||||
|
/* beh_frebegen, getptype */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct befig *beh_delbefig (listbefig, ptbefig, mode)
|
||||||
|
|
||||||
|
struct befig *listbefig; /* list of befig containing the object */
|
||||||
|
struct befig *ptbefig; /* pointer of the BEFIG to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct befig headfig;
|
||||||
|
struct befig *ptlastfig;
|
||||||
|
struct ptype *ptptype;
|
||||||
|
|
||||||
|
if ((listbefig != NULL) && (ptbefig != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headfig.NEXT = listbefig;
|
||||||
|
ptlastfig = &headfig;
|
||||||
|
while ((ptlastfig != NULL) && (ptlastfig->NEXT != ptbefig))
|
||||||
|
ptlastfig = ptlastfig->NEXT;
|
||||||
|
|
||||||
|
if (ptlastfig != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbefig->BEREG != NULL) || (ptbefig->BEMSG != NULL) ||
|
||||||
|
(ptbefig->BERIN != NULL) || (ptbefig->BEOUT != NULL) ||
|
||||||
|
(ptbefig->BEBUS != NULL) || (ptbefig->BEAUX != NULL) ||
|
||||||
|
(ptbefig->BEBUX != NULL) || (ptbefig->BEDLY != NULL) ||
|
||||||
|
(ptbefig->BEPOR != NULL) || (ptbefig->USER != NULL))
|
||||||
|
|
||||||
|
(void) fprintf (stderr,"BEH_warning : befig `%s` not empty\n",
|
||||||
|
ptbefig->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
beh_frebereg (ptbefig->BEREG);
|
||||||
|
beh_frebemsg (ptbefig->BEMSG);
|
||||||
|
beh_freberin (ptbefig->BERIN);
|
||||||
|
beh_frebeout (ptbefig->BEOUT);
|
||||||
|
beh_frebebus (ptbefig->BEBUS);
|
||||||
|
beh_frebeaux (ptbefig->BEAUX);
|
||||||
|
beh_frebeaux (ptbefig->BEDLY);
|
||||||
|
beh_frebebux (ptbefig->BEBUX);
|
||||||
|
beh_frebepor (ptbefig->BEPOR);
|
||||||
|
if ((ptptype = getptype (ptbefig->USER,BEH_GENERIC)) != NULL)
|
||||||
|
beh_frebegen (ptptype->DATA);
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastfig->NEXT = ptbefig->NEXT;
|
||||||
|
mbkfree (ptbefig);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbefig = headfig.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbefig);
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbegen.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbegen */
|
||||||
|
/* description : delete a BEGEN structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct begen *beh_delbegen (listbegen, ptbegen, mode)
|
||||||
|
|
||||||
|
struct begen *listbegen; /* list of begen containing the object */
|
||||||
|
struct begen *ptbegen; /* pointer of the BEGEN to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct begen headgen;
|
||||||
|
struct begen *ptlastgen;
|
||||||
|
|
||||||
|
if ((listbegen != NULL) && (ptbegen != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headgen.NEXT = listbegen;
|
||||||
|
ptlastgen = &headgen;
|
||||||
|
while ((ptlastgen != NULL) && (ptlastgen->NEXT != ptbegen))
|
||||||
|
ptlastgen = ptlastgen->NEXT;
|
||||||
|
|
||||||
|
if (ptlastgen != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if (ptbegen->VALUE != NULL)
|
||||||
|
(void) fprintf (stderr,"BEH_warning : begen `%s` not empty\n",
|
||||||
|
ptbegen->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
mbkfree (ptbegen->VALUE);
|
||||||
|
|
||||||
|
ptlastgen->NEXT = ptbegen->NEXT;
|
||||||
|
mbkfree (ptbegen);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbegen = headgen.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbegen);
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbemsg.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbemsg */
|
||||||
|
/* description : delete a BEMSG structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, freeExpr */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bemsg *beh_delbemsg (listbemsg, ptbemsg, mode)
|
||||||
|
|
||||||
|
struct bemsg *listbemsg; /* list of bemsg containing the object */
|
||||||
|
struct bemsg *ptbemsg; /* pointer of the BEMSG to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bemsg headmsg;
|
||||||
|
struct bemsg *ptlastmsg;
|
||||||
|
|
||||||
|
if ((listbemsg != NULL) && (ptbemsg != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headmsg.NEXT = listbemsg;
|
||||||
|
ptlastmsg = &headmsg;
|
||||||
|
while ((ptlastmsg != NULL) && (ptlastmsg->NEXT != ptbemsg))
|
||||||
|
ptlastmsg = ptlastmsg->NEXT;
|
||||||
|
|
||||||
|
if (ptlastmsg != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if (ptbemsg->ABL != NULL)
|
||||||
|
(void) fprintf (stderr,"BEH_warning : bemsg `%s` not empty\n",
|
||||||
|
ptbemsg->LABEL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
freeExpr (ptbemsg->ABL);
|
||||||
|
|
||||||
|
ptlastmsg->NEXT = ptbemsg->NEXT;
|
||||||
|
mbkfree (ptbemsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbemsg = headmsg.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbemsg);
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbeout.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbeout */
|
||||||
|
/* description : delete a BEOUT structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, freeExpr */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beout *beh_delbeout (listbeout, ptbeout, mode)
|
||||||
|
|
||||||
|
struct beout *listbeout; /* list of beout containing the object */
|
||||||
|
struct beout *ptbeout; /* pointer of the BEOUT to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beout headout;
|
||||||
|
struct beout *ptlastout;
|
||||||
|
|
||||||
|
if ((listbeout != NULL) && (ptbeout != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headout.NEXT = listbeout;
|
||||||
|
ptlastout = &headout;
|
||||||
|
while ((ptlastout != NULL) && (ptlastout->NEXT != ptbeout))
|
||||||
|
ptlastout = ptlastout->NEXT;
|
||||||
|
|
||||||
|
if (ptlastout != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if (ptbeout->ABL != NULL)
|
||||||
|
(void) fprintf (stderr,"BEH_warning : beout `%s` not empty\n",
|
||||||
|
ptbeout->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
freeExpr (ptbeout->ABL);
|
||||||
|
|
||||||
|
ptlastout->NEXT = ptbeout->NEXT;
|
||||||
|
mbkfree (ptbeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbeout = headout.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbeout);
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbepor.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbepor */
|
||||||
|
/* description : delete a BEPOR structure and return the pointer of */
|
||||||
|
/* the next object. */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bepor *beh_delbepor (listbepor, ptbepor)
|
||||||
|
|
||||||
|
struct bepor *listbepor; /* list of bepor containing the object */
|
||||||
|
struct bepor *ptbepor; /* pointer of the BEPOR to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bepor headpor;
|
||||||
|
struct bepor *ptlastpor;
|
||||||
|
|
||||||
|
if ((listbepor != NULL) && (ptbepor != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headpor.NEXT = listbepor;
|
||||||
|
ptlastpor = &headpor;
|
||||||
|
while ((ptlastpor != NULL) && (ptlastpor->NEXT != ptbepor))
|
||||||
|
ptlastpor = ptlastpor->NEXT;
|
||||||
|
|
||||||
|
if (ptlastpor != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
ptlastpor->NEXT = ptbepor->NEXT;
|
||||||
|
mbkfree (ptbepor);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbepor = headpor.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbepor);
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbequad.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Laurent VUILLEMIN */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbequad */
|
||||||
|
/* description : delete a BEQUAD structure. A warning is printed out */
|
||||||
|
/* if the object to be deleted is not empty when the */
|
||||||
|
/* mode is N */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_delbequad (listbequad, ptbequad, mode)
|
||||||
|
|
||||||
|
struct bequad *ptbequad; /* pointer of the BEQUAD to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
if (ptbequad != NULL)
|
||||||
|
{
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbequad->BDD != NULL) || (ptbequad->GEX != NULL) ||
|
||||||
|
(ptbequad->VARLIST != NULL) || (ptbequad->DERIVATE != NULL))
|
||||||
|
(void) fprintf (stderr, "BEH_warning : bequad not empty\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
beh_frebeder (ptbequad->DERIVATE);
|
||||||
|
freechain (ptbequad->VARLIST );
|
||||||
|
}
|
||||||
|
|
||||||
|
mbkfree (ptbequad);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbereg.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbereg */
|
||||||
|
/* description : delete a BEREG structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, beh_frebiabl, beh_frebinode */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct bereg *beh_delbereg (listbereg, ptbereg, mode)
|
||||||
|
|
||||||
|
struct bereg *listbereg; /* list of bereg containing the object */
|
||||||
|
struct bereg *ptbereg; /* pointer of the BEREG to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bereg headreg;
|
||||||
|
struct bereg *ptlastreg;
|
||||||
|
|
||||||
|
if ((listbereg != NULL) && (ptbereg != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headreg.NEXT = listbereg;
|
||||||
|
ptlastreg = &headreg;
|
||||||
|
while ((ptlastreg != NULL) && (ptlastreg->NEXT != ptbereg))
|
||||||
|
ptlastreg = ptlastreg->NEXT;
|
||||||
|
|
||||||
|
if (ptlastreg != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbereg->BIABL != NULL) || (ptbereg->BINODE != NULL))
|
||||||
|
(void) fprintf (stderr,"BEH_warning : bereg `%s` not empty\n",
|
||||||
|
ptbereg->NAME);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
beh_frebiabl (ptbereg->BIABL);
|
||||||
|
beh_frebinode (ptbereg->BINODE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastreg->NEXT = ptbereg->NEXT;
|
||||||
|
mbkfree (ptbereg);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbereg = headreg.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbereg);
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delberin.c */
|
||||||
|
/* date : Sep 20 1994 */
|
||||||
|
/* version : v107 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delberin */
|
||||||
|
/* description : delete a BERIN structure and return the pointer of */
|
||||||
|
/* the next object. */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct berin *beh_delberin (listberin, ptberin)
|
||||||
|
|
||||||
|
struct berin *listberin; /* list of berin containing the object */
|
||||||
|
struct berin *ptberin; /* pointer of the BERIN to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct berin headrin;
|
||||||
|
struct berin *ptlastrin;
|
||||||
|
|
||||||
|
if ((listberin != NULL) && (ptberin != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headrin.NEXT = listberin;
|
||||||
|
ptlastrin = &headrin;
|
||||||
|
while ((ptlastrin != NULL) && (ptlastrin->NEXT != ptberin))
|
||||||
|
ptlastrin = ptlastrin->NEXT;
|
||||||
|
|
||||||
|
if (ptlastrin != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
ptlastrin->NEXT = ptberin->NEXT;
|
||||||
|
mbkfree (ptberin);
|
||||||
|
}
|
||||||
|
|
||||||
|
listberin = headrin.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listberin);
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbiabl.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbiabl */
|
||||||
|
/* description : delete a BIABL structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree, freeExpr */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct biabl *beh_delbiabl (listbiabl, ptbiabl, mode)
|
||||||
|
|
||||||
|
struct biabl *listbiabl; /* list of biabl containing the object */
|
||||||
|
struct biabl *ptbiabl; /* pointer of the BIABL to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct biabl headabl;
|
||||||
|
struct biabl *ptlastabl;
|
||||||
|
|
||||||
|
if ((listbiabl != NULL) && (ptbiabl != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headabl.NEXT = listbiabl;
|
||||||
|
ptlastabl = &headabl;
|
||||||
|
while ((ptlastabl != NULL) && (ptlastabl->NEXT != ptbiabl))
|
||||||
|
ptlastabl = ptlastabl->NEXT;
|
||||||
|
|
||||||
|
if (ptlastabl != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbiabl->VALABL != NULL) || (ptbiabl->CNDABL != NULL))
|
||||||
|
(void) fprintf (stderr,"BEH_warning : biabl not empty\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
freeExpr (ptbiabl->VALABL);
|
||||||
|
freeExpr (ptbiabl->CNDABL);
|
||||||
|
freeptype(ptbiabl->USER);
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastabl->NEXT = ptbiabl->NEXT;
|
||||||
|
mbkfree (ptbiabl);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbiabl = headabl.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbiabl);
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_delbinod.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_delbinode */
|
||||||
|
/* description : delete a BINODE structure and return the pointer of */
|
||||||
|
/* the next object. A warning is printed out if the */
|
||||||
|
/* object to be deleted is not empty when the mode is N */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct binode *beh_delbinode (listbinode, ptbinode, mode)
|
||||||
|
|
||||||
|
struct binode *listbinode; /* list of binode containing the object */
|
||||||
|
struct binode *ptbinode; /* pointer of the BINODE to be deleted */
|
||||||
|
char mode; /* recursive delete or not (Y or N) */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct binode headnode;
|
||||||
|
struct binode *ptlastnode;
|
||||||
|
|
||||||
|
if ((listbinode != NULL) && (ptbinode != NULL))
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* Search the object to be deleted */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
headnode.NEXT = listbinode;
|
||||||
|
ptlastnode = &headnode;
|
||||||
|
while ((ptlastnode != NULL) && (ptlastnode->NEXT != ptbinode))
|
||||||
|
ptlastnode = ptlastnode->NEXT;
|
||||||
|
|
||||||
|
if (ptlastnode != NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* If the object doesn't exist return the list without */
|
||||||
|
/* modification. */
|
||||||
|
/* If the object has been found check the mode and, if asked */
|
||||||
|
/* delete pointed objects recursively. */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
if (mode == 'N')
|
||||||
|
{
|
||||||
|
if ((ptbinode->VALNODE != NULL) || (ptbinode->CNDNODE != NULL))
|
||||||
|
(void) fprintf (stderr,"BEH_warning : binode not empty\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
ptlastnode->NEXT = ptbinode->NEXT;
|
||||||
|
mbkfree (ptbinode);
|
||||||
|
}
|
||||||
|
|
||||||
|
listbinode = headnode.NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return(listbinode);
|
||||||
|
}
|
|
@ -0,0 +1,347 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_dict.c */
|
||||||
|
/* date : Jun 15 1994 */
|
||||||
|
/* version : v107 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
#define BEH_ALODFN 64
|
||||||
|
#define BEH_HSZDFN 307
|
||||||
|
|
||||||
|
static struct beden *BEH_DCEHED = NULL; /* free entries list */
|
||||||
|
static struct bedrd *BEH_DCRHED = NULL; /* free records list */
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addent */
|
||||||
|
/* description : add a new entry point to the dictionary */
|
||||||
|
/* called func. : mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
static struct beden *beh_addent (head, key)
|
||||||
|
|
||||||
|
struct beden *head;
|
||||||
|
char *key;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beden *entry;
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if (BEH_DCEHED == NULL)
|
||||||
|
{
|
||||||
|
BEH_DCEHED = (struct beden *)
|
||||||
|
mbkalloc (sizeof (struct beden) * BEH_ALODFN);
|
||||||
|
|
||||||
|
entry = BEH_DCEHED;
|
||||||
|
for (i=1 ; i<BEH_ALODFN ; i++)
|
||||||
|
{
|
||||||
|
entry->NEXT = entry + 1;
|
||||||
|
entry++;
|
||||||
|
}
|
||||||
|
entry->NEXT = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry = BEH_DCEHED;
|
||||||
|
BEH_DCEHED = BEH_DCEHED->NEXT;
|
||||||
|
|
||||||
|
entry->NEXT = head;
|
||||||
|
entry->DATA = NULL;
|
||||||
|
entry->KEY = key;
|
||||||
|
|
||||||
|
return (entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addrcd */
|
||||||
|
/* description : add a new record to the dictionary */
|
||||||
|
/* called func. : mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
static struct bedrd *beh_addrcd (head, key)
|
||||||
|
|
||||||
|
struct bedrd *head;
|
||||||
|
char *key;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bedrd *recrd;
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if (BEH_DCRHED == NULL)
|
||||||
|
{
|
||||||
|
BEH_DCRHED = (struct bedrd *)
|
||||||
|
mbkalloc (sizeof (struct bedrd) * BEH_ALODFN);
|
||||||
|
|
||||||
|
recrd = BEH_DCRHED;
|
||||||
|
for (i=1 ; i<BEH_ALODFN ; i++)
|
||||||
|
{
|
||||||
|
recrd->NEXT = recrd + 1;
|
||||||
|
recrd++;
|
||||||
|
}
|
||||||
|
recrd->NEXT = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
recrd = BEH_DCRHED;
|
||||||
|
BEH_DCRHED = BEH_DCRHED->NEXT;
|
||||||
|
|
||||||
|
recrd->NEXT = head;
|
||||||
|
recrd->FD0_VAL = 0;
|
||||||
|
recrd->FD1_VAL = 0;
|
||||||
|
recrd->FD2_VAL = 0;
|
||||||
|
recrd->FD3_VAL = 0;
|
||||||
|
recrd->FD4_VAL = 0;
|
||||||
|
recrd->FD5_VAL = 0;
|
||||||
|
recrd->FD6_VAL = 0;
|
||||||
|
recrd->PNT_VAL = 0;
|
||||||
|
recrd->KEY = key;
|
||||||
|
|
||||||
|
return (recrd);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_initab */
|
||||||
|
/* description : create a new dictionary */
|
||||||
|
/* called func. : mbkalloc */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct beden **beh_initab ()
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beden **head;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
head = (struct beden **)
|
||||||
|
mbkalloc (sizeof(struct beden *) * BEH_HSZDFN);
|
||||||
|
|
||||||
|
for (i=0 ; i<BEH_HSZDFN ; i++)
|
||||||
|
head[i] = NULL;
|
||||||
|
|
||||||
|
return (head);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_addtab */
|
||||||
|
/* description : save a data in a dictionary */
|
||||||
|
/* called func. : beh_addent, beh_addrcd */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_addtab (head, key_str, ctx_str, field, valu)
|
||||||
|
|
||||||
|
struct beden **head;
|
||||||
|
char *key_str;
|
||||||
|
char *ctx_str;
|
||||||
|
int field;
|
||||||
|
int valu;
|
||||||
|
|
||||||
|
{
|
||||||
|
int found = 0;
|
||||||
|
unsigned int key ;
|
||||||
|
unsigned int index ;
|
||||||
|
struct beden *entry_pnt ;
|
||||||
|
struct bedrd *recrd_pnt ;
|
||||||
|
|
||||||
|
key = ((unsigned int) key_str) + ((unsigned int) ctx_str);
|
||||||
|
|
||||||
|
index = key % BEH_HSZDFN;
|
||||||
|
entry_pnt = head [index];
|
||||||
|
|
||||||
|
while (entry_pnt != NULL)
|
||||||
|
{
|
||||||
|
if (entry_pnt->KEY == key_str)
|
||||||
|
{
|
||||||
|
found = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
entry_pnt = entry_pnt->NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (found == 0)
|
||||||
|
{
|
||||||
|
head [index] = beh_addent (head [index], key_str);
|
||||||
|
entry_pnt = head [index];
|
||||||
|
}
|
||||||
|
|
||||||
|
found = 0;
|
||||||
|
recrd_pnt = entry_pnt->DATA;
|
||||||
|
while (recrd_pnt != NULL)
|
||||||
|
{
|
||||||
|
if (recrd_pnt->KEY == ctx_str)
|
||||||
|
{
|
||||||
|
found = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
recrd_pnt = recrd_pnt->NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (found == 0)
|
||||||
|
{
|
||||||
|
entry_pnt->DATA = beh_addrcd (entry_pnt->DATA, ctx_str);
|
||||||
|
recrd_pnt = entry_pnt->DATA ;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (field)
|
||||||
|
{
|
||||||
|
case 0 :
|
||||||
|
recrd_pnt->FD0_VAL = valu; break;
|
||||||
|
case 1 :
|
||||||
|
recrd_pnt->FD1_VAL = valu; break;
|
||||||
|
case 2 :
|
||||||
|
recrd_pnt->FD2_VAL = valu; break;
|
||||||
|
case 3 :
|
||||||
|
recrd_pnt->FD3_VAL = valu; break;
|
||||||
|
case 4 :
|
||||||
|
recrd_pnt->FD4_VAL = valu; break;
|
||||||
|
case 5 :
|
||||||
|
recrd_pnt->FD5_VAL = valu; break;
|
||||||
|
case 6 :
|
||||||
|
recrd_pnt->FD6_VAL = valu; break;
|
||||||
|
case 7 :
|
||||||
|
recrd_pnt->PNT_VAL = valu; break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_chktab */
|
||||||
|
/* description : extract a data from a dictionary */
|
||||||
|
/* called func. : none */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
long beh_chktab (head, key_str, ctx_str, field)
|
||||||
|
|
||||||
|
struct beden **head ;
|
||||||
|
char *key_str;
|
||||||
|
char *ctx_str;
|
||||||
|
int field ;
|
||||||
|
|
||||||
|
{
|
||||||
|
int found = 0;
|
||||||
|
long valu = 0;
|
||||||
|
unsigned int key ;
|
||||||
|
unsigned int index ;
|
||||||
|
struct beden *entry_pnt;
|
||||||
|
struct bedrd *recrd_pnt;
|
||||||
|
|
||||||
|
key = ((unsigned int) key_str) + ((unsigned int) ctx_str);
|
||||||
|
|
||||||
|
index = key % BEH_HSZDFN;
|
||||||
|
entry_pnt = head [index];
|
||||||
|
|
||||||
|
while (entry_pnt != NULL)
|
||||||
|
{
|
||||||
|
if (entry_pnt->KEY == key_str)
|
||||||
|
{
|
||||||
|
found = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
entry_pnt = entry_pnt->NEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (found == 1)
|
||||||
|
{
|
||||||
|
found = 0;
|
||||||
|
recrd_pnt = entry_pnt->DATA;
|
||||||
|
while (recrd_pnt != NULL)
|
||||||
|
{
|
||||||
|
if (recrd_pnt->KEY == ctx_str)
|
||||||
|
{
|
||||||
|
found = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
recrd_pnt = recrd_pnt->NEXT;
|
||||||
|
}
|
||||||
|
if (found == 1)
|
||||||
|
{
|
||||||
|
switch (field)
|
||||||
|
{
|
||||||
|
case 0 :
|
||||||
|
valu = recrd_pnt->FD0_VAL; break;
|
||||||
|
case 1 :
|
||||||
|
valu = recrd_pnt->FD1_VAL; break;
|
||||||
|
case 2 :
|
||||||
|
valu = recrd_pnt->FD2_VAL; break;
|
||||||
|
case 3 :
|
||||||
|
valu = recrd_pnt->FD3_VAL; break;
|
||||||
|
case 4 :
|
||||||
|
valu = recrd_pnt->FD4_VAL; break;
|
||||||
|
case 5 :
|
||||||
|
valu = recrd_pnt->FD5_VAL; break;
|
||||||
|
case 6 :
|
||||||
|
valu = recrd_pnt->FD6_VAL; break;
|
||||||
|
case 7 :
|
||||||
|
valu = recrd_pnt->PNT_VAL; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (valu);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_fretab */
|
||||||
|
/* description : release a dictionary */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_fretab (pt_hash)
|
||||||
|
|
||||||
|
struct beden **pt_hash;
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beden *pt_entry ;
|
||||||
|
struct beden *pt_nxtentry;
|
||||||
|
struct bedrd *pt_record ;
|
||||||
|
int i ;
|
||||||
|
|
||||||
|
if (pt_hash != NULL)
|
||||||
|
{
|
||||||
|
for (i=0 ; i<BEH_HSZDFN ; i++)
|
||||||
|
{
|
||||||
|
if ((pt_entry = pt_hash [i]) != NULL)
|
||||||
|
{
|
||||||
|
while (pt_entry != NULL)
|
||||||
|
{
|
||||||
|
pt_record = pt_entry->DATA;
|
||||||
|
|
||||||
|
while (pt_record->NEXT != NULL)
|
||||||
|
pt_record = pt_record->NEXT;
|
||||||
|
|
||||||
|
pt_record->NEXT = BEH_DCRHED;
|
||||||
|
BEH_DCRHED = pt_entry->DATA;
|
||||||
|
|
||||||
|
pt_nxtentry = pt_entry->NEXT;
|
||||||
|
pt_entry->NEXT = BEH_DCEHED;
|
||||||
|
BEH_DCEHED = pt_entry;
|
||||||
|
pt_entry = pt_nxtentry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mbkfree (pt_hash);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_error.c */
|
||||||
|
/* date : Feb 29 2000 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_error */
|
||||||
|
/* description : print an errorr message */
|
||||||
|
/* called func. : none */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
unsigned int beh_error (code, str1)
|
||||||
|
|
||||||
|
int code;
|
||||||
|
char *str1;
|
||||||
|
|
||||||
|
{
|
||||||
|
fprintf (stderr, "BEH : Error %d: ", code);
|
||||||
|
|
||||||
|
switch (code)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
fprintf (stderr, "combinatory loop: `%s`\n", str1);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
fprintf (stderr, "cannot make bdd of empty expression\n");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
fprintf (stderr, "cannot find terminal `%s`\n", str1);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
fprintf (stderr, "illegal use of STABLE attribute\n");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
fprintf (stderr, "cannot simplify internal signals\n");
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
fprintf (stderr, "cannot make derivatives of expressions\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 40:
|
||||||
|
fprintf (stderr, "signal `%s` never assigned\n", str1);
|
||||||
|
break;
|
||||||
|
case 41:
|
||||||
|
fprintf (stderr, "`%s` has not an empty architecture\n", str1);
|
||||||
|
break;
|
||||||
|
case 67:
|
||||||
|
fprintf (stderr, "signal `%s` has unknwon type\n", str1);
|
||||||
|
break;
|
||||||
|
case 68:
|
||||||
|
fprintf (stderr, "port `%s` has unknwon type\n", str1);
|
||||||
|
break;
|
||||||
|
case 69:
|
||||||
|
fprintf (stderr, "port `%s` has unknwon mode\n", str1);
|
||||||
|
break;
|
||||||
|
case 70:
|
||||||
|
fprintf (stderr, "unknown time unit\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 100:
|
||||||
|
fprintf (stderr, "cannot find `%s`\n", str1);
|
||||||
|
break;
|
||||||
|
case 107:
|
||||||
|
fprintf (stderr, "cannot open result file\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
fprintf (stderr, "syntax error\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (1);
|
||||||
|
}
|
|
@ -0,0 +1,84 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_expdelayed.c */
|
||||||
|
/* date : Dec 2 1999 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_expdelayed */
|
||||||
|
/* description : create an expression equivalent to DELAYED attribute */
|
||||||
|
/* called func. : addchain */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct chain *beh_expdelayed (dly_nam)
|
||||||
|
|
||||||
|
char *dly_nam;
|
||||||
|
|
||||||
|
{
|
||||||
|
char *sig_nam;
|
||||||
|
char *stb_nam;
|
||||||
|
struct chain *stb_atm;
|
||||||
|
struct chain *opr_atm;
|
||||||
|
struct chain *operat ;
|
||||||
|
struct chain *pt_abl ;
|
||||||
|
unsigned int i ;
|
||||||
|
char buffer [128];
|
||||||
|
|
||||||
|
strcpy (buffer, dly_nam);
|
||||||
|
|
||||||
|
for (i=0 ; buffer [i] != '\0' ; i++)
|
||||||
|
{
|
||||||
|
if (buffer [i] == '\'')
|
||||||
|
{
|
||||||
|
buffer [i] = '\0';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sig_nam = namealloc (buffer);
|
||||||
|
|
||||||
|
strcat (buffer, "'stable");
|
||||||
|
stb_nam = namealloc (buffer);
|
||||||
|
|
||||||
|
stb_atm = addchain (NULL , stb_nam);
|
||||||
|
opr_atm = addchain (NULL , sig_nam);
|
||||||
|
operat = addchain (NULL , (char *) XOR );
|
||||||
|
pt_abl = addchain (NULL , stb_atm);
|
||||||
|
pt_abl = addchain (pt_abl, opr_atm);
|
||||||
|
pt_abl = addchain (pt_abl, operat );
|
||||||
|
|
||||||
|
operat = addchain (NULL , (char *) NOT );
|
||||||
|
pt_abl = addchain (NULL , pt_abl );
|
||||||
|
pt_abl = addchain (pt_abl, operat );
|
||||||
|
|
||||||
|
return (pt_abl);
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_expstable.c */
|
||||||
|
/* date : Dec 2 1999 */
|
||||||
|
/* version : v111 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_expstable */
|
||||||
|
/* description : create an expression equivalent to STABLE attribute */
|
||||||
|
/* called func. : addchain */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
struct chain *beh_expstable (sig_nam)
|
||||||
|
|
||||||
|
char *sig_nam;
|
||||||
|
|
||||||
|
{
|
||||||
|
char *dly_nam;
|
||||||
|
struct chain *dly_atm;
|
||||||
|
struct chain *opr_atm;
|
||||||
|
struct chain *operat ;
|
||||||
|
struct chain *pt_abl ;
|
||||||
|
char buffer [128];
|
||||||
|
|
||||||
|
sprintf (buffer, "%s'delayed", sig_nam);
|
||||||
|
dly_nam = namealloc (buffer);
|
||||||
|
|
||||||
|
dly_atm = addchain (NULL , dly_nam);
|
||||||
|
opr_atm = addchain (NULL , sig_nam);
|
||||||
|
operat = addchain (NULL , (char *) XOR );
|
||||||
|
pt_abl = addchain (NULL , dly_atm);
|
||||||
|
pt_abl = addchain (pt_abl, opr_atm);
|
||||||
|
pt_abl = addchain (pt_abl, operat );
|
||||||
|
|
||||||
|
operat = addchain (NULL , (char *) NOT );
|
||||||
|
pt_abl = addchain (NULL , pt_abl );
|
||||||
|
pt_abl = addchain (pt_abl, operat );
|
||||||
|
|
||||||
|
return (pt_abl);
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebeaux.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebeaux */
|
||||||
|
/* description : delete a list of BEAUX structures and all objects */
|
||||||
|
/* pointed by any os BEAUXs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebeaux (listbeaux)
|
||||||
|
|
||||||
|
struct beaux *listbeaux; /* list of beaux to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beaux *ptbeaux;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbeaux != NULL)
|
||||||
|
{
|
||||||
|
freeExpr (listbeaux->ABL);
|
||||||
|
|
||||||
|
ptbeaux = listbeaux;
|
||||||
|
listbeaux = listbeaux->NEXT;
|
||||||
|
mbkfree (ptbeaux);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebebus.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebebus */
|
||||||
|
/* description : delete a list of BEBUS structures and all objects */
|
||||||
|
/* pointed by any os BEBUSs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebebus (listbebus)
|
||||||
|
|
||||||
|
struct bebus *listbebus; /* list of bebus to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bebus *ptbebus;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbebus != NULL)
|
||||||
|
{
|
||||||
|
beh_frebiabl (listbebus->BIABL);
|
||||||
|
beh_frebinode (listbebus->BINODE);
|
||||||
|
|
||||||
|
ptbebus = listbebus;
|
||||||
|
listbebus = listbebus->NEXT;
|
||||||
|
mbkfree (ptbebus);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebebux.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebebux */
|
||||||
|
/* description : delete a list of BEBUX structures and all objects */
|
||||||
|
/* pointed by any os BEBUXs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebebux (listbebux)
|
||||||
|
|
||||||
|
struct bebux *listbebux; /* list of bebux to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bebux *ptbebux;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbebux != NULL)
|
||||||
|
{
|
||||||
|
beh_frebiabl (listbebux->BIABL);
|
||||||
|
beh_frebinode (listbebux->BINODE);
|
||||||
|
|
||||||
|
ptbebux = listbebux;
|
||||||
|
listbebux = listbebux->NEXT;
|
||||||
|
mbkfree (ptbebux);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebeder.c */
|
||||||
|
/* date : Mar 22 1995 */
|
||||||
|
/* version : v100 */
|
||||||
|
/* authors : Laurent VUILLEMIN */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebeder */
|
||||||
|
/* description : delete a list of BEDER structures and all objects */
|
||||||
|
/* pointed by any os BEDERs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebeder (listbeder)
|
||||||
|
|
||||||
|
struct beder *listbeder; /* list of beder to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct beder *ptbeder;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbeder != NULL)
|
||||||
|
{
|
||||||
|
ptbeder = listbeder;
|
||||||
|
listbeder = listbeder->NEXT;
|
||||||
|
mbkfree (ptbeder);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebefig.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebefig */
|
||||||
|
/* description : delete a list of BEFIG structures and all objects */
|
||||||
|
/* pointed by any os BEFIGs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebefig (listbefig)
|
||||||
|
|
||||||
|
struct befig *listbefig; /* list of befig to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct befig *ptbefig;
|
||||||
|
struct ptype *ptptype;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbefig != NULL)
|
||||||
|
{
|
||||||
|
beh_frebereg (listbefig->BEREG);
|
||||||
|
beh_frebemsg (listbefig->BEMSG);
|
||||||
|
beh_freberin (listbefig->BERIN);
|
||||||
|
beh_frebeout (listbefig->BEOUT);
|
||||||
|
beh_frebebus (listbefig->BEBUS);
|
||||||
|
beh_frebeaux (listbefig->BEAUX);
|
||||||
|
beh_frebeaux (listbefig->BEDLY);
|
||||||
|
beh_frebebux (listbefig->BEBUX);
|
||||||
|
beh_frebepor (listbefig->BEPOR);
|
||||||
|
if ((ptptype = getptype (listbefig->USER,BEH_GENERIC)) != NULL)
|
||||||
|
beh_frebegen (ptptype->DATA);
|
||||||
|
|
||||||
|
ptbefig = listbefig;
|
||||||
|
listbefig = listbefig->NEXT;
|
||||||
|
mbkfree (ptbefig);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebegen.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebegen */
|
||||||
|
/* description : delete a list of BEGEN structures and all objects */
|
||||||
|
/* pointed by any os BEGENs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebegen (listbegen)
|
||||||
|
|
||||||
|
struct begen *listbegen; /* list of begen to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct begen *ptbegen;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbegen != NULL)
|
||||||
|
{
|
||||||
|
mbkfree (listbegen->VALUE);
|
||||||
|
|
||||||
|
ptbegen = listbegen;
|
||||||
|
listbegen = listbegen->NEXT;
|
||||||
|
mbkfree (ptbegen);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* This file is part of the Alliance CAD System
|
||||||
|
* Copyright (C) Laboratoire LIP6 - Département ASIM
|
||||||
|
* Universite Pierre et Marie Curie
|
||||||
|
*
|
||||||
|
* Home page : http://www-asim.lip6.fr/alliance/
|
||||||
|
* E-mail support : mailto:alliance-support@asim.lip6.fr
|
||||||
|
*
|
||||||
|
* This library 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 : beh_frebemsg.c */
|
||||||
|
/* date : Sep 3 1993 */
|
||||||
|
/* version : v106 */
|
||||||
|
/* authors : Pirouz BAZARGAN SABET */
|
||||||
|
/* content : low-level function */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "mut.h"
|
||||||
|
#include "log.h"
|
||||||
|
#include "beh.h"
|
||||||
|
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
/* function : beh_frebemsg */
|
||||||
|
/* description : delete a list of BEMSG structures and all objects */
|
||||||
|
/* pointed by any os BEMSGs in the list */
|
||||||
|
/* called func. : mbkfree */
|
||||||
|
/* ###--------------------------------------------------------------### */
|
||||||
|
|
||||||
|
void beh_frebemsg (listbemsg)
|
||||||
|
|
||||||
|
struct bemsg *listbemsg; /* list of bemsg to be deleted */
|
||||||
|
|
||||||
|
{
|
||||||
|
struct bemsg *ptbemsg;
|
||||||
|
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
/* for each object of the list, first delete pointed objects */
|
||||||
|
/* then, delete the object itself */
|
||||||
|
/* ###------------------------------------------------------### */
|
||||||
|
|
||||||
|
while (listbemsg != NULL)
|
||||||
|
{
|
||||||
|
freeExpr (listbemsg->ABL);
|
||||||
|
|
||||||
|
ptbemsg = listbemsg;
|
||||||
|
listbemsg = listbemsg->NEXT;
|
||||||
|
mbkfree (ptbemsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue