This commit was generated by cvs2svn to track changes on a CVS vendor

branch.
This commit is contained in:
Frederic Petrot 2002-03-08 13:51:05 +00:00
commit 82492e5288
175 changed files with 28260 additions and 0 deletions

View File

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

View File

@ -0,0 +1,276 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
CC = @CC@
MAKEINFO = @MAKEINFO@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
SUBDIRS = src man1 man3
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
DIST_COMMON = Makefile.am Makefile.in configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --foreign mbk/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = mbk
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign mbk/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
for subdir in $(SUBDIRS); do \
if test "$$subdir" = .; then :; else \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \
|| exit 1; \
fi; \
done
info-am:
info: info-recursive
dvi-am:
dvi: dvi-recursive
check-am: all-am
check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
install-exec-am:
install-exec: install-exec-recursive
install-data-am:
install-data: install-data-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-recursive
uninstall-am:
uninstall: uninstall-recursive
all-am: Makefile
all-redirect: all-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs: installdirs-recursive
installdirs-am:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-tags mostlyclean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-tags clean-generic mostlyclean-am
clean: clean-recursive
distclean-am: distclean-tags distclean-generic clean-am
distclean: distclean-recursive
maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-recursive
.PHONY: install-data-recursive uninstall-data-recursive \
install-exec-recursive uninstall-exec-recursive installdirs-recursive \
uninstalldirs-recursive all-recursive check-recursive \
installcheck-recursive info-recursive dvi-recursive \
mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs-am \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,49 @@
dnl
/*
dnl This file is part of the Alliance CAD System
dnl Copyright (C) Laboratoire LIP6 - Département ASIM
dnl Universite Pierre et Marie Curie
dnl
dnl Home page : http://www-asim.lip6.fr/alliance/
dnl E-mail support : mailto:alliance-support@asim.lip6.fr
dnl
dnl This library is free software; you can redistribute it and/or modify it
dnl under the terms of the GNU Library General Public License as published
dnl by the Free Software Foundation; either version 2 of the License, or (at
dnl your option) any later version.
dnl
dnl Alliance VLSI CAD System is distributed in the hope that it will be
dnl useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
dnl Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License along
dnl with the GNU C Library; see the file COPYING. If not, write to the Free
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
dnl Purpose : Auto stuffing Alliance
dnl Almost ten years since I wrote this stuff, I just can't
dnl believe it
dnl Date : 01/02/2002
dnl Author : Frederic Petrot <Frederic.Petrot@lip6.fr>
dnl $Id: configure.in,v 1.1 2002/03/08 13:51:00 fred Exp $
dnl
dnl
AC_INIT(src/mut.h)
AM_INIT_AUTOMAKE(mbk, 4.2)
AC_PROG_INSTALL
AC_PROG_CC
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h malloc.h strings.h sys/time.h unistd.h)
AC_C_CONST
AC_TYPE_SIGNAL
AC_FUNC_VFORK
AC_PROG_RANLIB
AC_OUTPUT([
Makefile
src/Makefile
man1/Makefile
man3/Makefile
])

View File

@ -0,0 +1,54 @@
.\" $Id: MBK_CATAL_NAME.1,v 1.1 2002/03/08 13:51:04 fred Exp $
.\" @(#)MBK_CATAL_NAME.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_CATAL_NAME
.XE \}
.TH MBK_CATAL_NAME 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_CATAL_NAME \- define the mbk catalog file
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_CATAL_NAME file
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_CATAL_NAME\fP sets the name of the catalog file, that contains
information about the cells of a design. The catalog file syntax is a cellname,
plus a flag. The cellname may appear many times with a different flag.
.TP
Three flags are available:
C : tells the flatten functions to stop a this level.
.br
G : informs the user that this is a phantom cell.
.br
F : says that this is a feed through.
.br
The seaching mecanism first look in \fBMBK_WORK_LIB\fP(1), and then
in \fBMBK_CATA_LIB\fP(1). So it is recommended to have a catalog file in
the \fBMBK_WORK_LIB\fP(1).
.br
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_CATAL_NAME catalog
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,63 @@
.\" $Id: MBK_CATA_LIB.1,v 1.1 2002/03/08 13:51:04 fred Exp $
.\" @(#)MBK_CATA_LIB.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_CATA_LIB
.XE \}
.TH MBK_CATA_LIB 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_CATA_LIB \- define the mbk catalog directory
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_CATA_LIB path1:path2:path3:...:...:pathn
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_CATA_LIB\fP sets the directories that are to be searched thru for
reading. When instanciating a cell for example, the first cell that is found
with the given name is loaded in memory.
.br
The seaching mecanism first look in
\fBMBK_WORK_LIB\fP(1), and then, in path1 thru pathn, in the order defined by the
user when typing the setenv command.
This directories are considered to be, from a mbk point of view, read only.
.br
The pathi arguments must be actually accessible pathes on your host machine.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"mbk_fopen : can't open file 'unix_path/file.xx' thru directories : path1, ..., pathn"
.ft R
.RS
This occurs when either the unix path is irrelevent, or when the file doesn't
exist. This can also be a unix right problem if the file is not accessible for
reading, but this is seldom.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_CATA_LIB ~fred/crechan/uom:/labo/sclib
.ft R
.fi
.SH DIAGNOSTICS
Only the first path may be given with a '~', since the shell extents it only
when seen first.
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR MBK_WORK_LIB (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,33 @@
.\" $Id: MBK_FILTER_SFX.1,v 1.1 2002/03/08 13:51:04 fred Exp $
.TH MBK_FILTER_SFX 1 "October 1, 1999" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_FILTER_SFX \- define the input\/output filter suffixe.
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_FILTER_SFX\fP tells to Alliance the extention set by compression tools.
This variable must be set in order to activate filters. Note the leading points
of extention must be set if necessary.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
For compressed files with gzip :
setenv MBK_FILTER_SFX ".gz"
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR MBK_IN_FILTER (1),
.BR MBK_OUT_FILTER (1),
.BR mbkenv (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,39 @@
.\" $Id: MBK_IN_FILTER.1,v 1.1 2002/03/08 13:51:04 fred Exp $
.TH MBK_IN_FILTER 1 "October 1, 1999" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_IN_FILTER \- define the input filter
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_IN_FILTER\fP set the input filter for reading compressed Alliance files.
Filter is typically a string containing filename and options. This filter
must read compressed data flow on it standard input and write non compressed
data flow on it standard output. Files are taken in the first directory where
they are found according to the environment variable \fbMBK_CATA_LIB\fb. If a
file compressed version and a file non compressed version exist booth in the
same directory, the non compressed is opended, and a warning message is
supllyed. To activate filters, variable \fbMBK_FILTER_SFX\fb must be set.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
Opening compressed files with gzip :
setenv MBK_IN_FILTER "/asim/gnu/bin/gunzip -c"
setenv MBK_FILTER_SFX ".gz"
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR MBK_FILTER_SFX (1),
.BR MBK_OUT_FILTER (1),
.BR mbkenv (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,64 @@
.\" $Id: MBK_IN_LO.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_IN_LO.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_IN_LO
.XE \}
.TH MBK_IN_LO 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_IN_LO \- define the logical input format of mbk and genlib
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_IN_LO format
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_IN_LO\fP sets the logical input format of the mbk database. The database
will be filled with informations found in the given format file.
.TP
valid formats are :
\- \fBal\fP, \fBalx\fP, that are alliance logical formats
.br
\- \fBedi\fP, that is edif standart netlist format
.br
\- \fBhns\fP, \fBfns\fP, \fBfne\fP, \fBfdn\fP, \fBhdn\fP, that are vti logical
formats
.br
\- \fBspi\fP, that's spice netlist
.br
\- \fBvst\fP, that structural vhdl description
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"MBK_IN_LO : 'xxx' unknown format"
.ft R
.RS
The argument given to the setenv is not a legal logical input format for mbk.
You must changed it before any other action.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_IN_LO al
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR MBK_OUT_LO (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,58 @@
.\" $Id: MBK_IN_PH.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_IN_PH.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_IN_PH
.XE \}
.TH MBK_IN_PH 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_IN_PH \- define the physical input format of mbk and genlib
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_IN_PH format
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_IN_PH\fP sets the physical input format of the mbk data structure.
The data structure will be filled with informations found in the given format
file.
.TP
valid formats are :
\- \fBap\fP, alliance physical format
.br
\- \fBcp\fP, vti physical format
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"MBK_IN_PH : 'xxx' unknown format"
.ft R
.RS
The argument given to the setenv is not a legal physical input format for mbk.
You must changed it before any other action.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_IN_PH al
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR MBK_OUT_PH (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,39 @@
.\" $Id: MBK_OUT_FILTER.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.TH MBK_OUT_FILTER 1 "October 1, 1999" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_OUT_FILTER \- define the input filter
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_OUT_FILTER\fP sets the output filter for writting compressed Alliance
files. Filter is typically a string containing filename and options. This filter
must read non compressed data flow on it standard input and write compressed
data flow on it standard output. If a non compressed version of a file exist in
the same target directory the designer want the save a file's compressed
version, to ensure that file will be read later and not the non compressed one,
the non compressed file is DELETED. To activate filters, variable
MBK_FILTER_SFX must be set.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
Writing compressed files with gzip :
setenv MBK_OUT_FILTER "/asim/gnu/bin/gzip -c"
setenv MBK_FILTER_SFX ".gz"
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR MBK_FILTER_SFX (1),
.BR MBK_IN_FILTER (1),
.BR mbkenv (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,70 @@
.\" $Id: MBK_OUT_LO.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_OUT_LO.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_OUT_LO
.XE \}
.TH MBK_OUT_LO 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_OUT_LO \- define the logical output format of mbk and genlib
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_OUT_LO format
.ft R
.fi
.so man1/alc_origin.1
.SH PARAMETERS
.TP 20
\fIparam\fP
pwet
.SH DESCRIPTION
\fBMBK_OUT_LO\fP sets the logical output format of the mbk data structure.
The files resulting of the work on mbk will have the given format.
.TP
valid formats are :
\- \fBal\fP, \fBalx\fP, that are alliance logical formats
.br
\- \fBcct\fP, that is genrad hilo netlist format
.br
\- \fBedi\fP, that is edif standart netlist format
.br
\- \fBhns\fP, \fBfns\fP, \fBfne\fP, \fBfdn\fP, \fBhdn\fP, that are vti logical
formats
.br
\- \fBspi\fP, that's spice netlist
.br
\- \fBvst\fP, that is structural vhdl description
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"MBK_OUT_LO : 'xxx' unknown format"
.ft R
.RS
The argument given to the setenv is not a legal logical output format for mbk.
You must changed it before any other action.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_OUT_LO al
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR MBK_IN_LO (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,57 @@
.\" $Id: MBK_OUT_PH.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_OUT_PH.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_OUT_PH
.XE \}
.TH MBK_OUT_PH 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_OUT_PH \- define the physical output format of mbk and genlib
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_OUT_PH format
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_OUT_PH\fP sets the physical output format of the mbk data structure.
The files resulting of the work on mbk will have the given format.
.TP
valid formats are :
\- \fBap\fP, for alliance physical output
.br
\- \fBcp\fP, in order to obtain a vti physical file
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"MBK_OUT_PH : 'xxx' unknown format"
.ft R
.RS
The argument given to the setenv is not a legal physical output format for mbk.
You must changed it before any other action.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_OUT_PH al
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR MBK_IN_PH (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,43 @@
.\" $Id: MBK_SEPAR.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_SEPAR.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_SEPAR
.XE \}
.TH MBK_SEPAR 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_SEPAR \- define the separator character for hierarchy
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_SEPAR character
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_SEPAR\fP sets the character that is to be used while concatening
names, during a flatten, for example.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_SEPAR /
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR concatname (3),
.BR nameindex (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,30 @@
.\" Alliance man
.\" Author: Czo <Olivier.Sirol@lip6.fr>
.\" $Id: MBK_TRACE_GETENV.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.TH MBK_TRACE_GETENV 1 "$Date: 2002/03/08 13:51:05 $" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
\fBMBK_TRACE_GETENV\fP \- defines getenv() debug output
.so man1/alc_origin.1
.SH SYNOPSIS
.TP
.TP
Bourne Shell : \fBMBK_TRACE_GETENV\fR=\fIyes\fR; export MBK_TRACE_GETENV
.TP
C-shell : sentenv \f4MBK_TRACE_GETENV\fR \fIyes\fR
.SH DESCRIPTION
If \fBMBK_TRACE_GETENV\fR is set to "yes", all alliance tools will print debug info to stdout each time a getenv() syscall is done.
.SH OUTPUT EXAMPLE
.RS
\f4--- mbk --- mbkgetenv VH_PATSFX : pat\fR
.SH SEE ALSO
.PP
.BR mbk(1)
.BR mbkgetenv(3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,46 @@
.\" $Id: MBK_VDD.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_VDD.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_VDD
.XE \}
.TH MBK_VDD 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_VDD \- define the high level power name pattern
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_VDD powername
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_VDD\fP sets the pattern to be matched in a name to indicate a power
supply for the tools based upon \fBmbk\fP.
Its default value is \fBvdd\fP.
Therefore all names of the form `*\fBvdd\fP*' indicates a power supply.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_VDD vcc
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR isvdd (3),
.BR isvss (3),
.BR MBK_VSS (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,46 @@
.\" $Id: MBK_VSS.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_VSS.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_VSS
.XE \}
.TH MBK_VSS 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_VSS \- define the ground power name pattern
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_VSS groundname
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_VSS\fP sets the pattern to be matched in a name to indicate a
ground node for the tools based upon
Its default value is \fBvss\fP.
Therefore all names of the form `*\fBvss\fP*' in indicates a ground node.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_VSS gnd
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR isvss (3),
.BR isvdd (3),
.BR MBK_VDD (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,60 @@
.\" $Id: MBK_WORK_LIB.1,v 1.1 2002/03/08 13:51:05 fred Exp $
.\" @(#)MBK_WORK_LIB.8 2.11 91/08/22; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
MBK_WORK_LIB
.XE \}
.TH MBK_WORK_LIB 1 "October 1, 1997" "ASIM/LIP6" "MBK ENVIRONMENT VARIABLES"
.SH NAME
MBK_WORK_LIB \- define the mbk working directory
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
c-shell running
setenv MBK_WORK_LIB unix path
.ft R
.fi
.so man1/alc_origin.1
.SH DESCRIPTION
\fBMBK_WORK_LIB\fP sets the directory where are saved the results of an
invocation of mbk or genlib. This directory is considered to be, from an
mbk point of view, read and write.
.br
Also, when a file is searched for
reading, the first directory to be looked at is the \fBMBK_WORK_LIB\fP, and then
the one defined in \fBMBK_CATA_LIB\fP(1).
.br
The unix path argument must be a actually accessible path on your host machine.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"mbk_fopen : can't open file 'unix_path/file.xx'"
.ft R
.RS
This occurs when either the unix path is irrelevent, or when the file doesn't
exist if it is open for reading, or when you don't have the right on the file
or directory while trying to write it.
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
setenv MBK_WORK_LIB ~fred/crechan/uom
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR genlib (1),
.BR MBK_CATA_LIB (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,14 @@
man_MANS = MBK_CATAL_NAME.1 \
MBK_CATA_LIB.1 \
MBK_FILTER_SFX.1 \
MBK_IN_FILTER.1 \
MBK_IN_LO.1 \
MBK_IN_PH.1 \
MBK_OUT_FILTER.1 \
MBK_OUT_LO.1 \
MBK_OUT_PH.1 \
MBK_SEPAR.1 \
MBK_TRACE_GETENV.1 \
MBK_VDD.1 \
MBK_VSS.1 \
MBK_WORK_LIB.1

View File

@ -0,0 +1,133 @@
man_MANS = addcapa.3 \
addchain.3 \
addht.3 \
addhtitem.3 \
addlocon.3 \
addlofig.3 \
addloins.3 \
addlomodel.3 \
addlosig.3 \
addlotrs.3 \
addnum.3 \
addphcon.3 \
addphfig.3 \
addphins.3 \
addphref.3 \
addphseg.3 \
addphvia.3 \
addptype.3 \
alliancebanner.3 \
append.3 \
bigvia.3 \
chain.3 \
checkloconorder.3 \
concatname.3 \
defab.3 \
delchain.3 \
delht.3 \
delhtitem.3 \
dellocon.3 \
dellofig.3 \
delloins.3 \
dellosig.3 \
dellotrs.3 \
delnum.3 \
delphcon.3 \
delphfig.3 \
delphins.3 \
delphref.3 \
delphseg.3 \
delphvia.3 \
delptype.3 \
downstr.3 \
filepath.3 \
flattenlofig.3 \
flattenphfig.3 \
freechain.3 \
freelomodel.3 \
freenum.3 \
freeptype.3 \
gethtitem.3 \
getlocon.3 \
getlofig.3 \
getloins.3 \
getlomodel.3 \
getlosig.3 \
getphcon.3 \
getphfig.3 \
getphins.3 \
getphref.3 \
getptype.3 \
getsigname.3 \
givelosig.3 \
guessextdir.3 \
incatalog.3 \
incatalogdelete.3 \
incatalogfeed.3 \
incataloggds.3 \
instanceface.3 \
instr.3 \
isvdd.3 \
isvss.3 \
libpat.3 \
loadlofig.3 \
loadphfig.3 \
locon.3 \
lofig.3 \
lofigchain.3 \
log.3 \
loins.3 \
losig.3 \
lotrs.3 \
mbk.3 \
mbkalloc.3 \
mbkenv.3 \
mbkfopen.3 \
mbkfree.3 \
mbkgetenv.3 \
mbkps.3 \
mbkrealloc.3 \
mbksetautoackchld.3 \
mbkunlink.3 \
mbkwaitpid.3 \
mlodebug.3 \
mphdebug.3 \
namealloc.3 \
namefind.3 \
nameindex.3 \
naturalstrcmp.3 \
phcon.3 \
phfig.3 \
phins.3 \
phref.3 \
phseg.3 \
phvia.3 \
ptype.3 \
restorealldir.3 \
restoredirvbe.3 \
reverse.3 \
rflattenlofig.3 \
rflattenphfig.3 \
savelofig.3 \
savephfig.3 \
sethtitem.3 \
sortlocon.3 \
sortlosig.3 \
unflattenlofig.3 \
upstr.3 \
viewht.3 \
viewlo.3 \
viewlofig.3 \
viewlofigcon.3 \
viewloins.3 \
viewloinscon.3 \
viewlosig.3 \
viewlotrs.3 \
viewph.3 \
viewphcon.3 \
viewphfig.3 \
viewphins.3 \
viewphref.3 \
viewphseg.3 \
viewphvia.3 \
xyflat.3

View File

@ -0,0 +1,57 @@
.\" $Id: addcapa.3,v 1.1 2002/03/08 13:51:00 fred Exp $
.\" @(#)addcapa.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addcapa
.XE \}
.TH ADDCAPA 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addcapa \- add a capacitance to a signal
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void addcapa(ptsig, ctot)
losig_list \(**ptsig;
float ctot;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the signal in which the capacitance should be added
.TP
\fIctot\fP
Total capacitance
.SH DESCRIPTION
\fBaddcapa\fP add the \fIcapa\fP value to \fIptsig\->CAPA\fP.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void more_capa(pt, i, c)
lofig_list \(**pt;
long i;
float c;
{
addcapa(getlosig(pt, i), c);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR losig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,80 @@
.\" $Id: addchain.3,v 1.1 2002/03/08 13:51:00 fred Exp $
.\" @(#)addchain.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addchain
.XE
.XS4 \n%
.ti 0.2i
addchain
.XE4 \}
.TH ADDCHAIN 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
addchain \- create a \fBchain\fP and add it to a list
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
chain_list \(**addchain(pthead, ptdata)
chain_list \(**pthead;
void \(**ptdata;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpthead\fP
Pointer to a \fBchain_list\fP
.TP
\fIptdata\fP
Generic pointer to any kind of information
.SH DESCRIPTION
\fBaddchain\fP creates a new \fBchain\fP element and adds it to the
front of the list pointed to by \fIpthead\fP, and becomes itself the list head.
.br
The \fBchain_list\fPs are mosty used to create temporary lists of homogeneous
elements, for binary trees, and so on.
.br
The \fIptdata\fP points to any kind of list or may itself be a value, if proper
cast is performed at compilation time, and fills the \fIDATA\fP field of the
\fBchain\fP structure.
For details on the structure, see \fBchain\fR(3).
.SH RETURN VALUE
\fBaddchain\fP returns a pointer to the new head of list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
chain_list \(**get_external_connectors(ptfig)
lofig_list \(**ptfig;
{
locon_list \(**pt = ptfig\->LOCON;
chain_list \(**c = NULL; /\(** initialized for regularity \(**/
while (pt) {
if (pt\->TYPE == EXTERNAL)
c = addchain(c, (void \(**)pt)
pt = pt\->NEXT;
}
return c;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR chain (3),
.BR freechain (3),
.BR delchain (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,81 @@
.\" $Id: addht.3,v 1.1 2002/03/08 13:51:00 fred Exp $
.\" @(#)addht.2 7.01 92/08/22 ; Labo masi cao-vlsi; Author : Luc Burgun
.\" slightly modified by Fred Petrot for mbk adaptation on 22/06/92
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addht
.XE
.XS4 \n%
.ti 0.2i
addht
.XE4 \}
.TH ADDHT 3 "October 1, 1997" "ASIM/LIP6" "MBK HASH TABLE MANAGEMENT FUNCTIONS"
.SH NAME
addht \- create an hash table
.so man1/alc_origin.1
.SH SYNOPSYS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include "mut.h"
ht \(**addht(len)
unsigned int len;
.fi
.ft R
.SH PARAMETER
.TP 20
\fIlen\fP
Number of entries in the hash table
.SH DESCRIPTION
\fBaddht()\fP creates a new hash table in memory.
\fIlen\fP is an estimate of the maximum number of entries that the
table will contain.
This number may be automatically adjusted when using access functions
by a dynamic reallocation, in order to warranty fast access time.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
ht \(**sigHtable(ptfig) /\(** h table suitable for signals \(**/
lofig_list \(**ptfig;
{
losig_list \(**ptsig = ptfig->LOSIG;
unsigned int i = 0;
while (ptsig) {
i++;
ptsig = ptsig->NEXT;
}
return addht(i);
}
.ft R
.fi
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addht : \fIlen\fP is '0'"
.ft R
.RS
The hash table size cannot be zero, guess why!
.RE
.SH SEE ALSO
.BR mbk (1),
.BR delht (3),
.BR addhtitem (3),
.BR gethtitem (3),
.BR sethtitem (3),
.BR delhtitem (3),
.BR viewht (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,91 @@
.\" $Id: addhtitem.3,v 1.1 2002/03/08 13:51:00 fred Exp $
.\" @(#)addhtitem.2 7.01 92/08/22 ; Labo masi cao-vlsi; Author : Luc Burgun
.\" slightly modified by Fred Petrot for mbk adaptation on 22/06/92
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addhtitem
.XE
.XS4 \n%
.ti 0.2i
addhtitem
.XE4 \}
.TH ADDHTITEM 3 "October 1, 1997" "ASIM/LIP6" "MBK HASH TABLE MANAGEMENT FUNCTIONS"
.SH NAME
addhtitem \- adds a new item in a hash table.
.so man1/alc_origin.1
.SH SYNOPSYS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include "mut.h"
void addhtitem(table, key, value)
ht \(**table;
void \(**key;
int value;
.fi
.ft R
.SH PARAMETERS
.TP 20
\fItable\fP
Hash table pointer
.TP 20
\fIkey\fP
Key used by the hash coding function to add the item
.TP 20
\fIvalue\fP
Value associated with the key
.SH DESCRIPTION
\fBaddhtitem()\fP adds a new item in the hash table pointed to by \fItable\fP.
If the key already exists, the old value is changed to the new one.
\fIValue\fP must be distinct from \fBEMPTYHT\fP and \fBDELETEHT\fP.
The length of the table increases automatically when the length given
in \fBaddht()\fP leads to a performance shut down.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include "mut.h"
#include "mlo.h"
void conHenter(h, ptfig)
ht \(**h;
lofig_list \(**ptfig;
{
locon_list \(**ptcon;
/\(** since connector names are unique, add them without check \(**/
for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
addhtitem(h, ptcon->NAME, 0);
}
.fi
.ft R
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addhtitem impossible :
value is \fBEMPTYHT\fP or \fBDELETEHT\fP"
.ft R
.RS
The values \fBEMPTYHT\fP, \fI-1\fP, and \fBDELETEHT\fP, \fI-2\fP,
are reserved for internal use, sorry.
.SH DIAGNOSTICS
The value must be distinct from \fI-1\fP and \fI-2\fP.
.SH SEE ALSO
.BR mbk (1),
.BR addht (3),
.BR delht (3),
.BR gethtitem (3),
.BR sethtitem (3),
.BR delhtitem (3),
.BR viewht (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,111 @@
.\" $Id: addlocon.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addlocon.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addlocon
.XE
.XS2 \n%
.ti 0.2i
addlocon
.XE2 \}
.TH ADDLOCON 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addlocon \- create a logical connector
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
locon_list \(**addlocon(ptfig, name, ptsig, dir)
lofig_list \(**ptfig;
char \(**name;
losig_list \(**ptsig;
char dir;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the connector should be added
.TP
\fIname\fP
Name of the connector
.TP
\fIptsig\fP
Pointer on the signal linked to the connector
.TP
\fIdir\fP
Connector direction type
.SH DESCRIPTION
\fBaddlocon\fP creates a new figure connector called \fIname\fP and adds it
to the list of connectors pointed to by \fIptfig\->LOCON\fP.
The new connector is added in front of the list, and becomes itself the
list head.
.br
The parameters \fIname\fP, \fIptsig\fP, \fIdir\fP,
\fIwidth\fP fill respectivly the \fINAME\fP, \fISIG\fP and \fIDIR\fP
fields of the \fIlocon\fP structure. The name should be unique at a given
hierarchical level since it's the connector identifier.
.br
The field \fITYPE\fP is set to \fBEXTERNAL\fP since a cell connector is
beeing created. The instance connectors are builded up by the \fBaddloins\fP(3)
call. See \fBaddloins\fP(3) for details.
For a list of valid \fIdir\fP, see \fBlocon\fR(3).
.SH RETURN VALUE
\fBaddlocon\fP returns a pointer to the newly created connector.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addlocon impossible :
connector \fIname\fP already exists in figure \fIptfig\->NAME\fP"
.ft R
.RS
The \fIname\fP beeing the logical connector idenfier, two connectors may not
have the same name in a given figure.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addlocon impossible :
bad direction \fIdir\fP in \fIfigure ptfig\->NAME\fP"
.ft R
.RS
The \fIdir\fP does not have a legal value. For the set of legal values, see
\fIlocon\fP(3).
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
locon_list \(**du_con(ptfig, ptcon) /\(** duplicate connector \(**/
lofig_list \(**ptfig;
locon_list \(**ptcon;
{
return addlocon(ptfig, ptcon\->NAME, ptcon\->SIG, ptcon\->DIR);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR locon (3),
.BR loins (3),
.BR lofig (3),
.BR getlocon (3),
.BR dellocon (3),
.BR phcon (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,90 @@
.\" $Id: addlofig.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addlofig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addlofig
.XE
.XS2 \n%
.ti 0.2i
addlofig
.XE2 \}
.TH ADDLOFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addlofig \- create a new structural cell model
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
lofig_list \(**addlofig(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the figure to be created
.SH DESCRIPTION
\fBaddlofig\fP creates a new figure called \fIfigname\fP and adds it to the
list of figure in memory. The new figure is added in front of the list, and
becomes itself the list head. No check is performed to see if a figure with
the \fIfigname\fP exists on disk. If it is the case, the preexisting file will
be erased while saving.
.br
The fields \fILOCON\fP, \fILOINS\fP, \fILOSIG\fP, \fIBKSIG\fP, \fILOPAR\fP
\fILOTRS\fP and \fIUSER\fP are set to \fBNULL\fP.
.br
The field \fIMODE\fP is set to \fB'A'\fP.
.br
The field \fINEXT\fP points to the previous head of list.
.SH RETURN VALUE
\fBaddlofig\fP returns a pointer to the newly created figure.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addlofig figure \fIfigname\fP already exists"
.ft R
.RS
There is already a logical figure called \fIfigname\fP in memory, so it's
impossible to give this name to a cell to be created.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
lofig_list \(**get_the_fig(name)
char \(**name;
{
lofig_list \(**pt, \(**fill_fig(/\(** lofig_list \(** \(**/);
/\(** scan figure list \(**/
for (pt = HEAD_LOFIG; pt; pt = pt\->NEXT)
if (!strcmp(pt\->NAME, figname))
break;
return pt ? pt : fill_fig(addlofig(figname));
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR getlofig (3),
.BR dellofig (3),
.BR loadlofig (3),
.BR savelofig (3),
.BR flattenlofig (3),
.BR rflattenlofig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,136 @@
.\" $Id: addloins.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addloins.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addloins
.XE
.XS2 \n%
.ti 0.2i
addloins
.XE2 \}
.TH ADDLOINS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addloins \- create a logical instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
loins_list \(**addloins(ptfig, insname, ptmodel, sigchain)
lofig_list \(**ptfig;
char \(**insname;
lofig_list \(**ptmodel;
chain_list \(**sigchain;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the instance should be added
.TP
\fIinsname\fP
Instance name
.TP
\fIptmodel\fP
Pointer to the instance model
.TP
\fIsigchain\fP
Pointer to chain list of signal pointers
.SH DESCRIPTION
\fBaddloins\fP creates a new instance, and adds it to the
list of instances pointed to by \fIptfig\->LOINS\fP. The new instance is
added in front of the list, and becomes itself the list head.
.br
The parameter \fIinsname\fP fills the \fIINSNAME\fP field of the \fIloins\fP
structure.
.br
The \fIptmodel\fP is used for two purposes. First, the \fIptmodel\->NAME\fP
fills the \fIFIGNAME\fP field. Second, the connectors of the figure pointed
to by \fIptmodel\fP are duplicated in the \fILOCON\fP field, but the signals
linked to each connector are the one given in the \fIsigchain\fP argument. See
\fBchain\fP(3) for details on \fBchain_list\fPs.
.br
The matching is done in order, it means that the first connector is linked
to the first signal of the \fIsigchain\fP, and so on. Care must be taken when
instanciating in order to warranty the validity of the netlist.
For details on the structure, see \fBloins\fR(3).
.SH RETURN VALUE
\fBaddloins\fP returns a pointer to the newly created instance.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addloins impossible : instance \fIinsname\fP already
exist in figure \fIptfig\->NAME\fP"
.ft R
.RS
The \fIinsname\fP is the instance identifier. So it must be unique at a given
hierarchy level.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addloins impossible : instance model is the
figure \fIfigname\fP itself"
.ft R
.RS
The model of the instance has the same name that the figure where the
instantiation takes place. This check is only performed for a single hierarchy
level, in terms of its instances.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addloins impossible : connector number discrepancy
between figure \fIptmodel\->NAME\fP and instance \fIinsname\fP
in figure \fIptfig\->NAME\fP"
.ft R
.RS
The number of signals in the \fIsigchain\fP is not equal to the number of
connectors of the model. The matching is not done correctly.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void add_na2_y(pt, in1, in2, out) /\(** add an instance of na2_y \(**/
lofig_list \(**pt; /\(** pointer to the figure \(**/
long in1, in2, out; /\(** signals indexes \(**/
{
chain_list \(**signal = NULL;
/\(** get the pointer when signal index is known \(**/
signal = addchain(signal, (void \(**)givelosig(pt, in1));
signal = addchain(signal, (void \(**)givelosig(pt, in2));
signal = addchain(signal, (void \(**)givelosig(pt, out));
/\(** get vdd and vss \(**/
signal = addchain(signal, (void \(**)give_vdd(pt));
signal = addchain(signal, (void \(**)give_vss(pt));
/\(** reverse the list \(**/
signal = reverse(signal);
addloins(pt, "nand", getlofig("na2_y"), signal);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR loins (3),
.BR chain (3),
.BR getloins (3),
.BR delloins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,83 @@
.\" $Id: addlomodel.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addlomodel.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addlomodel
.XE
.XS2 \n%
.ti 0.2i
addlomodel
.XE2 \}
.TH ADDLOMODEL 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addlomodel \- create a tempotary logical model and add it to a list
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
lofig_list \(**addlomodel(model, name)
lofig_list \(**model;
char \(**name;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fImodel\fP
Pointer to the head of a model list
.TP
\fIname\fP
Name of the model to be created
.SH DESCRIPTION
\fBaddlomodel\fP creates a new \fBlofig_list\fP element and adds it to the
front of the list pointed to by \fImodel\fP, and becomes itself the list head.
.br
The \fBaddlomodel\fP function is mosty used to create a temporary list of
\fBlofig\fP in order to represent the "in file" instances' models.
In fact, all the file format used with mbk have the notion of models local to
files, so they are not figure, but are temporarly used to create instance
connectors, for example.
For details on the structure, see \fBlofig\fR(3).
.SH RETURN VALUE
\fBaddlomodel\fP returns a pointer to the new head of model list.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addlomodel impossible : model \fIname\fP already exists"
.ft R
.RS
The model, not the figure, is already present in the model list pointed to by
\fImodel\fP, and since a model should be unique, this can't be.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
void add_model(name)
char \(**name;
{
MODEL = addlomodel(MODEL, name);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR getlomodel (3),
.BR freelomodel (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,118 @@
.\" $Id: addlosig.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addlosig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addlosig
.XE
.XS2 \n%
.ti 0.2i
addlosig
.XE2 \}
.TH ADDLOSIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addlosig \- create a logical signal
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
losig_list \(**addlosig(ptfig, index, namechain, type)
lofig_list \(**ptfig;
long index;
chain_list \(**namechain;
char type;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the signal should be added
.TP
\fIindex\fP
Signal index
.TP
\fInamechain\fP
List of names of the signal
.TP
\fItype\fP
Signal type
.SH DESCRIPTION
\fBaddlosig\fP creates a new signal, and adds it to the
list of signals pointed to by \fIptfig\->LOSIG\fP. The new signal is
added in front of the list, and becomes itself the list head.
.br
The \fItype\fP parameter can take two values :
.RS
.TP 20
\fBEXTERNAL\fP
The signal is attached to at least one connector of the figure.
.TP
\fBINTERNAL\fP
The signal is only attached to instance or transistor connector.
.RE
The \fIindex\fP and \fItype\fP arguments fill the \fIINDEX\fP and
\fITYPE\fP fields of the \fBlosig\fP(3) structure. The index
is the signal identifier, so it should be unique at a given hierarchical level.
.br
The \fInamechain\fP argument is a list of names, given in a \fBchain_list\fP.
See \fBchain\fP(3) for details.
.SH RETURN VALUE
\fBaddlosig\fP returns a pointer to the newly created signal.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addlosig impossible signal \fIindex\fP already exist
in figure \fIptfig\->NAME\fP"
.ft R
.RS
The \fIindex\fP is already used in an other signal, and since it's the signal
identifier, it can't be.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
losig_list \(**merge_and_create(pt, s0, s1) /\(** merge two signal in a third \(**/
lofig_list \(**pt;
losig_list \(**s0, \(**s1;
{
chain_list \(**c;
losig_list \(**s;
long max_index;
/\(** merge names \(**/
for (c = s0\->NAMECHAIN; c; c = c\->NEXT)
s1\->NAMECHAIN = addchain(s1\->NAMECHAIN, c);
/\(** find maximum index \(**/
for (s = pt\->LOSIG; s; s = s\->NEXT)
if (max_index < s\->INDEX)
max_index = s\->INDEX;
s = addlosig(pt, ++max_index, s1\->NAMECHAIN,
s0\->TYPE == EXTERNAL || s1\->TYPE == EXTERNAL ?
EXTERNAL : INTERNAL);
dellosig(pt, s0);
dellosig(pt, s1);
return s;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR losig (3),
.BR getlosig (3),
.BR dellosig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,135 @@
.\" $Id: addlotrs.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addlotrs.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addlotrs
.XE
.XS2 \n%
.ti 0.2i
addlotrs
.XE2 \}
.TH ADDLOTRS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
addlotrs \- create a logical transistor
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 23n
#include "mlo.3"
lotrs_list \(**addlotrs(ptfig, type, x, y, width, length,
ps, pd, xs, xd,
ptgrid, ptsource, ptdrain)
lofig_list \(**ptfig;
char type;
long x, y;
unsigned short width, length;
unsigned short ps, pd;
unsigned short xs, xd;
losig_list \(**ptgrid, \(**ptsource, \(**ptdrain;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the transistor should be added
.TP
\fItype\fP
transistor type
.TP
\fIx, y\fP
Transistor coordinates
.TP
\fIwidth, length\fP
Transistor grid width and length
.TP
\fIps, pd\fP
Perimeters of the source and drain
.TP
\fIxs, xd\fP
Values to compute the areas of the source and drain, see \fBlotrs\fP(3)
for the effective area computation
.TP
\fIptgrid\fP
Pointer to the signal to be connected on the transistor grid
.TP
\fIptsource\fP
Pointer to the signal to be connected on the transistor source
.TP
\fIptdrain\fP
Pointer to the signal to be connected on the transistor drain
.SH DESCRIPTION
\fBaddlotrs\fP creates a new transistor, and adds it to the
list of transistors pointed to by \fIptfig\->LOTRS\fP. The new transistor is
added in front of the list, and becomes itself the list head.
.br
The \fItype\fP parameter can take two values :
.RS
.TP 20
\fBTRANSN\fP
for a N channel transistor
.TP
\fBTRANSP\fP
for a P channel transistor
.RE
.LP
The \fIx\fP, \fIy\fP, \fIwidth\fP , \fIlength\fP, \fIps\fP, \fIpd\fP,
\fIxs\fP and \fIxd\fP, arguments fill
respectivly the \fIX\fP, \fIY\fP, \fIWIDTH\fP, \fILENGTH\fP, \fIPS\fP,
\fIPD\fP, \fIXS\fP and \fIXD\fP fields.
.br
Three connectors are created each time a transistor is added, and the
\fIptgrid\fP, \fIptsource\fP and \fIptdrain\fP \fBlosig\fPs are attached to
the \fISIG\fP field of the \fBlocon\fP of the appropriate connector. The
connectors names are \fIgrid\fP, \fIsource\fP and \fIdrain\fP, their
direction, \fIDIR\fP, are set to \fB'T'\fP, and their \fITYPE\fP \fBINTERNAL\fP.
For details on the structures, see \fBlocon\fP(3) and \fBlotrs\fR(3).
.SH RETURN VALUE
\fBaddlotrs\fP returns a pointer to the newly created transistor.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal transistor type : \fItype\fP"
.ft R
.RS
The \fItype\fP is not legal a legal transistor type.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void n1_y() /\(** transistor netlist of an inverter \(**/
{
lofig_list \(**pt;
losig_list \(**in, \(**out, \(**vdd, \(**vss;
pt = addlofig("n1_y");
addlocon(pt, "in", in = givelosig(pt, 0), IN);
addlocon(pt, "out", out = givelosig(pt, 1), OUT);
addlocon(pt, "vdd", vdd = givelosig(pt, 2), IN);
addlocon(pt, "vss", vdd = givelosig(pt, 3), IN);
addlotrs(pt, TRANSN, 0, 0, 6, 1, in, vss, out);
addlotrs(pt, TRANSP, 0, 0, 12, 1, in, vdd, out);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR lotrs (3),
.BR locon (3),
.BR dellotrs (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,73 @@
.\" $Id: addnum.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addnum.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addnum
.XE
.XS4 \n%
.ti 0.2i
addnum
.XE4 \}
.TH ADDNUM 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
addnum \- create a \fBnum\fP and add it to a list
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
num_list \(**addnum(ptnum, data)
num_list \(**ptnum;
long data;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptnum\fP
Pointer to a \fBnum_list\fP
.TP
\fIdata\fP
Value of the data
.SH DESCRIPTION
\fBaddnum\fP creates a new \fBnum\fP element and adds it to the
front of the list pointed to by \fIptnum\fP, and becomes itself the list head.
.br
The \fIdata\fP fills the \fIDATA\fP field of the \fBnum\fP strucutre.
For details on the structure, see \fBnum\fR(3).
.SH RETURN VALUE
\fBaddnum\fP returns a pointer to the new head of list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
void count(pn)
num_list \(**pn;
{
num_list \(**c = NULL; /\(** initialized for regularity \(**/
while (pt) {
if (pt\->TYPE == EXTERNAL)
c = addnum(c, (void \(**)pt)
pt = pt\->NEXT;
}
return c;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR num (3),
.BR freenum (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,140 @@
.\" $Id: addphcon.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addphcon.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addphcon
.XE
.XS0 \n%
.ti 0.2i
addphcon
.XE0 \}
.TH ADDPHCON 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
addphcon \- create a physical connector
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phcon_list \(**addphcon(ptfig, orient, conname, x, y, layer, width)
phfig_list \(**ptfig;
char orient;
char \(**conname;
long x, y;
char layer;
long width;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the connector should be added
.TP
\fIorient\fP
Face of the connector
.TP
\fIconname\fP
Name of the connector
.TP
\fIx, y\fP
Absolute connector coordinates
.TP
\fIlayer\fP
Connector symbolic layer
.TP
\fIwidth\fP
Connector symbolic width
.SH DESCRIPTION
\fBaddphcon\fP creates a new connector called \fIconname\fP and adds it to the
list of connectors pointed to by \fIptfig\->PHCON\fP. The new connector is
added in front of the list, and becomes itself the list head.
.br
The parameters \fIconname\fP, \fIorient\fP, \fIx\fP, \fIy\fP, \fIlayer\fP,
\fIwidth\fP fill respectivly the \fINAME\fP, \fIORIENT\fP, \fIXCON\fP,
\fIYCON\fP, \fILAYER\fP, \fIWIDTH\fP fields of the \fIphcon\fP structure.
See \fBphcon\fR(3) for details.
.br
The \fIINDEX\fP field is computed by the \fBaddphcon\fP function in order to
warranty index unicity. A topological sort is performed, checking \fIx\fP,
then \fIy\fP, then the \fIlayer\fP. So for a given figure, each connector will
have a constant \fIINDEX\fP.
.br
The \fIx\fP, \fIy\fP coordinates must be placed inside the \fIbutment box\fP
of the figure.
.br
The \fIwidth\fP is a layer extension that takes place in parallel to the
connector face.
.br
For a list of valid \fIorient\fP and \fIlayer\fPs, see
\fBlocon\fR(3).
.SH RETURN VALUE
\fBaddphcon\fP returns a pointer to the newly created connector.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphcon unknow layer \fIlayer\fP in \fIconname\fP"
.ft R
.RS
The \fIlayer\fP parameter is out of range, and does not represent a legal
symbolic layer. See \fBlocon\fP(3) for a complete list of layers.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphcon connector \fIconname\fP not in
abutment box"
.ft R
.RS
The connector coordinates are not included in the rectangle of the figure
\fIabutment\fP box. This means that the \fIabutment box\fP field of the
\fIphfig\fP must be filled befor any call to \fBaddphcon\fP.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphcon orientation is \fIorient\fP in
\fIconname\fP"
.ft R
.RS
The \fIorient\fP parameter is not in the set of legal values. See
\fBlocon\fP(3) for the complete list of orientations.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phcon_list \(**du_con(ptfig, ptcon) /\(** duplicate connector \(**/
phfig_list \(**ptfig;
phcon_list \(**ptcon;
{
/\(** the index depends from what's in ptfig\->PHCON, not from me \(**/
return addphcon(ptfig, ptcon\->ORIENT, ptcon\->NAME,
ptcon\->XCON, ptcon\->YCON,
ptcon\->LAYER, ptcon\->WIDTH);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phcon (3),
.BR getphcon (3),
.BR delphcon (3),
.BR locon (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,93 @@
.\" $Id: addphfig.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addphfig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addphfig
.XE
.XS0 \n%
.ti 0.2i
addphfig
.XE0 \}
.TH ADDPHFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
addphfig \- create a new physical cell model
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phfig_list \(**addphfig(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the figure to be created
.SH DESCRIPTION
\fBaddphfig\fP creates a new figure called \fIfigname\fP and adds it to the
list of figure in memory. The new figure is added in front of the list, and
becomes itself the list head. No check is performed to see if a figure with
the \fIfigname\fP exists on disk. If it is the case, the preexisting file will
be erased while saving.
.br
The fields \fIPHCON\fP, \fIPHINS\fP, \fIPHSEG\fP, \fIPHVIA\fP, \fIPHREF\fP and
\fIUSER\fP are set to \fBNULL\fP.
.br
The fields \fIXAB1\fP, \fIYAB1\fP, \fIXAB2\fP, \fIXAB2\fP are set to
\fB0L\fP.
.br
The field \fIMODE\fP is set to \fB'A'\fP.
.br
The field \fINEXT\fP points to the previous head of list.
.SH RETURN VALUE
\fBaddphfig\fP returns a pointer to the newly created figure.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphfig figure \fIfigname\fP already exists"
.ft R
.RS
There is already a figure called \fIfigname\fP in memory, so it's impossible
to give this name to a cell to be created.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phfig_list \(**get_the_fig(name)
char \(**name;
{
phfig_list \(**pt, \(**fill_fig(/\(** phfig_list \(** \(**/);
/\(** scan figure list \(**/
for (pt = HEAD_PHFIG; pt; pt = pt\->NEXT)
if (!strcmp(pt\->NAME, figname))
break;
return pt ? pt : fill_fig(addphfig(figname));
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR getphfig (3),
.BR delphfig (3),
.BR loadphfig (3),
.BR savephfig (3),
.BR flattenphfig (3),
.BR rflattenphfig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,129 @@
.\" $Id: addphins.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addphins.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addphins
.XE
.XS0 \n%
.ti 0.2i
addphins
.XE0 \}
.TH ADDPHINS 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
addphins \- create a physical instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phins_list \(**addphins(ptfig, figname, insname, sym, x, y)
phfig_list \(**ptfig;
char \(**figname;
char \(**insname;
char sym;
long x, y;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the instance should be added
.TP
\fIfigname\fP
Instance model name
.TP
\fIinsname\fP
Instance name
.TP
\fIsym\fP
Geometrical operation performed on the instance
.TP
\fIx, y\fP
Coordinates of the lower left corner of the instance
.SH DESCRIPTION
\fBaddphins\fP creates a new instance whose lower left corner is at the given
coordinates, and adds it to the
list of instances pointed to by \fIptfig\->PHINS\fP. The new instance is
added in front of the list, and becomes itself the list head.
.br
The parameters \fIfigname\fP, \fIinsname\fP, \fIsym\fP, \fIx\fP and \fIy\fP
fill respectivly
the \fIFIGNAME\fP, \fIINSNAME\fP, \fITRANSF\fP, \fIXINS\fP and \fIYINS\fP
fields of the \fIphins\fP structure.
.br
The \fBaddphins\fP function does not check in memory or on disk to see
if the instanciated model exists, since no informations on it are needed.
.br
The coordinates are not transformation dependant. It means that the
transformation is performed before placing the instance at the given point.
For details on the structure, see \fBphins\fR(3).
.SH RETURN VALUE
\fBaddphins\fP returns a pointer to the newly created instance.
.SH ERRORS
.LP
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** addphins figure \fIfigname\fP cannot be part of itself"
.ft R
.RS
The instance has for model name of the figure on the which it is to be added.
It's illegal and dangerous. This check is made at the actual hierachy level
only, not recursivly on the structure, so it still may happend.
.RE
.LP
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphins transformation \fIsym\fP in : \fIinsname\fP"
.ft R
.RS
The geometrical operation is not in the legal range. See \fBphins\fP(3) for
a complete list of values.
.RE
.LP
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphins duplicate instance name : \fIinsname\fP"
.ft R
.RS
The instance name is an identifier, so it can't appear twice in the same figure.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phins_list \(**ins_dup(pfd, pfs) /\(** duplicate instances \(**/
phfig_list \(**pfd, \(**pfs;
{
phins_list \(**pi;
for (pi = pfs\->phins; pi != NULL; pi = pi\->NEXT)
addphins(pfd, pi\->FIGNAME, pi\->INSNAME, pi\->TRANSF,
pi\->XINS, pi\->YINS);
return pfd\->PHINS;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phins (3),
.BR getphins (3),
.BR delphins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,93 @@
.\" $Id: addphref.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addphref.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addphref
.XE
.XS0 \n%
.ti 0.2i
addphref
.XE0 \}
.TH ADDPHREF 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
addphref \- create a physical reference
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phref_list \(**addphref(ptfig, type, name, x, y)
phfig_list \(**ptfig;
char \(**type;
char \(**name;
long x, y;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the reference should be added
.TP
\fItype\fP
Reference type
.TP
\fIname\fP
Reference name
.TP
\fIx, y\fP
Coordinates of the center of the reference.
.SH DESCRIPTION
\fBaddphref\fP creates a new reference whose center is at the given coordinates,
and adds it to the
list of references pointed to by \fIptfig\->PHREF\fP. The new reference is
added in front of the list, and becomes itself the list head.
.br
The parameters \fItype\fP, \fIname\fP, \fIx\fP and \fIy\fP fill respectivly
the \fIFIGNAME\fP, \fINAME\fP, \fIXREF\fP and \fIYREF\fP fields of the
\fIphref\fP structure.
.br
The \fItype\fPs may have any value, but only two type
are now recognized by tools based upon mbk :
.TP 20
\fB"ref_con"\fP
for multi-access connectors
.TP
\fB"ref_ref"\fP
for cell programming
.LP
For details on the structure, see \fBphref\fR(3).
.SH RETURN VALUE
\fBaddphref\fP returns a pointer to the newly created reference.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phref_list \(**ref_dup(pfd, pfs) /\(** duplicate refs \(**/
phfig_list \(**pfd, \(**pfs;
{
phref_list \(**pr;
for (pr = pfs\->phref; pr != NULL; pr = pr\->NEXT)
addphref(pfd, pr\->FIGNAME, pr\->NAME, pr\->XREF, pr\->YREF);
return pfd\->PHREF;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phref (3),
.BR getphref (3),
.BR delphref (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,123 @@
.\" $Id: addphseg.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addphseg.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addphseg
.XE
.XS0 \n%
.ti 0.2i
addphseg
.XE0 \}
.TH ADDPHSEG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
addphseg \- create a physical segment
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phseg_list \(**addphseg(ptfig, layer, width, x1, y1, x2, y2, nodename)
phfig_list \(**ptfig;
char layer;
long width;
long x1, y1, x2, y2;
char \(**nodename;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the segment should be added
.TP
\fIlayer\fP
Segment symbolic layer
.TP
\fIwidth\fP
Segment symbolic width
.TP
\fIx1, y1, x2, y2\fP
Segment endpoints coordinates
.TP
\fInodename\fP
Name of the segment
.SH DESCRIPTION
\fBaddphseg\fP creates a new segment at the given coordinates, possibly called
\fIsegname\fP, and adds it to the list of segments pointed to by
\fIptfig\->PHSEG\fP. The new segment is
added in front of the list, and becomes itself the list head. The segment name
is an optional information, and does not allow the segment identification. When
not needed, this parameter should be set to \fINULL\fP.
.br
The parameters \fInodename\fP, \fIlayer\fP and \fIwidth\fP fill respectivly
the \fINAME\fP, \fILAYER\fP and \fIWIDTH\fP fields of the \fIphseg\fP structure.
.br
\fIx1\fP, \fIy1\fP, \fIx2\fP, \fIy2\fP are sorted to warranty that the fields
\fIX1\fP and \fIY1\fP contain the minimum of, respectivly, \fIx1\fP, \fIx2\fP
and \fIy1\fP, \fIy2\fP, and the \fIX2\fP, \fIY2\fP fields the maximum.
.br
The \fITYPE\fP field is computed by the \fBaddphseg\fP function.
It will be either \fBVER\fP if \fIx1\fP equals \fIx2\fP, or \fBHOR\fP if
\fIy1\fP equals \fIy2\fP.
.br
The \fIwidth\fP is a layer extension that takes place in perpendicular to the
segment \fITYPE\fP.
.br
For a list of valid \fIlayer\fPs, and details on the structure, see
\fBphseg\fR(3).
.SH RETURN VALUE
\fBaddphseg\fP returns a pointer to the newly created segment.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphseg wrong layer code \fIlayer\fP in
\fIx1\fP, \fIy1\fP, \fIx2\fP, \fIy2\fP"
.ft R
.RS
The \fIlayer\fP parameter is out of range, and does not represent a legal
symbolic layer. See \fBphseg\fP(3) for a complete list of layers.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphseg : \fIx1\fP, \fIy1\fP, \fIx2\fP, \fIy2\fP"
.ft R
.RS
The segment coordinates are such that the segment is neither vertical nor
horizontal. So it's not a legal symbolic segment.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phseg_list \(**du_seg(pfd, pfs)
phfig_list \(**pfd, \(**pfs;
{
phseg_list \(**ps;
/\(** names don't matter \(**/
for (ps = pfs\->PHSEG; ps != NULL; ps = ps\->NEXT)
addphseg(pfd, ps\->LAYER, ps\->WIDTH, ps\->X1, ps\->Y1,
ps\->X2, ps\->Y2, NULL);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phseg (3),
.BR delphseg (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,91 @@
.\" $Id: addphvia.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addphvia.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addphvia
.XE
.XS0 \n%
.ti 0.2i
addphvia
.XE0 \}
.TH ADDPHVIA 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
addphvia \- create a physical via
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phvia_list \(**addphvia(ptfig, viatype, x, y)
phfig_list \(**ptfig;
char viatype;
long x, y;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the via should be added
.TP
\fIviatype\fP
Contact type
.TP
\fIx, y\fP
Coordinates of the center of the via.
.SH DESCRIPTION
\fBaddphvia\fP creates a new via whose center is at the given coordinates,
and adds it to the
list of vias pointed to by \fIptfig\->PHVIA\fP. The new via is
added in front of the list, and becomes itself the list head.
.br
The parameters \fIviatype\fP, \fIx\fP and \fIy\fP fill respectivly
the \fITYPE\fP, \fIXVIA\fP and \fIYVIA\fP fields of the \fIphvia\fP structure.
.br
For a list of valid \fIviatype\fPs, and details on the structure, see
\fBphvia\fR(3).
.SH RETURN VALUE
\fBaddphvia\fP returns a pointer to the newly created via.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal addphvia viatype : \fIviatype\fP at
\fIx\fP, \fIy\fP"
.ft R
.RS
The via type is not a predefined contact. For a list of legal via types,
see \fBphvia\fP(3).
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phvia_list \(**via_dup(pfd, pfs) /\(** duplicate vias \(**/
phfig_list \(**pfd, \(**pfs;
{
phvia_list \(**pv;
for (pv = pfs\->phvia; pv != NULL; pv = pv\->NEXT)
addphvia(pfd, pv\->TYPE, ps\->XVIA, ps\->YVIA);
return pfd\->PHVIA;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phvia (3),
.BR delphvia (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,91 @@
.\" $Id: addptype.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)addptype.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
addptype
.XE
.XS4 \n%
.ti 0.2i
addptype
.XE4 \}
.TH ADDPTYPE 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
addptype \- create a \fBptype\fP and add it to a \fBptype_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
ptype_list \(**addptype(pthead,type,ptdata)
ptype_list \(**pthead;
void \(**ptdata;
long type;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpthead\fP
Pointer to a \fBptype\fP list
.TP
\fItype\fP
Flag indicating the pointer owner
.TP
\fIptdata\fP
Generic pointer to any kind of information
.SH DESCRIPTION
\fBaddptype\fP creates a new \fBptype\fP element and adds it to the
front of the list pointed to by \fIpthead\fP, and becomes itself the list head.
.br
The \fBptype_list\fPs are mosty used to create lists of homogeneous
elements in mbk, but also for trees, graphs, and so on.
.br
The \fItype\fP argument indicates the pointer type, at the C type meaning,
for its owner.
.br
The \fItype\fPs allow to access the pointers with adequat cast, and for example
to share informations in the \fIUSER\fP fields of mbk structures.
.br
The \fIptdata\fP points to any kind of list or may itself be a value, if proper
cast is performed at compilation time, and fills the \fIDATA\fP field of the
\fBptype\fP structure.
For details on the structure, see \fBptype\fR(3).
.SH RETURN VALUE
\fBaddptype\fP returns a pointer to the new head of list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mph.h"
void corner(ptfig, name)
phfig_list \(**ptfig;
char \(**name;
{
phins_list \(**i = getphins(ptfig, name);
num_list \(**ptnum;
phfig_list \(**model;
model = getphfig(i\->FIGNAME);
ptnum = addnum((num_list \(**)NULL, model\->X2 - model\->X1);
ptnum = addnum(ptnum, model\->Y2 - model\->Y1);
i\->USER = addptype(i\->USER, (long)PLACEABOX, (void \(**)ptnum);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR ptype (3),
.BR freeptype (3),
.BR getptype (3),
.BR delptype (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,72 @@
.\" $Id: alliancebanner.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)alliancebanner.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.ie t \{\
.fp 4 C \}
.el \{\
.fp 4 B \}
.TH ALLIANCEBANNER 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
alliancebanner \- display the standardized Alliance banner
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.ft 4
#include "mut.h"
void alliancebanner(tool, tv, comment, date, av)
char \(**tool, \(**tv, \(**comment, \(**date, \(**av;
.ft R
.fi
.SH PARAMETERS
.TP 20
\f4tool\fP
Name of the tool.
This is what will be displayed as banner.
.TP 20
\f4tv\fP
Tool version.
.TP 20
\f4comment\fP
Indicates the tool's usefulness.
.TP 20
\f4date\fP
Copyright dates.
.TP 20
\f4av\fP
Alliance version.
.SH DESCRIPTION
\fBalliancebanner\fP ouputs on \f4stdout\fR a standardized banner with
the name of the tool in large letters, and a cartouche containing some
informations about the Alliance CAD system.
This function is to be used by all the Alliance tools, and expect a
display 80 columns wide.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.ft 4
#include "ba315n.h"
#define nfloptitle(name) \\
alliancebanner("nFloP", VERSION,\\
"not a FloorPlan router", "92, 93",\\
ALLIANCE_VERSION)
.ft R
.fi
.SH SEE ALSO
.BR alliance (1).
.SH DIAGNOSTICS
\f4alliancebanner: Error: Resulting size bigger than 80 columns not allowed\fR
.RS
The \fItool\fR argument must be such that its resulting size isn't wider that
80 culumns.
This means, since the character set is proportional, that the longest name
to be output is about 8 characters long.
.RE
\f4alliancebanner: Error: Character out of [0-9A-Za-z] range\fR
.RS
The \fItool\fR parameter has a non allowed character in it.
For simplicity purposes, only numbers and letters are accepted.
.RE
.so man1/alc_bug_report.1

View File

@ -0,0 +1,67 @@
.\" $Id: append.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)append.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
append
.XE
.XS4 \n%
.ti 0.2i
append
.XE4 \}
.TH APPEND 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
append \- append a \fBchain_list\fP to an other \fBchain_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
chain_list \(**append(pt1, pt2)
chain_list \(**pt1,\(**pt2;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpt1\fP
Pointer to a \fBchain_list\fP
.TP
\fIpt2\fP
Pointer to a \fBchain_list\fP
.SH DESCRIPTION
\fBappend\fP appends the contains of the \fBchain_list\fP pointed to by
\fIpt2\fP at the end of the one pointed to by \fIpt1\fP.
.br
The lists consistency is warranted by the use of the adequat \fBadd\fI
functions.
.SH RETURN VALUE
\fBappend\fP returns a pointer to the new head of list.
If \fIpt1\fP is not \fBNULL\fP, it has the value of \fIpt1\fP, else it is
\fIpt2\fP.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
void sig_names(s0, s1)
losig_list \(**s0, \(**s1;
{
s0\->NAMECHAIN = append(s0\->NAMECHAIN, s1\->NAMECHAIN);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR chain (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,81 @@
.\" $Id: bigvia.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)bigvia.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
bigvia
.XE
.XS1 \n%
.ti 0.2i
bigvia
.XE1 \}
.TH BIGVIA 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL UTILITY FUNCTIONS"
.SH NAME
bigvia \- draws a non minimal via as a bunch of vias
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void \(**bigvia(figure, viatype, x, y, dx, dy)
phfig_list \(**figure;
char viatype;
long x, y, dx, dy;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIfigure\fP
Pointer to the physical figure in the which vias must be put.
.TP 20
\fIviatype\fP
Contact type to be put.
.TP 20
\fIx, y\fP
Coordinate of the center of the bigvia.
.TP 20
\fIdx, dy\fP
Maximun rectangle to be filled with vias.
.SH DESCRIPTION
\fBbigvia\fP draws as many vias as necessary to fill the rectangle defined by
its \fIdx\fP and \fPdy\fP arguments.
The ``bigvia'' center is indicated with \fIdx\fP and \fPdy\fP, thus making this
function much like \fBaddphvia\fP.
The necessary segments are drawn to avoid having notches or other drc rules
violated.
.br
This function is tipically used by routers when connecting two non minimal wires,
like supplies or clocks.
.br
The values for drawing the via correctly, ie avoid drc violations, are taken
from the idps set of rules, and are not changeable at run time.
.SH ERRORS
.RS
"*** mbk error ***
bigvia impossible : negative values dx, dy in figure figure at (x, y)"
.RE
If either \fIdx\fP or \fIdy\fP are negative, the function complains and exits.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
#define BigVia(x, y, dx, dy) \\
bigvia(WORK_PHFIG, CONT_VIA, x, y, dx, dy)
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR addphvia (3),
.BR addphseg (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,58 @@
.\" $Id: chain.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)chain.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
chain
.XE
.XS4 \n%
.ti 0.2i
chain
.XE4 \}
.TH CHAIN 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY STRUCTURE DEFINITIONS"
.SH NAME
chain \- mbk lisp-like service structure
.SH DESCRIPTION
The \fBchain\fP is used for any purpose, when a list of pointer is required.
The use of this structure is strongly recommanded, when such a need occurs.
.LP
The declarations needed to work on \fBchain\fP are available in the header file
\fI"/labo/include/mut315.h"\fP, where '\fI315\fP' is the actual mbk version.
.LP
The following C structure supports the description of the chain :
.RS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 20n 30n
typedef struct chain {
struct chain \(**NEXT;
void \(**DATA;
} chain_list;
.ft R
.fi
.RE
.TP 20
\fINEXT\fP
Pointer to the next \fBchain\fP of the list.
.TP
\fIDATA\fP
Generic pointer used to point to any kind of object. Do not forget to
cast the pointer back to its previous type when using this field.
.TP
Remark :
a specialized memory allocator has been built in order to create and free
\fBchain_list\fPs, so absolutly avoid to create or free them an other way than
through the access functions.
.SH SEE ALSO
.BR mbk (1),
.BR addchain (3),
.BR freechain (3),
.BR delchain (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,112 @@
.\" $Id: checkloconorder.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)checkloconorder.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
checkloconorder
.XE
.XS2 \n%
.ti 0.2i
checkloconorder
.XE2 \}
.TH CHECKLOCONORDER 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
checkloconorder \- checks the consistency of a list of logical connectors
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void checkloconorder(connectors)
locon_list \(**connectors;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIconnectors\fP
Pointer to the head of the connector list that is to be sorted
.SH DESCRIPTION
\fBcheckloconorder\fP checks the list of logical connectors pointed to
by \fI\(**connectors\fP for conformity towards \fBmbk\fP(1) consistency
rules.
Checks are done to warranty :
.TP 20
\fBorder\fP
the functions checks that vectorized connectors are ordered and evolve
monotonically, with a step of 1.
.TP 20
\fBname unicity\fP
Vector radicals may not appear as single entity.
.TP 20
\fBname validity\fP
No space should appear in the name, but a single one followed by a number
in a vector.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** radical \fIname\fP already used in a
connector"
.ft R
.RS
The \fIname\fP is already used in a connector, either vectorized or not,
and therefore cannot be used once more.
This ensures that \fBf\fP and \fBf 3\fP will not be used simultaneously.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** the radical \fIname\fP has a spurious
vectorized value"
.ft R
.RS
The \fIname\fP is seen as a vector in \fBmbk\fP(1), but its index is not a
number or some text follows that number.
.RE
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** the radical \fIname\fP is not
vectorized properly"
.ft R
.RS
The \fIname\fP is seen as a vector in \fBmbk\fP(1), but its index changes
in such a way that it is not monotonically increasing or decreasing with
a step of 1.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void savewithcheck(figname)
char \(**figname;
{
lofig_list \(**figure = getlocon(figname, 'A');
checkloconorder(figure->LOCON);
savelofig(figure);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR locon (3),
.BR addlocon (3),
.BR dellocon (3),
.BR checkloconorder (3),
.BR qsort (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,69 @@
.\" $Id: concatname.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)concatname.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
concatname
.XE
.XS4 \n%
.ti 0.2i
concatname
.XE4 \}
.TH CONCATNAME 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
concatname \- concatenate two names with user separator
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**concatname(s, t)
char \(**s, \(**t;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIs\fP
Pointer to a string
.TP
\fIt\fP
Pointer to a string
.SH DESCRIPTION
The \fBconcatname\fP function adds the separator defined by \fBMBK_SEPAR\fP(1),
and then the string \fIt\fP at the end of string \fIs\fP. This is not like a
\fBstrcat\fP(3) of the standard library, because \fIs\fP is not beeing modified.
The string returned has already been put in the names dictionary by
a call to \fBnamealloc\fP(3).
.SH RETURN VALUE
\fBconcatname\fP returns a pointer to a string in the name hash table.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
void flat_sig_alias(ptsig, insname)
losig_list \(**ptsig;
char \(**insname;
{
chain_list \(**pt;
for (pt = ptsig\->NAMECHAIN; pt; pt = pt\->NEXT)
pt\->DATA = (void \(**)concatname(insname, (char \(**)pt\->DATA);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR namealloc (3),
.BR MBK_SEPAR (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,59 @@
.\" $Id: defab.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)defab.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
defab
.XE \}
.TH DEFAB 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
defab \- defines the \fIabutment box\fP of a \fBphfig\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void defab(ptfig, x1, y1, x2, y2)
phfig_list \(**ptfig;
long x1, x2, y1, y2;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to a \fBphfig\fP
.TP
\fIx1, y1, x2, y2\fP
Coordinates of the \fIabutment box\fP
.SH DESCRIPTION
\fBdefab\fP redefines the \fIabutment box\fP of the figure pointed to by
\fIptfig\fP.
It overwrite any existing value in the \fIXAB1\fP, \fIYAB1\fP, \fIXAB2\fP and
\fIYAB2\fP by the given arguments.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void add_half_rules(fig)
phfig_list \(**fig;
{
defab(fig, fig\->XAB1 + HALF_RULE, fig\->YAB1 + HALF_RULE,
fig\->XAB2 + HALF_RULE, fig\->YAB2 + HALF_RULE);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,83 @@
.\" $Id: delchain.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delchain.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delchain
.XE
.XS4 \n%
.ti 0.2i
delchain
.XE4 \}
.TH DELCHAIN 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
delchain \- delete an element of a \fBchain_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
chain_list \(**delchain(pthead, ptdel)
chain_list \(**pthead;
chain_list \(**ptdel;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpthead\fP
Pointer to a \fBchain\fP list
.TP
\fIptdel\fP
Pointer to the element to be deleted.
.SH DESCRIPTION
\fBdelchain\fP deletes the element of the \fBchain_list\fP pointed to by
\fIptdel\fP in the list pointed to by \fIpthead\fP.
The list consistency is maintainded, and the element put back in the list
of free blocks.
.SH RETURN VALUE
\fBdelchain\fP returns a pointer to the new head of list if the \fIptdel\fP
pointer used to belong to the list. In most case, it has the value of
\fIpthead\fP. If the pointer doesn't belong to the list, \fBNULL\fP is returned.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** delchain impossible : pointer NULL"
.ft R
.RS
At least one of the arguments are pointing to \fBNULL\fP, and that clear that
such a pointer can't be deleted, or used for freeing.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void delete_match(c0, c1)
chain_list \(**c0, \(**c1;
{
chain_list \(**t0, \(**t1, \(**next;
for (t0 = c0; t0; t0 = next)
for (t1 = c1; t1; t1 = t1\->NEXT)
if (t1\->DATA == t0\->DATA)
next = delchain(c0, t0);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR chain (3),
.BR addchain (3),
.BR freechain (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,71 @@
.\" $Id: delht.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delht.2 7.01 92/08/22 ; Labo masi cao-vlsi; Author : Luc Burgun
.\" slightly modified by Fred Petrot for mbk adaptation on 22/06/92
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delht
.XE
.XS4 \n%
.ti 0.2i
delht
.XE4 \}
.TH DELHT 3 "October 1, 1997" "ASIM/LIP6" "MBK HASH TABLE MANAGEMENT FUNCTIONS"
.SH NAME
delht \- removes an hash table
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
#include "mut.h"
void delht(table)
ht \(**table;
.fi
.SH PARAMETER
.TP 20
\fItable\fP
Hash table pointer
.SH DESCRIPTION
\fBdelht()\fP removes the hash table pointed to by \fItable\fP from
memory.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
checksigname(p)
lofig_list \(**p;
{
ht \(**h;
int i;
char \(**amatla;
for (i = 0, ptsig = p->LOSIG; ptsig; i++, ptsig = ptsig->NEXT);
h = addht(i);
for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
addhtitem(h, ptcon->NAME, 0);
for (ptsig = p->LOSIG; ptsig; ptsig = ptsig->NEXT) {
if (ptsig->TYPE == INTERNAL) {
amatla = getsigname(ptsig);
if (!sethtitem(h, amatla, 0)) {
printf("N %s;\\n", amatla);
}
}
}
delht(h);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR addht (3),
.BR addhtitem (3),
.BR gethtitem (3),
.BR delhtitem (3),
.BR viewht (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,84 @@
.\" $Id: delhtitem.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delhtitem.2 7.01 92/08/22 ; Labo masi cao-vlsi; Author : Luc Burgun
.\" slightly modified by Fred Petrot for mbk adaptation on 22/06/92
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delhtitem
.XE
.XS4 \n%
.ti 0.2i
delhtitem
.XE4 \}
.TH DELHTITEM 3 "October 1, 1997" "ASIM/LIP6" "MBK HASH TABLE MANAGEMENT FUNCTIONS"
.SH NAME
delhtitem \- removes an item in an hash table
.so man1/alc_origin.1
.SH SYNOPSYS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include "mut.h"
int delhtitem(table, key)
ht \(**table;
void \(**key;
.fi
.ft R
.SH PARAMETERS
.TP 20
\fItable\fP
Hash table pointer
.TP 20
\fIkey\fP
Key used by the hash coding function indicating the item to be deleted
.SH DESCRIPTION
\fBdelhtitem()\fP removes an item in the hash table pointed to by \fItable\fP.
.SH RETURN VALUE
If the key doesn't exist, the function returns \fBEMPTYHT\fP,
if it does, then its associated value is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include "mut.h"
checksigname(p, h)
lofig_list \(**p;
ht \(**h;
{
int i;
char \(**amatla;
/\(** check for signal and connector name unicity \(**/
for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
addhtitem(h, ptcon->NAME, 0);
for (ptsig = p->LOSIG; ptsig; ptsig = ptsig->NEXT) {
if (ptsig->TYPE == INTERNAL) {
amatla = getsigname(ptsig);
if (!sethtitem(h, amatla, 0)) {
printf("N %s;\\n", amatla);
}
}
}
/\(** keep only internal signal names in the hash table \(**/
for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
(void)delhtitem(h, ptcon->NAME);
}
.fi
.ft R
.SH SEE ALSO
.BR mbk (1),
.BR addth (3),
.BR delht (3),
.BR addhtitem (3),
.BR gethtitem (3),
.BR sethtitem (3),
.BR viewht (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,69 @@
.\" $Id: dellocon.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)dellocon.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
dellocon
.XE
.XS2 \n%
.ti 0.2i
dellocon
.XE2 \}
.TH DELLOCON 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
dellocon \- delete a logical connector
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
int dellocon(ptfig, name)
lofig_list \(**ptfig;
char \(**name;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the connector should be deleted
.TP
\fIname\fP
Name of the connector to be deleted.
.SH DESCRIPTION
\fBdellocon\fP deletes the connector called \fIname\fP in the figure
pointed to by \fIptfig\fP. The list consistency is maintained, and the space
freed.
.SH RETURN VALUE
\fBdellocon\fP returns \fB1\fP if the connector has been deleted, \fB0\fP
if no such connector exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
char \(**was_existing(p, s)
lofig_list \(**p;
char \(**s;
{
return dellocon(p, s) ? "you just killed it!\n"
: "wasn't here anyway\n";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR locon (3),
.BR addlocon (3),
.BR getlocon (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,68 @@
.\" $Id: dellofig.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)dellofig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
dellofig
.XE
.XS2 \n%
.ti 0.2i
dellofig
.XE2 \}
.TH DELLOFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
dellofig \- delete and free a logical figure
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
int dellofig(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the figure to be deleted
.SH DESCRIPTION
\fBdellofig\fP deletes the figure called \fIfigname\fP from the list of
logical figure in memory. All the lists of elements belonging to the figure
are also deleted and freed.
.SH RETURN VALUE
\fBdellofig\fP returns \fB1\fP if the figure was delete, and \fB0\fP if no
figure called \fIfigname\fP was present in memory.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void delete_na2_y()
{
if (dellofig("na2_y"))
(void)fputs("deleted na2_y successfully", stdout);
else
(void)fputs("na2_y not present in ram !", stdout);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR addlofig (3),
.BR getlofig (3),
.BR loadlofig (3),
.BR savelofig (3),
.BR flattenlofig (3),
.BR rflattenlofig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,72 @@
.\" $Id: delloins.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delloins.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delloins
.XE
.XS2 \n%
.ti 0.2i
delloins
.XE2 \}
.TH DELLOINS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
delloins \- delete a logical instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
int delloins(ptfig, insname)
lofig_list \(**ptfig;
char \(**insname;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the instance should be deleted
.TP
\fIinsname\fP
Name of the instance to be deleted.
.SH DESCRIPTION
\fBdelloins\fP delete the instance called \fIinsname\fP in the figure
pointed to by \fIptfig\fP. This instance is warrantied to be unique, because
its name is an identifier at the given hierarchical level.
The list consistency is maintainded, and the space freed. The instance
connectors are also freed, since if the instance disapear, no more connections
can occur on it.
.SH RETURN VALUE
\fBdelloins\fP returns \fB1\fP if the instance has been deleted, \fB0\fP
if no such instance exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
char \(**was_existing(ptfig, insname)
lofig_list \(**ptfig;
char \(**insname;
{
return delloins(ptfig, insname) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR loins (3),
.BR addloins (3),
.BR getloins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,69 @@
.\" $Id: dellosig.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)dellosig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
dellosig
.XE
.XS2 \n%
.ti 0.2i
dellosig
.XE2 \}
.TH DELLOSIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
dellosig \- delete a logical signal
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
int dellosig(ptfig, index)
lofig_list \(**ptfig;
long index;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the signal should be deleted
.TP
\fIindex\fP
Index of the signal to be deleted.
.SH DESCRIPTION
\fBdellosig\fP delete the signal that has \fIindex\fP as \fIINDEX\fP
in the figure pointed to by \fIptfig\fP.
The list consistency is maintainded, and the space freed.
.SH RETURN VALUE
\fBdellosig\fP returns \fB1\fP if the signal has been deleted, \fB0\fP
if the signal index does not exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
char \(**was_existing(ptfig, index)
lofig_list \(**ptfig;
long index;
{
return dellosig(ptfig, index) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR losig (3),
.BR addlosig (3),
.BR getlosig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,70 @@
.\" $Id: dellotrs.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)dellotrs.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
dellotrs
.XE
.XS2 \n%
.ti 0.2i
dellotrs
.XE2 \}
.TH DELLOTRS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
dellotrs \- delete a logical transistor
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
int dellotrs(ptfig, pttrs)
lofig_list \(**ptfig;
lotrs_list \(**pttrs;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the transistor should be deleted
.TP
\fIpttrs\fP
Pointer to the transistor to be deleted.
.SH DESCRIPTION
\fBdellotrs\fP delete the transistor pointed to by \fIpttrs\fP in the figure
pointed to by \fIptfig\fP.
The list consistency is maintainded, and the space freed. The transistor
connectors are also freed, since if the transistor disapear,
no more connections can occur on it.
.SH RETURN VALUE
\fBdellotrs\fP returns \fB1\fP if the transistor has been deleted, \fB0\fP
if the transistor pointer does nit exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
char \(**was_existing(ptfig, pttrs)
lofig_list \(**ptfig;
lotrs_list \(**pttrs;
{
return dellotrs(ptfig, pttrs) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR lotrs (3),
.BR addlotrs (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,82 @@
.\" $Id: delnum.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delnum.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delnum
.XE
.XS4 \n%
.ti 0.2i
delnum
.XE4 \}
.TH DELNUM 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
delnum \- delete an element of a \fBnum_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
num_list \(**delnum(pthead, ptdel)
num_list \(**pthead, \(**ptdel;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpthead\fP
Pointer to a \fBnum\fP list
.TP
\fIptdel\fP
Pointer to the element to be deleted.
.SH DESCRIPTION
\fBdelnum\fP deletes the element of the \fBnum_list\fP pointed to by
\fIptdel\fP in the list pointed to by \fIpthead\fP.
The list consistency is maintainded, and the element put back in the list
of free blocks.
.SH RETURN VALUE
\fBdelnum\fP returns a pointer to the new head of list if the \fIptdel\fP
pointer used to belong to the list. In most case, it has the value of
\fIpthead\fP. If the pointer doesn't belong to the list, \fBNULL\fP is returned.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** delnum impossible : pointer NULL"
.ft R
.RS
At least one of the arguments are pointing to \fBNULL\fP, and that clear that
such a pointer can't be deleted.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void delete_match(c0, c1)
num_list \(**c1, \(**c2;
{
num_list \(**t0, \(**t1, \(**next;
for (t0 = c0; t0; t0 = next)
for (t1 = c1; t1; t1 = t1\->NEXT)
if (t1\->DATA == t0\->DATA)
next = delnum(c0, t0);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR num (3),
.BR addnum (3),
.BR freenum (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,70 @@
.\" $Id: delphcon.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delphcon.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delphcon
.XE
.XS0 \n%
.ti 0.2i
delphcon
.XE0 \}
.TH DELPHCON 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
delphcon \- delete a physical connector
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
int delphcon(ptfig, ptcon)
phfig_list \(**ptfig;
phcon_list \(**ptcon;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the connector should be deleted
.TP
\fIptcon\fP
Pointer to the connector to be deleted.
.SH DESCRIPTION
\fBdelphcon\fP delete the connector pointed to by \fIptcon\fP in the figure
pointed to by \fIptfig\fP.
The list and index consistency is maintainded, and the space freed.
.SH RETURN VALUE
\fBdelphcon\fP returns \fB1\fP if the connector has been deleted, \fB0\fP
if no such connector exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
char \(**was_existing(ptfig, ptcon)
phfig_list \(**ptfig;
phcon_list \(**ptcon;
{
/\(** if only one exists, it's this one \(**/
return delphcon(ptfig, ptcon) ? "you just killed it!\n"
: "wasn't here anyway\n";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phcon (3),
.BR addphcon (3),
.BR getphcon (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,68 @@
.\" $Id: delphfig.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delphfig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delphfig
.XE
.XS0 \n%
.ti 0.2i
delphfig
.XE0 \}
.TH DELPHFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
delphfig \- delete and free a physical figure
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
int delphfig(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the figure to be deleted
.SH DESCRIPTION
\fBdelphfig\fP deletes the figure called \fIfigname\fP from the list of
physical figure in memory. All the lists of elements belonging to the figure
are also deleted and freed.
.SH RETURN VALUE
\fBdelphfig\fP returns \fB1\fP if the figure was delete, and \fB0\fP if no
figure called \fIfigname\fP was present in memory.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void delete_na2_y()
{
if (delphfig("na2_y"))
(void)fputs("deleted na2_y successfully", stdout);
else
(void)fputs("na2_y not present in ram !", stdout);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR addphfig (3),
.BR getphfig (3),
.BR loadphfig (3),
.BR savephfig (3),
.BR flattenphfig (3),
.BR rflattenphfig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,70 @@
.\" $Id: delphins.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delphins.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delphins
.XE
.XS0 \n%
.ti 0.2i
delphins
.XE0 \}
.TH DELPHINS 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
delphins \- delete a physical instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
int delphins(ptfig, insname)
phfig_list \(**ptfig;
char \(**insname;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the instance should be deleted
.TP
\fIinsname\fP
Name of the instance to be deleted.
.SH DESCRIPTION
\fBdelphins\fP delete the instance called \fIinsname\fP in the figure
pointed to by \fIptfig\fP. This instance is warrantied to be unique, because
its name is an identifier at the given hierarchical level.
The list consistency is maintainded, and the space freed.
.SH RETURN VALUE
\fBdelphins\fP returns \fB1\fP if the instance has been deleted, \fB0\fP
if no such instance exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
char \(**was_existing(ptfig, insname)
phfig_list \(**ptfig;
char \(**insname;
{
return delphins(ptfig, insname) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phins (3),
.BR addphins (3),
.BR getphins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,70 @@
.\" $Id: delphref.3,v 1.1 2002/03/08 13:51:01 fred Exp $
.\" @(#)delphref.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delphref
.XE
.XS0 \n%
.ti 0.2i
delphref
.XE0 \}
.TH DELPHREF 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
delphref \- delete a physical reference
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
int delphref(ptfig, ptref)
phfig_list \(**ptfig;
phref_list \(**ptref;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the reference should be deleted
.TP
\fIptref\fP
Pointer to the reference to be deleted.
.SH DESCRIPTION
\fBdelphref\fP delete the reference pointed to by \fIptref\fP in the figure
pointed to by \fIptfig\fP.
The list consistency is maintainded, and the space freed.
.SH RETURN VALUE
\fBdelphref\fP returns \fB1\fP if the reference has been deleted, \fB0\fP
if no such reference exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
char \(**was_existing(ptfig, ptref)
phfig_list \(**ptfig;
phref_list \(**ptref;
{
/\(** if only one exists, it's this one \(**/
return delphref(ptfig, ptref) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phref (3),
.BR addphref (3),
.BR getphref (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,69 @@
.\" $Id: delphseg.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)delphseg.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delphseg
.XE
.XS0 \n%
.ti 0.2i
delphseg
.XE0 \}
.TH DELPHSEG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
delphseg \- delete a physical segment
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
int delphseg(ptfig, ptseg)
phfig_list \(**ptfig;
phseg_list \(**ptseg;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the segment should be deleted
.TP
\fIptseg\fP
Pointer to the segment to be deleted
.SH DESCRIPTION
\fBdelphseg\fP delete the segment pointed to by \fIptseg\fP in the figure
pointed to by \fIptfig\fP.
The list consistency is maintainded, and the space freed.
.SH RETURN VALUE
\fBdelphseg\fP returns \fB1\fP if the segment has been deleted, \fB0\fP
if no such segment exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
char \(**was_existing(ptfig, ptseg)
phfig_list \(**ptfig;
phseg_list \(**ptseg;
{
/\(** if only one exists, it's this one \(**/
return delphseg(ptfig, ptseg) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phseg (3),
.BR addphseg (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,69 @@
.\" $Id: delphvia.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)delphvia.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delphvia
.XE
.XS0 \n%
.ti 0.2i
delphvia
.XE0 \}
.TH DELPHVIA 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
delphvia \- delete a physical via
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
int delphvia(ptfig, ptvia)
phfig_list \(**ptfig;
phvia_list \(**ptvia;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the via should be deleted
.TP
\fIptvia\fP
Pointer to the via to be deleted.
.SH DESCRIPTION
\fBdelphvia\fP delete the via pointed to by \fIptvia\fP in the figure
pointed to by \fIptfig\fP.
The list consistency is maintainded, and the space freed.
.SH RETURN VALUE
\fBdelphvia\fP returns \fB1\fP if the via has been deleted, \fB0\fP
if no such via exists in the list.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
char \(**was_existing(ptfig, ptvia)
phfig_list \(**ptfig;
phvia_list \(**ptvia;
{
/\(** if only one exists, it's this one \(**/
return delphvia(ptfig, ptvia) ? "you just killed it!"
: "wasn't here anyway";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phvia (3),
.BR addphvia (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,84 @@
.\" $Id: delptype.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)delptype.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
delptype
.XE
.XS4 \n%
.ti 0.2i
delptype
.XE4 \}
.TH DELPTYPE 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
delptype \- delete an element of a \fBptype_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
ptype_list \(**delptype(pthead, type)
ptype_list \(**pthead;
long type;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpthead\fP
Pointer to a \fBptype\fP list
.TP
\fItype\fP
The pointer of this type is to be deleted.
.SH DESCRIPTION
\fBdelptype\fP deletes the element of the \fBptype_list\fP that has the type
\fItype\fP in the list pointed to by \fIpthead\fP.
The list consistency is maintained, and the element put back in the list
of free blocks.
.SH RETURN VALUE
\fBdelptype\fP returns a pointer to the new head of list if a \fItype\fPd
pointer used to belong to the list. In most case, it has the value of
\fIpthead\fP. If the \fItype\fP doesn't belong to the list, \fBNULL\fP is
returned.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** delptype impossible : pthead = NULL"
.ft R
.RS
The pointer to the head of list is \fBNULL\fP, and that clear that
such a list can't be ran thru.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mph.h"
void delete_user(ptfig)
phfig_list \(**ptfig;
{
phins_list \(**i;
for (i = ptfig\->PHINS; i; i = i\->NEXT)
i\->USER = delptype(i\->USER, PLACEABOX);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR ptype (3),
.BR addptype (3),
.BR getptype (3),
.BR freeptype (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,64 @@
.\" $Id: downstr.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)downstr.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
downstr
.XE
.XS4 \n%
.ti 0.2i
downstr
.XE4 \}
.TH DOWNSTR 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
downstr \- convert a string to lower case
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void downstr(s, t)
char \(**s, \(**t;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIs\fP
Pointer to the source string
.TP
\fIt\fP
Pointer to the destination string
.SH DESCRIPTION
\fBdownstr\fP converts the \fIs\fP string to lower case in \fIt\fP.
The space for \fIt\fP must be allocated by the caller, and be at least
\fBstrlen(s) + 1\fP long.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void cmp()
{
char \(**s = "PWET", t[5];
downstr(s, t);
if (strcmp(t, "pwet")) {
fprintf(stderr, "Downstr sucks, man");
EXIT();
}
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR upstr (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,81 @@
.\" $Id: filepath.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)filepath.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
filepath
.XE
.XS4 \n%
.ti 0.2i
filepath
.XE4 \}
.TH FILEPATH 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
filepath \- return the whole search path of a file
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**filepath(name, extension)
char \(**name, \(**extension;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIname\fP
Name of the file to be search for
.TP
\fIextension\fP
File extension
.SH DESCRIPTION
\fBfilepath\fP return the absolute path of a cell.
This is useful for error messages, since the caller of mbk file functions
is not able to specify explicitly which file it opened.
Having such an information is also necessary when last modification times or
access times are needed, as for consistency checks.
The file is searched through the environment variable \fBMBK_WORK_LIB\fP(1),
and if not found, through \fBMBK_CATA_LIB\fP(1) in the user defined order.
.br
The file to be searched is called \fIname.extension\fP, if extension is not
\fBNULL\fP, else it is \fIname\fP. If \fIextension\fP is the empty string,
\fB""\fP, then the file name will be \fIname.\fP\ .
.br
.SH RETURN VALUE
\fBfilepath\fP returns \fBNULL\fP on failure, ie the file is not in the pathes,
or the absolute path on success.
The value returned, when not \fBNULL\fP, is stored in a \fBstatic\fP buffer,
so this values is to use at return time or copied into a user buffer.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <stdio.h>
#include "mut.h"
#include "mph.h"
void vti_error(fig, error)
phfig_list \(**fig;
char *(*error)();
{
fprintf(stderr, "Syntax error in %s\\n", filepath(fig->NAME, "cp"));
fprintf(stderr, "%s\\n", error());
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR MBK_WORK_LIB (1),
.BR MBK_CATA_LIB (1),
.BR mbkfopen (3).
.BR mbkunlink (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,87 @@
.\" $Id: flattenlofig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)flattenlofig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
flattenlofig
.XE
.XS3 \n%
.ti 0.2i
flattenlofig
.XE3 \}
.TH FLATTENLOFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL UTILITY FUNCTIONS"
.SH NAME
flattenlofig \- flatten a instance in a logical figure
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void flattenlofig(ptfig, insname, concat)
lofig_list \(**ptfig;
char \(**insname;
char concat;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to a logical figure
.TP
\fIinsname\fP
Name of the instance to be flattened
.TP
\fIconcat\fP
Name generation mode
.SH DESCRIPTION
\fBflattenlofig\fP flattens the instance called \fIinsname\fP in the figure
pointed to by \fIptfig\fP. Flattening means incorporating the
contents of the instance in the figure and removing it from its instance list.
.br
the \fIconcat\fP argument can take either the value \fBYES\fP in which case the
name of the objects comming from the instance are named
\fIinsname'X'objectname\fP, where \fI'X'\fP is the caracter set int the
\fBMBK_SEPAR\fP(1) environment variable, or the value \fBNO\fP, and then the
object name remains inchanged. This is quite dangerous since name unicity is
no more warrantied, and may cause the flatten to fail. See \fBMBK_SEPAR\fP(1),
\fBmbkenv\fP(3) and \fBconcatname\fP(3) for details.
.SH ERRORS
No errors can directly result from a call to \fBflattenlofig\fP, but since it
uses many other mbk functions, it may be an error starting point.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void flatten_na2_y_s(ptfig)
lofig_list \(**ptfig;
{
loins_list \(**pt;
for (pt = ptfig\->LOINS; pt; pt = pt\->NEXT) /\(** scan instance list \(**/
if (!strcmp(pt\->FIGNAME, "na2_y"))
flattenlofig(ptfig, pt\->INSNAME, NO);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR mbkenv (3),
.BR lofig (3),
.BR addlofig (3),
.BR getlofig (3),
.BR dellofig (3),
.BR loadlofig (3),
.BR savelofig (3),
.BR rflattenlofig (3),
.BR MBK_SEPAR (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,87 @@
.\" $Id: flattenphfig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)flatenphfig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
flattenphfig
.XE
.XS1 \n%
.ti 0.2i
flattenphfig
.XE1 \}
.TH FLATTENPHFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL UTILITY FUNCTIONS"
.SH NAME
flatenphfig \- flatten a instance in a figure
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void flatenphfig(ptfig, insname, concat)
phfig_list \(**ptfig;
char \(**insname;
char concat;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to a physical figure
.TP
\fIinsname\fP
Name of the instance to be flattened
.TP
\fIconcat\fP
Name generation mode
.SH DESCRIPTION
\fBflatenphfig\fP flattens the instance called \fIinsname\fP in the figure
pointed to by \fIptfig\fP. Flattening means incorporating the
contents of the instance in the figure and removing it from its instance list.
.br
the \fIconcat\fP argument can take either the value \fBYES\fP in which case the
name of the object comming from the instance are named
\fIinsname'X'objectname\fP, where \fI'X'\fP is the caracter set int the
\fBMBK_SEPAR\fP(1) environment variable, or the value \fBNO\fP, and then the
object name remains inchanged. This is quite dangerous since name unicity is
no more warrantied, and may cause the flatten to fail. See \fBMBK_SEPAR(1)\fP,
\fBmbkenv(3)\fP and \fBconcatname(3)\fP for details.
.SH ERRORS
No errors can directly result from a call to \fBflatenphfig\fP, but since it
uses many other mbk functions, it may be an error starting point.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void flatten_na2_y_s(ptfig)
phfig_list \(**ptfig;
{
phins_list \(**pt;
for (pt = ptfig\->PHINS; pt; pt = pt\->NEXT) /\(** scan instance list \(**/
if (!strcmp(pt\->FIGNAME, "na2_y"))
flatenphfig(ptfig, pt\->INSNAME, NO);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR mbkenv (3),
.BR phfig (3),
.BR addphfig (3),
.BR getphfig (3),
.BR delphfig (3),
.BR loadphfig (3),
.BR savephfig (3),
.BR rflatenphfig (3),
.BR MBK_SEPAR (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,63 @@
.\" $Id: freechain.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)freechain.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
freechain
.XE
.XS4 \n%
.ti 0.2i
freechain
.XE4 \}
.TH FREECHAIN 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
freechain \- free a \fBchain_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void freechain(pt)
chain_list \(**pt;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIpt\fP
Pointer to the \fBchain\fP list to be freed
.SH DESCRIPTION
\fBfreechain\fP frees the \fBchain_list\fP pointed to by \fIpt\fP.
All the elements of the list are put back in the list of free blocks.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void free_from(c, i) /\(** erase list from ith element \(**/
chain_list \(**c;
int i;
{
chain_list \(**t;
while (i--)
c = c\->NEXT;
t = c\->NEXT, c\->NEXT = NULL;
freechain(t);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR chain (3),
.BR addchain (3),
.BR delchain (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,57 @@
.\" $Id: freelomodel.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)freelomodel.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
freelomodel
.XE
.XS2 \n%
.ti 0.2i
freelomodel
.XE2 \}
.TH FREELOMODEL 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
freelomodel \- free a \fBlofig_list\fP for temporary models
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void freelomodel(ptmodel)
lofig_list \(**ptmodel;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIptmodel\fP
Pointer to the model list to be freed
.SH DESCRIPTION
\fBfreelomodel\fP free the \fBlofig_list\fP pointed to by \fIptmodel\fP.
All the elements of the list are given back to the system.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void end_of_parse() /\(** erase model list \(**/
{
freelomodel(MODEL);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR addlomodel (3),
.BR getlomodel (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,62 @@
.\" $Id: freenum.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)freenum.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
freenum
.XE
.XS4 \n%
.ti 0.2i
freenum
.XE4 \}
.TH FREENUM 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
freenum \- free a \fBnum_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void freenum(pt)
num_list \(**pt;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIpt\fP
Pointer to the \fBnum\fP list to be freed
.SH DESCRIPTION
\fBfreenum\fP frees the \fBnum_list\fP pointed to by \fIpt\fP.
All the elements of the list are put back in the list of free blocks.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void free_from(c, i) /\(** erase list from ith element \(**/
num_list \(**c;
int i;
{
num_list \(**t;
while (i--)
c = c\->NEXT;
t = c\->NEXT, c\->NEXT = NULL;
freenum(t);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR num (3),
.BR addnum (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,64 @@
.\" $Id: freeptype.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)freeptype.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
freeptype
.XE
.XS4 \n%
.ti 0.2i
freeptype
.XE4 \}
.TH FREEPTYPE 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
freeptype \- free a \fBptype_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
ptype_list \(**freeptype(pt)
ptype_list \(**pt;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIpt\fP
Pointer to the ptype list to be freed
.SH DESCRIPTION
\fBfreeptype\fP frees the \fBptype_list\fP pointed to by \fIpt\fP.
All the elements of the list are put back in the list of free blocks.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void free_from(c, i) /\(** erase list from ith element \(**/
ptype_list \(**c;
int i;
{
ptype_list \(**t;
while (i--)
c = c\->NEXT;
t = c\->NEXT, c\->NEXT = NULL;
freeptype(t);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR ptype (3),
.BR addptype (3),
.BR getptype (3),
.BR delptype (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,87 @@
.\" $Id: gethtitem.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)gethtitem.2 7.01 92/08/22 ; Labo masi cao-vlsi; Author : Luc Burgun
.\" slightly modified by Fred Petrot for mbk adaptation on 22/06/92
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
gethtitem
.XE
.XS4 \n%
.ti 0.2i
gethtitem
.XE4 \}
.TH GETHTITEM 3 "October 1, 1997" "ASIM/LIP6" "MBK HASH TABLE MANAGEMENT FUNCTIONS"
.SH NAME
gethtitem \- searches an item in a hash table
.so man1/alc_origin.1
.SH SYNOPSYS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include "mut.h"
int gethtitem(table, key)
ht \(**table;
void \(**key;
.fi
.ft R
.SH PARAMETERS
.TP 20
\fItable\fP
Hash table pointer
.TP 20
\fIkey\fP
Key used by the hash coding function
.SH DESCRIPTION
\fBgethtitem()\fP searches an item in the hash table pointed to by \fItable\fP.
.SH RETURN VALUE
If the key \fIkey\fP exists, the associated value is returned,
if it doesn't, the function returns \fBEMPTYHT\fP.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.nf
#include <stdio.h>
#include "mut.h"
check(p)
losig_list *p;
{
char *amatla;
losig_list *ptsig;
locon_list *ptcon;
ht *h;
for (i = 0, ptsig = p->LOSIG; ptsig; i++, ptsig = ptsig->NEXT);
h = addht(i);
/* two connectors can't have the same name! */
for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
addhtitem(h, ptcon->NAME, 0);
for (ptsig = p->LOSIG; ptsig; ptsig = ptsig->NEXT) {
if (ptsig->TYPE == INTERNAL) {
amatla = getsigname(ptsig);
/* this is nicely done with sethtitem! */
if (gethtitem(h, amatla) == EMPTYHT) {
printf("N %s;\\n", amatla);
addhtitem(h, amatla, 0);
}
}
}
delht();
}
.fi
.ft R
.SH SEE ALSO
.BR mbk (1),
.BR addht (3),
.BR delht (3),
.BR addhtitem (3),
.BR delhtitem (3),
.BR viewht (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,77 @@
.\" $Id: getlocon.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getlocon.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getlocon
.XE
.XS2 \n%
.ti 0.2i
getlocon
.XE2 \}
.TH GETLOCON 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
getlocon \- retrieve a logical connector
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
locon_list \(**getlocon(ptfig, name)
lofig_list \(**ptfig;
char \(**name;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the connector should be seeked
.TP
\fIname\fP
Name of the connector
.SH DESCRIPTION
\fBgetlocon\fP looks in the list of connectors of the logical model pointed
to by \fIptfig\fP for a connector identified by its \fIname\fP, since it
should be unique at a given hierachical level.
.SH RETURN VALUE
\fBgetlocon\fP returns a pointer to the given connector.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** getlocon impossible :
connector \fIname\fP doesn't exist in figure \fIptfig\->NAME\fP"
.ft R
.RS
No connector matches the name.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
locon_list \(**exist(figname, conname)
char \(**figname, \(**conname;
{
return getlocon(getlofig(figname), conname);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR locon (3),
.BR addlocon (3),
.BR dellocon (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,81 @@
.\" $Id: getlofig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getlofig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getlofig
.XE
.XS3 \n%
.ti 0.2i
getlofig
.XE3 \}
.TH GETLOFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL UTILITY FUNCTIONS"
.SH NAME
getlofig \- give back a pointer to a \fIlofig\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
lofig_list \(**getlofig(figname, mode)
char \(**figname;
char mode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIfigname\fP
Name of the figure to be created
.TP
\fImode\fP
Demanded mode for the figure
.SH DESCRIPTION
\fBgetlofig\fP returns a pointer to the figure called \fIfigname\fP with the
warranty that the expected information is present in memory.
.br
If \fImode\fP is \fB'A'\fP then the figure has all its lists filled, else
the figure may either be complete or interface only.
.br
This function allows to completly mask disk access for applications
programs. If the figure is in memory, with the specified \fImode\fP,
then the function returns the appropriate pointer. Else, the function performs
a call to the \fBloadlofig(3)\fP and returns a pointer to the loaded
figure.
.SH RETURN VALUE
\fBgetlofig\fP returns a pointer to the wanted figure.
.SH ERRORS
\fBgetlofig\fP cannot give any errors, but the subsequent calls it performs
to parsers do. So the source of trouble may be the call to \fBgetlofig\fP.
See \fBloadlofig\fP(3) for details.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
lofig_list \(**na2_y()
{
/\(** find in memory or load from disk na2_y \(**/
return getlofig("na2_y", 'A');
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR addlofig (3),
.BR dellofig (3),
.BR loadlofig (3),
.BR savelofig (3),
.BR flattenlofig (3),
.BR rflattenlofig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,78 @@
.\" $Id: getloins.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getloins.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getloins
.XE
.XS2 \n%
.ti 0.2i
getloins
.XE2 \}
.TH GETLOINS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
getloins \- retrieve a logical instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
loins_list \(**getloins(ptfig, name)
lofig_list \(**ptfig;
char \(**name;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the instance should be seeked
.TP
\fIname\fP
Name of the instance
.SH DESCRIPTION
\fBgetloins\fP looks in the list of instances of the logical model pointed
to by \fIptfig\fP for a instance identified by its \fIname\fP. This instance
is unique, since the \fIname\fP is the instance identifier.
.SH RETURN VALUE
\fBgetloins\fP returns a pointer to the instance that matches the
\fIname\fP.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal getloins instance \fIname\fP doesn't exist
in figure \fIptfig\->NAME\fP"
.ft R
.RS
No instance is called \fIname\fP in the figure.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
loins_list \(**get_ins_by_name(figname, insname)
char \(**figname, \(**insname;
{
return getloins(getlofig(figname), insname);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR loins (3),
.BR addloins (3),
.BR delloins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,68 @@
.\" $Id: getlomodel.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getlomodel.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getlomodel
.XE
.XS2 \n%
.ti 0.2i
getlomodel
.XE2 \}
.TH GETLOMODEL 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
getlomodel \- retrieve a model from a \fBlofig_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
lofig_list \(**getlomodel(model, name)
lofig_list \(**model;
char \(**name;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fImodel\fP
Pointer to a lofig list
.TP
\fIname\fP
String indicating the model to be looked for
.SH DESCRIPTION
\fBgetlomodel\fP seeks a \fBlofig\fP element in the list pointed to by
\fImodel\fP.
.SH RETURN VALUE
\fBgetlomodel\fP returns a pointer to the \fBlofig\fP that match the \fIname\fP.
If no \fBlofig\fP has the given \fIname\fP, then \fBNULL\fP is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
locon_list *get_model_cons(model, name)
lofig_list \(**model;
char \(**name;
{
lofig_list \(**p = getlomodel(model, name);
return p ? p\->LOCON : NULL;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR addlomodel (3),
.BR freelomodel (3),
.BR dellomodel (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,79 @@
.\" $Id: getlosig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getlosig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getlosig
.XE
.XS2 \n%
.ti 0.2i
getlosig
.XE2 \}
.TH GETLOSIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
getlosig \- retrieve a logical signal
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
losig_list \(**getlosig(ptfig, index)
lofig_list \(**ptfig;
long index;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the signal should be seeked
.TP
\fIindex\fP
Index of the signal
.SH DESCRIPTION
\fBgetlosig\fP looks in the list of signals of the logical model pointed
to by \fIptfig\fP for a signal identified by its \fIindex\fP. This signal
is unique, since the \fIindex\fP is the signal identifier.
.SH RETURN VALUE
\fBgetlosig\fP returns a pointer to the signal that matches the
\fIindex\fP.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal getlosig signal \fIindex\fP doesn't exist
in figure \fIptfig\->NAME\fP"
.ft R
.RS
No signal has \fIindex\fP as \fIINDEX\fP in the figure.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
losig_list \(**get_sig_by_name(figname, index)
char \(**figname;
long index;
{
return getlosig(getlofig(figname), index);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR losig (3),
.BR addlosig (3),
.BR dellosig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,83 @@
.\" $Id: getphcon.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getphcon.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getphcon
.XE
.XS0 \n%
.ti 0.2i
getphcon
.XE0 \}
.TH GETPHCON 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
getphcon \- retrieve a physical connector
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phcon_list \(**getphcon(ptfig, conname, index)
phfig_list \(**ptfig;
char \(**conname;
long index;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the connector should be seeked
.TP
\fIconname\fP
Name of the connector
.TP
\fIindex\fP
Connector index
.SH DESCRIPTION
\fBgetphcon\fP looks in the list of connectors of the physical model pointed
to by \fIptfig\fP for a connector identified by its \fIconname\fP and
\fIindex\fP. Both are needed to make sure the right connector is given back
since \fIn\fP internally wired connectors have the same name.
.SH RETURN VALUE
\fBgetphcon\fP returns a pointer to the given connector.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal getphcon connector \fIconname.index\fP
doesn't exist in figure \fIptfig\->NAME\fP"
.ft R
.RS
No connectors match both arguments.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phcon_list \(**exist(figname, conname)
char \(**figname, \(**conname;
{
/\(** if only one exists, it's this one \(**/
return getphcon(getphfig(figname), conname, 0L);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phcon (3),
.BR addphcon (3),
.BR delphcon (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,80 @@
.\" $Id: getphfig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getphfig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getphfig
.XE
.XS1 \n%
.ti 0.2i
getphfig
.XE1 \}
.TH GETPHFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL UTILITY FUNCTIONS"
.SH NAME
getphfig \- give back a pointer to a \fIphfig\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phfig_list \(**getphfig(figname, mode)
char \(**figname;
char mode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIfigname\fP
Name of the figure to be created
\fImode\fP
Demanded mode for the figure
.SH DESCRIPTION
\fBgetphfig\fP returns a pointer to the figure called \fIfigname\fP with the
warranty that the expected information is present in memory.
.br
If \fImode\fP is \fB'A'\fP then the figure has all its lists filled, else
the figure may either be complete or interface only.
.br
This function allows to completly mask disk access for applications
programs. If the figure is in memory, with the specified \fImode\fP,
then the function returns the appropriate pointer. Else, the function performs
a call to the \fBloadphfig\fP(3) and returns a pointer to the loaded
figure.
.SH RETURN VALUE
\fBgetphfig\fP returns a pointer to the wanted figure.
.SH ERRORS
\fBgetphfig\fP cannot give any errors, but the subsequent calls it performs
to parsers do. So the source of trouble may be the call to \fBgetphfig\fP.
See \fBloadphfig\fP(3) for details.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phfig_list \(**na2_y()
{
/\(** find in memory or load from disk na2_y \(**/
return getphfig("na2_y", 'A');
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR addphfig (3),
.BR delphfig (3),
.BR loadphfig (3),
.BR savephfig (3),
.BR flattenphfig (3),
.BR rflattenphfig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,77 @@
.\" $Id: getphins.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getphins.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getphins
.XE
.XS0 \n%
.ti 0.2i
getphins
.XE0 \}
.TH GETPHINS 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
getphins \- retrieve a physical instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phins_list \(**getphins(ptfig, insname)
phfig_list \(**ptfig;
char \(**insname;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the instance should be seeked
.TP
\fIinsname\fP
Name of the instance
.SH DESCRIPTION
\fBgetphins\fP looks in the list of instances of the physical model pointed
to by \fIptfig\fP for a instance identified by its \fIinsname\fP.
.SH RETURN VALUE
\fBgetphins\fP returns a pointer to the instance that matches the
\fIinsname\fP.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal getphins instance \fIinsname\fP doesn't exist
in figure \fIptfig\->NAME\fP"
.ft R
.RS
No instance is called \fIinsname\fP in the figure.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phins_list \(**exist(figname, insname)
char \(**figname, \(**insname;
{
return getphins(getphfig(figname), insname);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phins (3),
.BR addphins (3),
.BR delphins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,77 @@
.\" $Id: getphref.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getphref.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getphref
.XE
.XS0 \n%
.ti 0.2i
getphref
.XE0 \}
.TH GETPHREF 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL FUNCTIONS"
.SH NAME
getphref \- retrieve a physical reference
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phref_list \(**getphref(ptfig, refname)
phfig_list \(**ptfig;
char \(**refname;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the reference should be seeked
.TP
\fIrefname\fP
Name of the reference
.SH DESCRIPTION
\fBgetphref\fP looks in the list of references of the physical model pointed
to by \fIptfig\fP for a reference identified by its \fIrefname\fP.
.SH RETURN VALUE
\fBgetphref\fP returns a pointer to the reference that matches the
\fIrefname\fP.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** illegal getphref reference \fIrefname\fP doesn't exist
in figure \fIptfig\->NAME\fP"
.ft R
.RS
No reference is called \fIrefname\fP in the figure.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phref_list \(**exist(figname, refname)
char \(**figname, \(**refname;
{
return getphref(getphfig(figname), refname);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phfig (3),
.BR phref (3),
.BR addphref (3),
.BR delphref (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,73 @@
.\" $Id: getptype.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getptype.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getptype
.XE
.XS4 \n%
.ti 0.2i
getptype
.XE4 \}
.TH GETPTYPE 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
getptype \- retrieve a \fBptype\fP from a \fBptype_list\fP
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
ptype_list \(**getptype(pthead,type)
ptype_list \(**pthead;
long type;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIpthead\fP
Pointer to a \fBptype\fP list
.TP
\fItype\fP
Flag indicating the pointer owner
.SH DESCRIPTION
\fBgetptype\fP looks for a \fBptype\fP element in the list pointed to by
\fIpthead\fP.
.SH RETURN VALUE
\fBgetptype\fP returns a pointer to the \fBptype\fP that match the \fItype\fP.
Be careful, it is not the \fIptype\->DATA\fP that is returned.
If no \fBptype\fP has the given \fItype\fP, then \fBNULL\fP is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mph.h"
void get_corner(ptfig, name, x2, y2)
phfig_list \(**ptfig;
char \(**name;
int \(**x2, \(**y2;
{
phins_list \(**i = getphins(ptfig, name);
ptype_list \(**p = getptype(i\->USER, (long)PLACEABOX);
\(**x2 = (num_list \(**)(p\->DATA)\->DATA;
\(**y2 = (num_list \(**)(p\->DATA)\->NEXT\->DATA;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR ptype (3),
.BR addptype (3),
.BR freeptype (3),
.BR delptype (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,60 @@
.\" $Id: getsigname.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)getsigname.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
getsigname
.XE \}
.TH GETSIGNAME 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
getsigname \- choose a signal name in alias list
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
char \(**getsigname(ptsig)
losig_list \(**ptsig;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIptsig\fP
Pointer to \fBlosig_list\fP
.SH DESCRIPTION
The \fBgetsigname\fP function choose the higher hierachical level name of the
alias list of a signal.
The alias list is pointer to by the \fINAMECHAIN\fP pointer of the \fBlosig\fP
structure, and contains zero or more names corresponding to the signal.
Since the signal may result from a flatten, instance names may be concatenated
to the actual signal name.
.SH RETURN VALUE
\fBgetsigname\fP returns the higher hierachy level name, if
\fIptsig\->NAMECHAIN\fP is not \fBNULL\fP, else a name constructed with
the signal \fBINDEX\fP is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void print_signame(p)
losig_list \(**p;
{
fprintf(stdout, "signal name : %s\\n", getsigname(p));
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR losig (3),
.BR chain (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,70 @@
.\" $Id: givelosig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)givelosig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
givelosig
.XE
.XS3 \n%
.ti 0.2i
givelosig
.XE3 \}
.TH GIVELOSIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL UTILITY FUNCTIONS"
.SH NAME
givelosig \- give a logical signal
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
losig_list \(**givelosig(ptfig, index)
lofig_list \(**ptfig;
long index;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to the figure in which the signal should be seeked or created
.TP
\fIindex\fP
Index of the signal to find or create
.SH DESCRIPTION
\fBgivelosig\fP looks in the list of signals of the logical model pointed
to by \fIptfig\fP for a signal identified by its \fIindex\fP. If this signal
exists, then its pointer is returned, else, the signal is created, with
direction, \fIDIR\fP, \fBUNKNOWN\fP, and \fITYPE\fP \fBINTERNAL\fP, and, of
course \fIINDEX\fP \fIindex\fP, and the pointer is returned.
.SH RETURN VALUE
\fBgivelosig\fP returns a pointer to the signal.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
losig_list \(**give_sig_by_name(figname, index)
char \(**figname;
long index;
{
/\(** never fails \(**/
return givelosig(getlofig(figname), index);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR losig (3),
.BR addlosig (3),
.BR dellosig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,86 @@
.\" $Id: guessextdir.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)guessextdir.2 1.00 92/10/27 ; Labo masi cao-vlsi; Author : Vincent POUILLEY
.\"modified by Frederic Petrot to meet english language requirements!
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
guessextdir
.XE
.XS2 \n%
.ti 0.2i
guessextdir
.XE2 \}
.TH GUESSEXTDIR 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL UTILITY FUNCTIONS"
.SH NAME
guessextdir \- guess external connectors directions from internal connectors directions
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
int guessextdir(ptfig)
lofig_list \(**ptfig;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIptfig\fP
Pointer to a lofig_list
.SH DESCRIPTION
The \fBguessextdir\fP function guesses external connectors directions from
internal connectors' ones.
The translation table below indicates the resulting direction
for two internals connectors.
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
IN OUT INOUT UNKNOWN TRISTATE TRANSCV
IN IN INOUT INOUT IN TRANSCV TRANSCV
OUT INOUT OUT+ INOUT+ OUT OUT+ TRANSCV+
INOUT INOUT INOUT+ INOUT+ INOUT INOUT+ INOUT+
UNKNOWN IN OUT INOUT UNKNOWN TRISTATE TRANSCV
TRISTATE TRANSCV OUT+ INOUT+ TRISTATE TRISTATE TRANSCV
TRANSCV TRANSCV TRANSCV+ INOUT+ TRANSCV TRANSCV TRANSCV
.SH RETURN VALUE
\fBguessextdir\fP returns \fB1\fP on success, \fB0\fP
if there is an error in the translation.
.SH ERROR
The values followed by a \fB+\fP character in the translation table indicate
an error.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
lofig_list \(** getgoodlofig(figname, mode)
char \(**figname;
char mode;
{
lofig_list \(**ptfig;
ptfig = getlofig(figname, mode);
restorealldir(ptfig);
guessextdir(ptfig);
return ptfig;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR locon (3),
.BR getlofig (3),
.BR restorealldir (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,75 @@
.\" $Id: incatalog.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)incatalog.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
incatalog
.XE
.XS4 \n%
.ti 0.2i
incatalog
.XE4 \}
.TH INCATALOG 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
incatalog \- test if cell belongs to the catalog file
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
int incatalog(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the cell to be checked
.SH DESCRIPTION
\fBincatalog\fP checks a cell represented by its \fIfigname\fP beeing
present in the catalog file with the \fB'C'\fP attribut.
.br
This means that when flattening, the hierachy destruction stops when
encountering a cell belonging to the catalog.
This is meant for both logical and physical views, of course.
.br
The catalog is the sum of all the catalogs of the cells libraries specified
in the \fBMBK_CATA_LIB\fP(1) and \fBMBK_WORK_LIB\fP(1).
The catalogs of the \fBMBK_CATA_LIB\fP(1) are the files called \fBCATAL\fP,
and the \fBMBK_WORK_LIB\fP(1) is by default \fBCATAL\fP but can be changed
to \fBMBK_CATAL_NAME\fP(1).
.SH RETURN VALUE
\fBincatalog\fP returns \fB0\fP if the cell does not belong to the catalog
with the \fB'C'\fP attribut,
a value different from \fB0\fP if it does.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**tell_if_incatalog(name)
char \(**name;
{
return incatalog(name) ? "Jawohl, mein Herr" : "Nein, danke";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR incatalogfeed (3),
.BR incatalogdelete (3),
.BR incataloggds (3),
.BR MBK_CATAL_NAME (1),
.BR MBK_CATA_LIB (1),
.BR MBK_WORK_LIB (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,71 @@
.\" $Id: incatalogdelete.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)incatalogdelete.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
incatalogdelete
.XE
.XS4 \n%
.ti 0.2i
incatalogdelete
.XE4 \}
.TH INCATALOGDELETE 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
incatalogdelete \- test if cell belongs to the catalog file
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
int incatalogdelete(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the cell to be checked
.SH DESCRIPTION
\fBincatalogdelete\fP checks a cell represented by its \fIfigname\fP beeing
present in the catalog file with the \fB'D'\fP attribut.
This means that the cell is to be deleted from the catalog.
\fBincatalogdelete\fP returns \fB0\fP if the cell does not belong to the
catalog with the \fB'D'\fP attribut, \fB1\fP if it does.
.br
The catalog is the sum of all the catalogs of the cells libraries specified
in the \fBMBK_CATA_LIB\fP(1) and \fBMBK_WORK_LIB\fP(1).
The catalogs of the \fBMBK_CATA_LIB\fP(1) are the files called \fBCATAL\fP,
and the \fBMBK_WORK_LIB\fP(1) is by default \fBCATAL\fP but can be changed
to \fBMBK_CATAL_NAME\fP(1).
.SH RETURN VALUE
\fBincatalogdelete\fP returns \fB0\fP if the cell does not belong to the
catalog with the \fB'D'\fP attribut,
a value different from \fB0\fP if it does.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**tell_if_incatalogdelete(name)
char \(**name;
{
return incatalogdelete(name) ? "Not checked for catalog" : "Checked";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR incatalog (3),
.BR incatalogfeed (3).
.BR incataloggds (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,73 @@
.\" $Id: incatalogfeed.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)incatalogfeed.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
incatalogfeed
.XE
.XS4 \n%
.ti 0.2i
incatalogfeed
.XE4 \}
.TH INCATALOGFEED 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
incatalogfeed \- test if cell belongs to the catalog file
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
int incatalogfeed(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the cell to be checked
.SH DESCRIPTION
\fBincatalogfeed\fP checks a cell represented by its \fIfigname\fP beeing
present in the catalog file with the \fI'F'\fP attribut.
This means that the cell is a feed through, and does not have a logical
equivalent representation while beeing physicaly used.
.br
This information is mostly needed by routers, since \fI"logical feed through"\fP
has no design meaning.
.br
The catalog is the sum of all the catalogs of the cells libraries specified
in the \fBMBK_CATA_LIB\fP(1) and \fBMBK_WORK_LIB\fP(1).
The catalogs of the \fBMBK_CATA_LIB\fP(1) are the files called \fBCATAL\fP,
and the \fBMBK_WORK_LIB\fP(1) is by default \fBCATAL\fP but can be changed
to \fBMBK_CATAL_NAME\fP(1).
.SH RETURN VALUE
\fBincatalogfeed\fP returns \fB0\fP if the cell does not belong to the
catalog with the \fB'F'\fP attribut,
a value different from \fB0\fP if it does.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**tell_if_incatalogfeed(name)
char \(**name;
{
return incatalogfeed(name) ? "Jawohl, mein Herr" : "Nein, danke";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR incatalog (3),
.BR incatalogdelete (3),
.BR incataloggds (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,74 @@
.\" $Id: incataloggds.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)incataloggds.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
incataloggds
.XE
.XS4 \n%
.ti 0.2i
incataloggds
.XE4 \}
.TH INCATALOGGDS 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
incataloggds \- test if cell belongs to the catalog file
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
int incataloggds(figname)
char \(**figname;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIfigname\fP
Name of the cell to be checked
.SH DESCRIPTION
\fBincataloggds\fP checks a cell represented by its \fIfigname\fP beeing
present in the catalog file with the \fB'G'\fP attribut.
This means that the cell is a phantom of a gds cell.
.br
This is useful when traducing a symbolic layout into physical one, because
then the \fB'G'\fP attribued cells are not to be translated, but just replaced
in the output.
This is mostly used for pads.
.br
The catalog is the sum of all the catalogs of the cells libraries specified
in the \fBMBK_CATA_LIB\fP(1) and \fBMBK_WORK_LIB\fP(1).
The catalogs of the \fBMBK_CATA_LIB\fP(1) are the files called \fBCATAL\fP,
and the \fBMBK_WORK_LIB\fP(1) is by default \fBCATAL\fP but can be changed
to \fBMBK_CATAL_NAME\fP(1).
.SH RETURN VALUE
\fBincataloggds\fP returns \fB0\fP if the cell does not belong to the
catalog with the \fB'G'\fP attribut,
a value different from \fB0\fP if it does.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**tell_if_incataloggds(name)
char \(**name;
{
return incataloggds(name) ? "Jawohl, es ist ein pad" : "Nein, keine";
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR incatalog (3),
.BR incatalogdelete (3),
.BR incatalogfeed (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,80 @@
.\" $Id: instanceface.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)instanceface.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
instanceface
.XE
.XS1 \n%
.ti 0.2i
instanceface
.XE1 \}
.TH INSTANCEFACE 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL UTILITY FUNCTIONS"
.SH NAME
instanceface \- returns the face of a connector in a placed instance
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void \(**instanceface(modelface, symmetry)
char modelface, symmetry;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fImodelface\fP
Face of a connector in its figure.
.TP 20
\fIsymmetry\fP
Geometrical operation applied to the instanciation of the figure.
.SH DESCRIPTION
\fBinstanceface\fP determines the orientation of a connector in an instance of
its model.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
char channelFace(channelDir, i, c)
char channelDir;
phins_list *i;
phcon_list *c;
{
if (channelDir == VER)
switch (instanceface(c->ORIENT, i->TRANSF)) {
case EAST :
return WEST;
case WEST :
return EAST;
default :
return instanceface(c->ORIENT, i->TRANSF);
}
else
switch (instanceface(c->ORIENT, i->TRANSF)) {
case NORTH :
return SOUTH;
case SOUTH :
return NORTH;
default :
return instanceface(c->ORIENT, i->TRANSF);
}
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR phcon (3),
.BR phfig (3),
.BR phins (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,77 @@
.\" $Id: instr.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)instr.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
instr
.XE
.XS4 \n%
.ti 0.2i
instr
.XE4 \}
.TH INSTR 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
instr \- find an occurence of a string in a string, starting at a
specified character.
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
char \(**instr(s, find, from)
char \(**s, \(**find, from;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIs\fP
Pointer to the string to be searched for the pattern
.TP
\fIfind\fP
Pointer to the string to be found, the pattern
.TP
\fIfrom\fP
Character to be searched backwards before searching for the pattern
.SH DESCRIPTION
\fBinstr\fP searches the first occurence of the string \fIfind\fP in the string
\fIs\fP, starting its search at the last occurence of the \fIfrom\fP character
in the string \fIs\fP.
.LP
If either \fIs\fP or \fIfind\fP is \fBNULL\fP, the function returns \fBNULL\fP.
If \fIfrom\fP is \fB(char)0\fP, the pattern is searched from the begining of
\fIs\fP.
.br
This quite exotic behaviour is useful to search the occurence of a name in a
string resulting from a flatten, when only a terminal object name is to be
taken into account.
.SH RETURN VALUES
\fBinstr\fP return \fBNULL\fP either if the pattern \fIfind\fP is not present
in the searched string \fIs\fP, or if one at least of these two string are
\fBNULL\fP.
If the pattern is found, a value different from \fBNULL\fP is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
/* check for the pattern 'ck' anywhere in the string */
#define contains_ck(name) instr(name, "ck", '\0')
/* check for the pattern 'ck' in the signal name, not instance ones */
#define isclock(ptsig) instr(getsigname(ptsig), "ck", SEPAR)
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR isvdd (3),
.BR isvss (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,79 @@
.\" $Id: isvdd.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)isvdd.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
isvdd
.XE
.XS4 \n%
.ti 0.2i
isvdd
.XE4 \}
.TH ISVDD 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
isvdd \-tells if a name contains the pattern defined by the user
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void isvdd(s)
char \(**s;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIs\fP
Pointer to the string to be check as power high
.SH DESCRIPTION
\fBisvdd\fP searches an occurence of the string defined by the \fBMBK_VDD\fP(1)
environment variable in the string \fIs\fP.
If this string is not set by the user, its default value is "vdd".
.SH RETURN VALUE
\fBisvdd\fP return \fBNULL\fP the pattern is not present
If the pattern is found, a value different from \fBNULL\fP is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
find_a_vdd(f)
lofig_list *f;
{
locon_list *c;
losig_list *s;
/* first check connectors */
for (c = f->LOCON; c; c = c->NEXT) {
if (isvdd(c->NAME))
return c->SIG;
if (isvdd(getsigname(c->SIG)))
return c->SIG;
}
/* then check internal signals */
for (s = f->LOSIG; s; s = s->NEXT)
if (s->TYPE == INTERNAL)
if (isvdd(getsigname(s)))
return s;
return NULL;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR mbkenv (3),
.BR instr (3),
.BR isvss (3),
.BR MBK_VDD (1),
.BR MBK_VSS (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,79 @@
.\" $Id: isvss.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)isvss.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
isvss
.XE
.XS4 \n%
.ti 0.2i
isvss
.XE4 \}
.TH ISVSS 3 "October 1, 1997" "ASIM/LIP6" "MBK UTILITY FUNCTIONS"
.SH NAME
isvss \-tells if a name contains the pattern defined by the user
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
void isvss(s)
char \(**s;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIs\fP
Pointer to the string to be check as power high
.SH DESCRIPTION
\fBisvss\fP searches an occurence of the string defined by the \fBMBK_VSS\fP(1)
environment variable in the string \fIs\fP.
If this string is not set by the user, its default value is "vss".
.SH RETURN VALUE
\fBisvss\fP return \fBNULL\fP the pattern is not present
If the pattern is found, a value different from \fBNULL\fP is returned.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
find_a_vss(f)
lofig_list *f;
{
locon_list *c;
losig_list *s;
/* first check connectors */
for (c = f->LOCON; c; c = c->NEXT) {
if (isvss(c->NAME))
return c->SIG;
if (isvss(getsigname(c->SIG)))
return c->SIG;
}
/* then check internal signals */
for (s = f->LOSIG; s; s = s->NEXT)
if (s->TYPE == INTERNAL)
if (isvss(getsigname(s)))
return s;
return NULL;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR mbkenv (3),
.BR instr (3),
.BR isvdd (3),
.BR MBK_VDD (1),
.BR MBK_VSS (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,146 @@
.\" $Id: libpat.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)pat.2 106 Sep 30 1996 UPMC; Pirouz BAZARGAN SABET
.TH LIBPAT 3 "October 1, 1997" "ASIM/LIP6" "cao\-vlsi reference manual"
.so man1/alc_origin.1
.SH NAME
.PP
\fBPAT\fP \- Generic pattern data structure
.SH DESCRIPTION
.PP
\fBPAT\fP is a generic data structure supporting vlsi concepts.
It allows representation of a sequence of simulation patterns in a data
structure.
.PP
The goal of \fBPAT\fP is to define an ad hoc single data structure (object),
with well known fixed meaning for each concept manipulated in pattern
description. So any tools that needs to access simulation patterns 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
\fIlibPat106.a\fP. Some other functions are higher level. They are defined in a
high\-level library \fIlibPhl106.a\fP. There are also some parsers\-drivers.
A parser reads a pattern description file in a given format and build up a
complete \fBPAT\fP data base. A driver creates a text file in a given format
from a \fBPAT\fP data base. A \fBpat\fP format parser\-driver is available
in the \fIlibPpt106.a\fP library.
.PP
Pattern description envolves the following notions (for further details see
pat(5)):
.TP 20
\fIinput\fP
port controlled by the user
.TP 20
\fIoutput\fP
signal or port observed by the user
.TP 20
\fIinitialization\fP
forcing the value of a register
.TP 20
\fIpattern sequence\fP
list of values to be forced on inputs or to be checked as the result of the
simulation on outputs
.PP
The input\-output list is represented by two data structures: \fIpagrp\fP
contains informations relative to actual or virtual arraies and, \fIpaiol\fP
represents a one\-bit input\-output. Both are simply chained lists. However,
to make a more efficient access to \fIpaiol\fP structures, they are organized
in a table. So, a \fIpaiol\fP can also be addressed using an offset.
.PP
Another group of data structures is used to represent a pattern. \fIpaini\fP
contains values to be forced into registers before processing the pattern.
An event (a modification of value) on an input\-output is given by a
\fIpaevt\fP structure. A third structure, \fIpapat\fP gathers all information
concerning a pattern (including initializations \- \fIpaini\fP \- and events \-
\fIpaevt\fP).
.PP
A \fIpacom\fP is used to represent a comment.
.PP
Finally, all these structures can be accessed through a unique structure,
\fIpaseq\fP, designed to represent a complete sequence of simulation patterns.
.SH ORGANIZATION
.PP
In order to use \fBPAT\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 \fBPAT\fP applications.
This is required because any soft must be easily recompilable, and knowing
the needed libraries for a \fBPAT\fP based program is not an easy matter.
It can't be achieved by an other way, so do use \fImakefile\fP.
.PP
In terms of software organization, \fBPAT\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 \fBpat\fP 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, \fBPAT\fP
libraries may evolve independently form each other.
.PP
Here follows the list of the libraries and their contents.
.TP 20
libPat106.a:
\fBpat_addpaseq, pat_addpagrp,\fP
\fBpat_addpaiol, pat_addpapat,\fP
\fBpat_addpaevt, pat_addpaini,\fP
\fBpat_addpacom, pat_frepaini,\fP
\fBpat_frepaiol, pat_frepacom,\fP
\fBpat_frepapat, pat_frepaevt,\fP
\fBpat_crtpaiol\fP
.TP 20
libPhl106.a:
\fBpat_debug, pat_getcount\fP
.TP 20
libPpt106.a:
\fBpat_lodpaseq, pat_savpaseq,\fP
\fBpat_drvpat, pat_prspat\fP
.PP
The libraries are organized in such a way that no cycle can appear through
calls. It means that, if in 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 \fBPAT\fP libraries, one needs something like this in its
\fImakefile\fP:
.RS
HEADER = -I/labo/include
.br
LIB = -L/labo/lib -lPat106 -lPhl106 -lPpt106 -lMut315
.RE
.SH SEE ALSO
.PP
mbk(1), pat(5)
.so man1/alc_bug_report.1

View File

@ -0,0 +1,138 @@
.\" $Id: loadlofig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)loadlofig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
loadlofig
.XE
.XS3 \n%
.ti 0.2i
loadlofig
.XE3 \}
.TH LOADLOFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL UTILITY FUNCTIONS"
.SH NAME
loadlofig \- load a new logical cell model from disk
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void loadlofig(ptfig, figname, mode)
lofig_list \(**ptfig;
char \(**figname;
char mode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to an allocated but empty \fIlofig\fP
.TP
\fIfigname\fP
Name of the figure to be loaded
.TP
\fImode\fP
Loading mode
.SH DESCRIPTION
\fBloadlofig\fP fills the \fIlofig\fP pointed to by \fIptfig\fP with the
contents of a disk file called \fIfigname\fP. The loading mode may be either
\fB'A'\fP, then the entire content is parsed, or \fB'P'\fP then only
connectors and extrernal signals are loaded in memory, or \fB'C'\fP, that
loads the "complement" of an already partially loaded cell in order to
keep the same pointer when accessing the same file.
.br
The \fBloadlofig\fP(3) function in fact performs a call to a parser, choosen
by the \fBMBK_IN_LO\fP(1) environment variable. The directories searched for the
file are first the one sets by \fBMBK_WORK_LIB\fP(1) and then, in the described
order, the ones set by \fBMBK_CATA_LIB\fP(1).
See \fBMBK_IN_LO\fP(1), \fBMBK_WORK_LIB\fP(1), \fBMBK_CATA_LIB\fP(1) and
\fBmbkenv\fP(3) for details.
.SH ERRORS
Some errors resulting from a call to \fBloadlofig\fP are due to the parsers,
and are prefixed by the parser format (pf).
.br
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** not supported logical input format 'xxx'"
.ft R
.RS
The environment variable \fBMBK_IN_LO\fP is not set to a legal logical
format.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** pfloadlofig : could not open file \fIfigname\fP"
.ft R
.RS
No file called \fIfigname.ext\fP, where \fIext\fP is the file format extension,
has been found in the directories set by the environment.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** pfloadlofig : syntax error line x parsing \fIfigname.ext\fP"
.ft R
.RS
Either the file has been corrupted and its syntax is not legal, or there is a
bug in the given parser.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
lofig_list \(**get_the_lofig(figname, mode)
char \(**figname;
char mode;
{
lofig_list \(**pt;
for (pt = HEAD_LOFIG; pt; pt = pt\->NEXT) /\(** scan figure list \(**/
if (!strcmp(pt\->NAME, figname))
break;
if (!pt) { /\(** figure doesn't exist \(**/
pt = addlofig(figname);
pt\->MODE = mode == 'A' ? mode : 'P';
loadlofig(pt, figname, pt\->MODE);
return pt;
}
if (ptfig\->MODE != 'A') { /\(** figure exists interface only \(**/
if (mode == 'A') {
pt\->MODE = 'A';
loadlofig(pt, figname, 'C');
return pt;
} else
return pt;
} else /\(** figure exists interface and body \(**/
return pt;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR mbkenv (3),
.BR lofig (3),
.BR addlofig (3),
.BR getlofig (3),
.BR dellofig (3),
.BR savelofig (3),
.BR flattenlofig (3),
.BR rflattenlofig (3),
.BR MBK_IN_LO (1),
.BR MBK_WORK_LIB (1),
.BR MBK_CATA_LIB (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,139 @@
.\" $Id: loadphfig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)loadphfig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
loadphfig
.XE
.XS1 \n%
.ti 0.2i
loadphfig
.XE1 \}
.TH LOADPHFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK PHYSICAL UTILITY FUNCTIONS"
.SH NAME
loadphfig \- load a new physical cell model from disk
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
void loadphfig(ptfig, figname, mode)
phfig_list \(**ptfig;
char \(**figname;
char mode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIptfig\fP
Pointer to an allocated but empty \fIphfig\fP
.TP
\fIfigname\fP
Name of the figure to be loaded
.TP
\fImode\fP
Loading mode
.SH DESCRIPTION
\fBloadphfig\fP fills the \fIphfig\fP pointed to by \fIptfig\fP with the
contents of a disk file called \fIfigname\fP. The loading mode may be either
\fB'A'\fP, then the entire content is parsed, or \fB'P'\fP then only
connectors, abutment box, and through routes are loaded, or \fB'C'\fP, that
finishes to fill an already loaded figure in \fB'P'\fP mode, in order to have
it all in memory. This last mode allows to keep the same \fIptfig\fP pointer
when reaccessing the same file.
.br
The \fBloadphfig\fP function in fact performs a call to a parser, choosen
by the \fBMBK_IN_PH\fP(1) environment variable. The directories seached for the
file are first the one set by \fBMBK_WORK_LIB\fP(1) and then, in the described
order, the ones set by \fBMBK_CATA_LIB\fP(1).
See \fBMBK_IN_PH\fP(1), \fBMBK_WORK_LIB\fP(1), \fBMBK_CATA_LIB\fP(1) and
\fBmbkenv\fP(3) for details.
.SH ERRORS
Some errors resulting from a call to \fBloadphfig\fP are due to the parsers,
and are prefixed by the parser format (pf).
.br
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** not supported physical input format 'xxx'"
.ft R
.RS
The environment variable \fIMBK_IN_PH\fP is not set to a legal physical
format.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** pfloadphfig : could not open file \fIfigname\fP"
.ft R
.RS
No file called \fIfigname.ext\fP, where \fIext\fP is the file format extension,
has been found in the directories set by the environment.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** pfloadphfig : syntax error line x parsing \fIfigname.ext\fP"
.ft R
.RS
Either the file has been corrupted and its syntax is not legal, or there is a
bug in the given parser.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mph.h"
phfig_list \(**get_the_phfig(figname, mode)
char \(**figname;
char mode;
{
phfig_list \(**pt;
for (pt = HEAD_PHFIG; pt; pt = pt\->NEXT) /\(** scan figure list \(**/
if (!strcmp(pt\->NAME, figname))
break;
if (!pt) { /\(** figure doesn't exist \(**/
pt = addphfig(figname);
pt\->MODE = mode == 'A' ? mode : 'P';
loadphfig(pt, figname, pt\->MODE);
return pt;
}
if (ptfig\->MODE != 'A') { /\(** figure exists interface only \(**/
if (mode == 'A') {
pt\->MODE = 'A';
loadphfig(pt, figname, 'C');
return pt;
} else
return pt;
} else /\(** figure exists interface and body \(**/
return pt;
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR mbkenv (3),
.BR phfig (3),
.BR addphfig (3),
.BR getphfig (3),
.BR delphfig (3),
.BR savephfig (3),
.BR flattenphfig (3),
.BR rflattenphfig (3),
.BR MBK_IN_PH (1),
.BR MBK_WORK_LIB (1),
.BR MBK_CATA_LIB (1).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,119 @@
.\" $Id: locon.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)locon.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
locon
.XE
.XS2 \n%
.ti 0.2i
locon
.XE2 \}
.TH LOCON 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL STRUCTURE DEFINITIONS"
.SH NAME
locon \- mbk logical connector
.SH DESCRIPTION
The \fBlocon\fP is used to describe a connector of the logical view
of a figure. Connectors are describing the cell interface, and are the link
between its physical and logical views, so the names must be the same.
.LP
The declarations needed to work on \fBlocon\fP are available in the header file
\fI"/labo/include/mlo404.h"\fP, where '\fI404\fP' is the actual mbk version.
.LP
The following C structure supports the description of the logical connector :
.RS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 20n 30n
typedef struct locon {
struct locon \(**NEXT;
char \(**NAME;
struct losig \(**SIG;
void \(**ROOT;
char DIRECTION;
char TYPE;
struct ptype \(**USER;
} locon_list;
.ft R
.fi
.RE
.TP 20
\fINEXT\fP
Pointer to the next \fBlocon\fP of the list.
.TP
\fINAME\fP
Name of the connector. It identifies the connector, so it should unique in a
given logical figure. A logical connector with a given name correspond to the
physical connector or connectors of this name.
.TP
\fISIG\fP
Pointer to the signal linked to the connector. This signal is, of course,
unique. See \fBlosig\fP(3) for details.
.TP
\fIROOT\fP
Pointer to the object it belongs to. This object may be either a \fBlofig\fP,
or a \fBloins\fP, depending on the type of the connector.
See \fBlofig\fP(3) and \fBloins\fP for details.
.TP
\fIDIRECTION\fP
This indicates the way of the information going through the connector.
Six directions are legal :
.RS
.TP 20
\fBIN\fP
input
.TP
\fBOUT\fP
output
.TP
\fBINOUT\fP
input and output
.TP
\fBUNKNOWN\fP
no information is available
.TP
\fBTRISTATE\fP
tristate output
.TP
\fBTRANSCV\fP
tristate output and input
.RE
.fi
.TP
\fITYPE\fP
Character indicating if the connector belongs to a model or an instance. It
can take two values :
.RS
.TP 20
\fBEXTERNAL\fP
for figure connectors
.TP
\fBINTERNAL\fP
for instance connectors
.LP
The \fITYPE\fP is needed to appropriatly cast the \fIROOT\fP field, and must
be approriatly filled by the parsers. A misuse of it may cause strange
behaviours.
.RE
.TP
\fIUSER\fP
Pointer to a ptype list, see \fBptype\fP for details, that is a general purpose
pointer used to share informations on the connector.
.SH SEE ALSO
.BR mbk(1),
.BR mbk(3),
.BR addlocon (3),
.BR getlocon (3),
.BR dellocon (3),
.BR losig (3),
.BR ptype (3),
.BR loins (3),
.BR lofig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,118 @@
.\" $Id: lofig.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)lofig.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
lofig
.XE
.XS2 \n%
.ti 0.2i
lofig
.XE2 \}
.TH LOFIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL STRUCTURE DEFINITIONS"
.SH NAME
lofig \- mbk logical figure
.SH DESCRIPTION
The \fBlofig\fP is used to describe a hierarchical level of the logical view
of a figure. The logical view is also called the netlist, for list of nets,
because it represents the interconections between elements of a cell.
.LP
The declarations needed to work on \fBlofig\fP are available in the header file
\fI"/labo/include/mlo404.h"\fP, where '\fI404\fP' is the actual mbk version.
.LP
The following C structure supports the description of the netlist
representation :
.RS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 20n 30n
typedef struct lofig {
struct lofig \(**NEXT;
struct chain \(**MODELCHAIN;
struct locon \(**LOCON;
struct losig \(**LOSIG;
struct ptype \(**BKSIG;
struct loins \(**LOINS;
struct lotrs \(**LOTRS;
char \(**NAME;
char MODE;
struct ptype \(**USER;
} lofig_list;
.ft R
.fi
.RE
.TP 20
\fINEXT\fP
Pointer to the next \fBlofig\fP loaded in ram.
.TP
\fINAME\fP
Name of the figure. It identifies a figure (or \fImodel\fP), so it should
be unique in order to warranty consistency of cells libraries. In order
to ensure this consistency, the \fINAME\fP field must be filled with the
disk file name while parsing, and must be used as file name for driving.
.TP
\fILOINS\fP
Pointer to the head of the list of instances being used for the model
description. See \fBloins\fP(3) for details.
.TP
\fILOCON\fP
Pointer to the head of the list of connectors (terminals) of the model.
See \fBlocon\fP(3) for details.
.TP
\fILOSIG\fP
Pointer to the head of the list of signal of the model.
See \fBlosig\fP(3) for details.
.TP
\fIBKSIG\fP
Pointer to a hash table that contains arrays of \fILOSIG\fP. It is only an
other way to represent the same elements that in the list, but allows a
faster access. The Mbk Logical Functions warranty the consitency between
the two representations.
.TP
\fILOTRS\fP
Pointer to the list of transistors belonging to the figure. It is to be noticed
that transistors are not instances of a particular type.
.TP
\fIMODE\fP
Caracter indicating the status of the figure in memory. This field can
take two values :
.RS
.TP 10
.B \'A\'
all the cell is loaded in ram.
.TP
.B \'P\'
only information concerning the model interface is present, that
means connectors, and signals linked to external connectors.
All other lists are empty.
.RE
.TP
\fIMODELCHAIN\fP
Pointer to a chain list, see \fBchain\fP(3) for details, of names. These are
the names of the models that are at least instanciated once in the figure.
.TP
\fIUSER\fP
Pointer to a ptype list, see \fBptype\fP(3) for details, that is a general
purpose pointer used to share informations on the model.
.SH SEE ALSO
.BR mbk (1),
.BR addlofig (3),
.BR getlofig (3),
.BR dellofig (3),
.BR loadlofig (3),
.BR savelofig (3),
.BR loins (3),
.BR lotrs (3),
.BR locon (3),
.BR losig (3),
.BR ptype (3),
.BR chain (3),
.BR phfig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,97 @@
.\" $Id: lofigchain.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)lofigchain.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
lofigchain
.XE
.XS2 \n%
.ti 0.2i
lofigchain
.XE2 \}
.TH LOFIGCHAIN 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
lofigchain \- creates a netlist in terms of connectors on signals
.so man1/alc_origin.1
.SH SYNOPSYS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void lofigchain(ptfig)
lofig_list \(**ptfig;
.ft R
.fi
.SH PARAMETER
.TP 20
\fIptfig\fP
Pointer to a lofig_list
.SH DESCRIPTION
The \fBlofigchain\fP function creates the dual representation of natural
mbk netlists. In mbk, netlists are described in terms of signal attached to
connectors.
With \fBlofigchain\fP, one can have the dual sight : connectors attached to
signals.
This can be very useful, depending on the application, but it's also memory
consuming on big netlists, since two views of the same thing are present in
memory at the same time.
.LP
The information resulting of a call to \fBlofigchain\fP is present in the
\fIUSER\fP field of all signals of the figure, accessible through
\fIptfig\->LOSIG\fP. The \fIUSER\fP field has a \fBptype\fP typed
\fILOFIGCHAIN\fP, that points on a \fBchain_list\fP whose \fIDATA\fP points on
each \fBlocon\fP beeing connected to the given signal.
.SH ERROR
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"\(**\(**\(** mbk error \(**\(**\(** lofigchain impossible : figure \fIptfig\->NAME\fP is
interface only"
.ft R
.RS
In order to be valid, the netlist resulting of a call to \fBlofigchain\fP must
be done on a figure entirely loaded in ram. See \fBgetlofig\fP for details.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mut.h"
#include "mlo.h"
void print_netlist(p)
lofig_list \(**p;
{
losig_list \(**s;
chain_list \(**c;
lofigchain(p);
for (s = p\->LOSIG; s; s = s\->NEXT){
(void)fprintf(stdout, "signal : index = %ld name = %s\\n",
s\->INDEX, getsigname(s));
c = (chain_list \(**)(getptype(s\->USER, (long)LOFIGCHAIN)\->DATA);
while (c) {
fprintf(stdout, "conname : %s\\n",
(locon_list \(**)(c\->DATA)\->NAME);
c = c\->NEXT;
}
}
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR lofig (3),
.BR locon (3),
.BR losig (3),
.BR getlofig (3),
.BR loadlofig (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,34 @@
.\" $Id: log.3,v 1.1 2002/03/08 13:51:02 fred Exp $
.\" @(#)log.2 0.0 92/08/01 UPMC; Author: Luc Burgun
.pl -.4
.TH LOG 3 "October 1, 1997" "ASIM/LIP6" "cao\-vlsi reference manual"
.SH NAME
\fBlog\fP \- logical representations for boolean functions and utilities.
.so man1/alc_origin.1
.SH DESCRIPTION
\fBlog\fP is a set of structures and functions that permits to manipulate several representations of boolean functions. Several programs and libraries of the \fIcao-vlsi cad tools\fP rest on the \fIlog\fP package. Two different kind of functions are available for:
.TP 20
Prefixed representation for boolean functions
.TP 20
Ordered binary decision diagrams representation
.SH EXAMPLE
Let's suppose that actual mbk version is 'nnn'.
In order to use log, \fIlibMutnnn.a\fP library must be called.
.br
\fImakefile\fP:
.br
HEADER = -I/labo/include
.br
LIB = -L/labo/lib -lMutnnn -ltshmmm -lablmmm -lbddmmm
.br
Each library can be called separatly. The "logmmm.h" header file must be inserted in the files that use the functions or the structures defined in a library.
.br
.SH SEE ALSO
.BR mbk (1),
.BR beh (1),
.SH AUTHOR
L. BURGUN salle 30 T. 55-65 Universite P&M Curie - 4 pl. Jussieu - FRANCE
.br
.so man1/alc_bug_report.1

View File

@ -0,0 +1,73 @@
.\" $Id: loins.3,v 1.1 2002/03/08 13:51:03 fred Exp $
.\" @(#)loins.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
loins
.XE
.XS2 \n%
.ti 0.2i
loins
.XE2 \}
.TH LOINS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL STRUCTURE DEFINITIONS"
.SH NAME
loins \- mbk logical instance
.SH DESCRIPTION
The \fBloins\fP is used to describe an instance of the logical view
of a figure.
.LP
The declarations needed to work on \fBloins\fP are available in the header file
\fI"/labo/include/mlo404.h"\fP, where '\fI404\fP' is the actual mbk version.
.LP
The following C structure supports the description of the logical instance :
.RS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 20n 30n
typedef struct loins {
struct loins \(**NEXT;
struct locon \(**LOCON;
char \(**INSNAME;
char \(**FIGNAME;
struct ptype \(**USER;
} loins_list;
.ft R
.fi
.RE
.TP 20
\fINEXT\fP
Pointer to the next \fBloins\fP of the list.
.TP
\fIINSNAME\fP
Local name of the instance. It identifies the instance at a given hierarchical
level, so it should unique. When working on both layout and netlist views of
a cell, instance names should be the same on each representation.
.TP
\fIFIGNAME\fP
Name of the model of the instanciated cell.
.TP
\fILOCON\fP
Pointer to the head of the list of connectors of the instance. Consistency
between the connectors of the instance and the connectors of its model on disk
is not ensured by the parsers, because a model local to the file beeing parsed
is used, not the possible model on disk. See \fBlocon\fP(3) for details.
.TP
\fIUSER\fP
Pointer to a ptype list, see \fBptype\fP(3) for details, that is a general purpose
pointer used to share informations on the instance.
.SH SEE ALSO
.BR mbk (1),
.BR addloins (3),
.BR getloins (3),
.BR delloins (3),
.BR locon (3),
.BR lofig (3),
.BR ptype (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,100 @@
.\" $Id: losig.3,v 1.1 2002/03/08 13:51:03 fred Exp $
.\" @(#)losig.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
losig
.XE
.XS2 \n%
.ti 0.2i
losig
.XE2 \}
.TH LOSIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL STRUCTURE DEFINITIONS"
.SH NAME
losig \- mbk logical signal
.SH DESCRIPTION
The \fBlosig\fP is used to describe a logical signal.
.LP
The declarations needed to work on \fBlosig\fP are available in the header file
\fI"/labo/include/mlo404.h"\fP, where '\fI404\fP' is the actual mbk version.
.LP
The following C structure supports the description of the logical signal :
.RS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 20n 30n
typedef struct losig {
struct losig \(**NEXT;
struct chain \(**NAMECHAIN;
float CAPA;
long INDEX;
char TYPE;
struct ptype \(**USER;
} losig_list;
.ft R
.fi
.RE
.TP 20
\fINEXT\fP
Pointer to the next \fBlosig\fP of the list.
.TP
\fIINDEX\fP
Long integer beeing the signal identifier. It represents the net
number at a given hierachical level, and must be unique.
.TP
\fINAMECHAIN\fP
Pointer to a list of names, aliases, attached to the signal. If no names
are given then the field points to \fINULL\fP. Many names can be present if
the signal result of the flatten of a netlist.
See \fBchain\fP(3) for details.
.TP
\fICAPA\fP
Floating point number containing the value of the total capacitance attached
to a signal in respect to ground. This field may be set to zero, since it
make sens only if the signal is the result of a layout extraction, or has
been used for electrical simulation purposes.
.TP
\fITYPE\fP
This field can take two legal values depending on the types of the connectors
attached to it. See \fBlocon\fP(3) for detail.
.RS
.TP 20
\fBEXTERNAL\fP
The signal is connected at least to one external
connector, a connector of the figure beeing described.
.TP
\fBINTERNAL\fP
The signal is connected only to instances or
transistors connectors.
.LP
The tools using the \fITYPE\fP should fill it with care, since unexpected
results may appear if the consistency with connectors is violated.
.RE
.TP
\fIUSER\fP
Pointer to a ptype list, see \fBptype\fP(3) for details, that is a general
purpose pointer used to share informations on the signal.
.TP
Remark :
the netlist view is given in terms of connectors pointing to signals,
but it may be useful to have also the dual representation, in term of
list of connectors attached to a single signal. This may be obtained by
the \fBlofigchain\fP function.
.SH SEE ALSO
.BR mbk (1),
.BR addlosig (3),
.BR getlosig (3),
.BR dellosig (3),
.BR lofigchain (3),
.BR locon (3),
.BR lofig (3),
.BR chain (3),
.BR ptype (3).
.so man1/alc_bug_report.1

View File

@ -0,0 +1,115 @@
.\" $Id: lotrs.3,v 1.1 2002/03/08 13:51:03 fred Exp $
.\" @(#)lotrs.l 0.0 90/22/08 UPMC; Author: Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
lotrs
.XE
.XS2 \n%
.ti 0.2i
lotrs
.XE2 \}
.TH LOTRS 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL STRUCTURE DEFINITIONS"
.SH NAME
lotrs \- mbk logical transistor
.SH DESCRIPTION
The \fBlotrs\fP is used to describe a logical transistor. It is mostly used
to describe leaf cells in terms of transistors interconnections, and as a
result of layout extractions. Since the only target technology is CMOS, only
NMOS and PMOS transistors are used.
.LP
The declarations needed to work on \fBlotrs\fP are available in the header file
\fI"/labo/include/mlo404.h"\fP, where '\fI404\fP' is the actual mbk version.
.LP
The following C structure supports the description of the logical transistor :
.RS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
.ta 3n 20n 30n
typedef struct lotrs {
struct lotrs \(**NEXT;
struct locon \(**DRAIN;
struct locon \(**GRID;
struct locon \(**SOURCE;
long X,Y;
unsigned short WIDTH, LENGTH;
unsigned short PS, PD;
unsigned short XS, XD;
char TYPE;
struct ptype \(**USER;
} lotrs_list;
.ft R
.fi
.RE
.TP 20
\fINEXT\fP
Pointer to the next \fBlotrs\fP of the list.
.TP
\fIDRAIN\fP
Pointer to the drain connector of the transistor. This connector is,
of course unique. See \fBlocon\fP(3) for details.
.TP
\fIGRID\fP
Pointer to the grid connector of the transistor. This connector is,
of course unique. See \fBlocon\fP(3) for details.
.TP
\fISOURCE\fP
Pointer to the source connector of the transistor. This connector is,
of course unique. See \fBlocon\fP(3) for details.
.TP
\fIX, Y\fP
Coordinates of the transistor in a layout. These informations have sens only if
the transistor netlist is the result of a layout extraction. They are
otherwise set to zero.
These coordinates are given in micron times the scale factor \fBSCALE_X\fP,
since the extracted view is technology
dependant.
.TP
\fIWIDTH, LENGTH\fP
Respectivly width and length of the transistor grid.
.TP
\fIPS, PD\fP
Respectivly perimeter of the source and drain, in micron times the scale
factor \fBSCALE_X\fP.
.TP
\fIXS, XD\fP
These values are needed to compute respectivly the source and drain areas.
Let \fIAs\fP be the source area in square microns, and \fIWidth\fP be the
transistor grid width in micron, then
\fIlotrs->XS = As / Width * SCALE_X\fP
.TP
\fITYPE\fP
Canal type of the transistor. Two legal values are available :
.RS
.TP 20
\fBTRANSN\fP
N type MOS transistor
.TP
\fBTRANSP\fP
P type MOS transistor
.RE
.TP
\fIUSER\fP
Pointer to a ptype list, see \fBptype\fP(3) for details,
that is a general purpose
pointer used to share informations on the transistor.
.TP
Remark :
The transistors do not have a bulk connector, since in integrated techniques
NMOS transistor bulk is always set to ground, and PMOS transistor bulk is
always set to positive supply.
.SH SEE ALSO
.BR mbk (1),
.BR addlotrs (3),
.BR dellotrs (3),
.BR locon (3),
.BR lofig (3),
.BR ptype (3).
.so man1/alc_bug_report.1

Some files were not shown because too many files have changed in this diff Show More