NAME¶
genlib - Procedural design language based upon C.
DESCRIPTION¶
genlib is a set of C functions dedicated to procedural generation
purposes. From a user point of view, genlib is a circuit's description
language that allows standard C programming flow control, variable use, and
specialized functions in order to handle vlsi objects.
Based upon the
Alliance mbk data structures, the
genlib
language gives the user the ability to describe both netlist and layout views,
thus allowing both standard cell and full custom approachs.
NETLIST CAPTURE¶
It is a hierachical structural description of a circuit in terms of connectors
(I/Os), signals (nets), and instances.
The function calls used to handle the netlist view are :
- •
- GENLIB_DEF_LOFIG(3)
- •
- GENLIB_SAVE_LOFIG(3)
- •
- GENLIB_LOINS(3)
- •
- GENLIB_LOCON(3)
- •
- GENLIB_LOSIG(3)
- •
- GENLIB_FLATTEN_LOFIG(3) Some facilities, in order to create vectors
are also available :
- •
- GENLIB_BUS(3)
- •
- GENLIB_ELM(3)
STANDARD CELL PLACEMENT¶
The following functions allows to define a placement file for a standard cell
design. This file can be used by the standard cell router
ocr(1) :
- •
- GENLIB_DEF_PHSC(3)
- •
- GENLIB_SAVE_PHSC(3)
- •
- GENLIB_SC_PLACE(3)
- •
- GENLIB_SC_RIGHT(3)
- •
- GENLIB_SC_TOP(3)
- •
- GENLIB_SC_LEFT(3)
- •
- GENLIB_SC_BOTTOM(3)
FULL CUSTOM SYMBOLIC LAYOUT¶
Those functions are dedicated to optimized full custom procedural layout. In
order to provide some process independance,
Alliance uses a symbolic
layout approach (fixed grid without compaction).
The symbolic objects are segments (wires), vias (contacts), connectors (I/Os),
references and instances. For more informations, see
phseg(1),
phvia(1),
phcon(1),
phref(1),
phins(1) and
alc(1).
- •
- GENLIB_DEF_PHFIG(3)
- •
- GENLIB_SAVE_PHFIG(3)
- •
- GENLIB_DEF_AB(3)
- •
- GENLIB_DEF_PHINS(3)
- •
- GENLIB_PHCON(3)
- •
- GENLIB_COPY_UP_CON(3)
- •
- GENLIB_COPY_UP_CON_FACE(3)
- •
- GENLIB_COPY_UP_ALL_CON(3)
- •
- GENLIB_PHSEG(3)
- •
- GENLIB_COPY_UP_SEG(3)
- •
- GENLIB_THRU_H(3)
- •
- GENLIB_THRU_V(3)
- •
- GENLIB_THRU_CON_H(3)
- •
- GENLIB_THRU_CON_V(3)
- •
- GENLIB_WIRE1(3)
- •
- GENLIB_WIRE2(3)
- •
- GENLIB_WIRE3(3)
- •
- GENLIB_PHVIA(3)
- •
- GENLIB_PLACE(3)
- •
- GENLIB_PLACE_RIGHT(3)
- •
- GENLIB_PLACE_TOP(3)
- •
- GENLIB_PLACE_LEFT(3)
- •
- GENLIB_PLACE_BOTTOM(3)
- •
- GENLIB_PLACE_ON(3)
- •
- GENLIB_PHREF(3)
- •
- GENLIB_COPY_UP_REF(3)
- •
- GENLIB_COPY_UP_ALL_REF(3)
- •
- GENLIB_PLACE_VIA_REF(3)
- •
- GENLIB_PLACE_CON_REF(3)
- •
- GENLIB_PLACE_SEG_REF(3)
- •
- GENLIB_FLATTEN_PHFIG(3)
- •
- GENLIB_GET_REF_X(3)
- •
- GENLIB_GET_REF_Y(3)
- •
- GENLIB_GET_CON_X(3)
- •
- GENLIB_GET_CON_Y(3)
- •
- GENLIB_HEIGHT(3)
- •
- GENLIB_WIDTH(3) In order to have information about each of these
functions, use the online documentation with man(1), as in man
function-name.
It is strongly recommended to read some books on C programming, in order to take
full advantage of the C flow control possibilities, as it may greatly reduce
the size of a
genlib source code.
ENVIRONMENT VARIABLES¶
- •
- MBK_IN_LO(1), default value : al
- •
- MBK_OUT_LO(1), default value : al
- •
- MBK_IN_PH(1), default value : ap
- •
- MBK_OUT_LO(1), default value : ap
- •
- MBK_CATA_LIB(1), default value : .
- •
- MBK_WORK_LIB(1), default value : .
- •
- MBK_CATAL_NAME(1), default value : CATAL See the corresponding
manual pages for further informations.
In order to compile and execute a
genlib file, one has to call
genlib with one argument, that is the
genlib source file. The
source file must have a .c extension, but the extension should not be
mentionned on the command line.
The names used in genlib, as arguments to genlib functions, should be
alphanumerical, including the underscore. They also are not case sensitive, so
VDD is equivalent to vdd. Vectorized connectors or signal can be declareds
using the [n:m] construct.
SYNOPSIS¶
genlib [
-cklmnv ] [
--no-rm-core ] [
--keep-makefile ] [
--keep-exec ] [
--keep-log ] [
--no-exec ] [
--verbose ]
program [
-e
program_args ]
OPTIONS¶
- •
- <program> : the name of the C file containing the genlib
program, whitout extention. Mandatory argument.
- •
- [--no-rm-core|-c] : in case of core dump, do not remove the generated core
file. This option must be used with [--keep-exec|-k].
- •
- [--keep-makefile|-m] : do not erase the generated makefile after
execution.
- •
- [--keep-exec|-k] : keep the generated executable after the genlib
run.
- •
- [--keep-log|-l] : do not erase the log file after a successfull completion
(the log is keeped after a faulty run).
- •
- [--no-exec|-n] : do not run the generated program. Should be used with
[--keep-exec|-k].
- •
- [--no-verbose|-v] : self explanatory.
- •
- [-e] : all the following arguments are handled to the compiled
program.
EXAMPLES¶
Compile and run a file
amd2901.c :
genlib -v amd2901
SEE ALSO¶
mbk(1),
DIAGNOSTIC¶
Many errors may occur while executing the source file, so refer to the proper
genlib function manual for more. When an error occur,
genlib left a log
file
<program>.grr. As
<program>.c is a C program,
all syntatic C error can occurs...
All genlib functions are listed below alphabetically sorted.