genview - genlib graphical source level debugger
genview [ -s source_file ] [ -l layout_file ] [ -ge <height>x<width>[{+}x{+}y] ] [ -gt <height>x<width>[{+}x{+}y] ] [ -gv <height>x<width>[{+}x{+}y] ]
This software belongs to the ALLIANCE CAD system from the CAO-VLSI team at
ASIM/LIP6/UPMC laboratory.
LIP6/ASIM
University P. et M. Curie
4, place Jussieu
75252 PARIS Cedex 05
FRANCE
Fax : {33/0} 1.44.27.62.86
E-mail support : alliance-support@asim.lip6.fr
Genview is a graphical source level debugger for the cao-vlsi procedural
generation language genlib. Genview stands for procedural Generator
Viewer, because its primary use is to help debug parametrable layout generator
programs. Since genlib is a superset of the C language, de facto
genview is a C debugger that contains a specific dictionary for genlib's
functions.
Genview works under X11r4, and is made of, at least, three distinct windows,
each of them having a given behaviour:
Edit Window
This window allows the user to edit a source file under a vilike
editor. It is not vi, so only the basical and most used
functions have been implemented.
No meta-characters can be used, things like `c$' or `cw', or `.'
are not available. But this is not so much of a restriction,
since they are far less used than `i', `a' or `o'.
The menu of the Edit window is, let's say, the main menu of the
application. It contains three separate items, each of them
made up of some buttons. They could be called System, Interpret
and trace.
System:
`shell' runs either a shell command if given as parameter, or runs an xterm if no arguments are given in the dialog box.
Interpret:
`compile' just calls the compiler for syntax checks. Currently, this button is desactivated. No actions are performed if clicked.
`params' is used to set the main arguments, for parametrable generators. This function bugs today, so please avoid using it.
Trace:
`set/unset bp'
is a flip-flop that either sets or unsets, depending of the
previous state of the line, a break point on a given line.
The line is choosen by the cursor position in the `Edit
window'. Take care not to put a break point on a `{' or
`}', or something like that, since it will not be taken
into account at execution time. Choose a C control statement,
or a function call.
`clear all bps'
clears all previously sets break points.
`set trace'
tells the interpreter to print out in the `Trace window'
the value of the given variable. To name a variable, give,
if it is a global one, it name as argument. If it is a
local one, just concatenate the function name with the
variable name, separeted by a semi-colon. This function is
not entirely bug free. Do not use it with the argument of
the main, because this is most likely to fail.
`unset trace'
tells the interpreter no to trace anymore a given variable.
Trace Window
The Trace window is an output window in the which are redirected
all system and genlib errors, and also user messages given
through printf since it represent both stderr and stdout.
It is much simpler than the other windows, and possesses four
buttons, that allow to scroll through it:
`line up' scrolls up one line at a time.
`line down'
scrolls down one line at a time.
`page up' for one page up.
`page down'
for one page down.
View Window
The View window is an output window that contains the drawing of
the layout beeing textualy described in genlib. It may also be
used to simply load a symbolic layout cell, for looking at it
only. This is not a symbolic layout editor. It contains many
buttons needed to modify circuit coordinates and scale.
It defines a one pixel box that represents the new window to be displayed. As soon as the button is released, the windows changes.
`refresh' redraws the entire screen.
`inspect' gives a textual output of the screen contents in a window opened for it. This window has scrolling buttons, so see `Trace window' for the motions.
`^ > v <' move the screen over the circuit.
`setup' opens a window that allows to choose users preferences. Moreless self explanatory.
`dx dy' indicate relatives coordinates regarding the most recent mouse click.
As most graphical tool, using it will be much easier than using this documentation, so just try it.
-s sourcefile
tells genview to load a source file in its `Edit window' when
starting. the source file may be any 32-127 ascii file. The
file is to be given with its extension and path if needed. But
only file sufixed by `.c' are to be interpreted.
genview -s rsa.c -l gapg0_b
MBK_CATA_LIB(1)
indicates the path to the read only libraries to be used under genview.
In order to work, genview must have read/write access on a directory
called `/usr/tmp'. It will else fail at any compilation or inspect
attempt.
Genview does not allows rotations in placed instances. This is because it
has been written for full custom generator debug, and such geometrical
operations are not used in this context. This is the only known incompatibility
with genlib.
The use of main arguments is not entirely debugged, and may lead to a
software exception.
This tool is under development at the ASIM/LIP6/UPMC laboratory, cao-vlsi
research team.
We need your feedbak to improve documentation and tools.
If you find bugs, please fill-in the form at
http://asim.lip6.fr/alliance/support/bug-report/
Thanks for doing this.