- update !!!

- missing update of datapath libraries description
This commit is contained in:
Ludovic Jacomme 2004-07-09 21:55:20 +00:00
parent 2eabb7b659
commit a3060ae391
2 changed files with 58 additions and 106 deletions

View File

@ -1,6 +1,6 @@
# Generic Makefile for TeTeX projet
# (C) 1999, Czo
# $Id: Makefile,v 1.1 2002/10/24 14:50:16 czo Exp $
# $Id: Makefile,v 1.2 2004/07/09 21:55:20 ludo Exp $
MYFILE=overview
@ -21,7 +21,7 @@ ps : $(MYFILE).tex
dvips $(MYFILE).dvi -o $(MYFILE).ps
distrib : all
ps2pdf $(MYFILE).ps
dvipdf $(MYFILE).dvi
cp -f $(MYFILE).ps ..
cp -f $(MYFILE).pdf ..
$(MAKE) clean

View File

@ -2,7 +2,8 @@
%
% Author : Frederic Petrot
% Modified by : Olivier Sirol
% $Id: overview.tex,v 1.1 2002/10/24 14:50:16 czo Exp $
% Modified by : Ludovic Jacomme
% $Id: overview.tex,v 1.2 2004/07/09 21:55:20 ludo Exp $
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
@ -38,7 +39,7 @@ Universit
France\\
\texttt{http://www-asim.lip6.fr/alliance/}\\*
\texttt{ftp://ftp-asim.lip6.fr/pub/alliance/}\\*
\texttt{mailto:alliance-support@asim.lip6.fr}\\*
\texttt{mailto:alliance-users@asim.lip6.fr}\\*
\end{center}
%%%%%%%%%%%%%%%%%%%%%%%%
@ -100,7 +101,7 @@ cells libraries are freely available under the GNU General Public Licence (\text
You are welcome to use the software package even for commercial designs whithout
any fee. You are just required to mention : "Designed with Alliance © LIP6/Université
Pierre et Marie Curie". For any questions please mail to :
\texttt{alliance-support@asim.lip6.fr}.
\texttt{alliance-users@asim.lip6.fr}.
@ -232,6 +233,11 @@ It is not very easy to modelize an architecture using this subset,
but it has the great advantage of allowing simulation, logic synthesis
and bit level formal proof on the same files.
A \textbf{VHDL} analyzer called \texttt{vasy} can be used to
automatically convert most common \textbf{VHDL} descriptions
(using for example IEEE 1164 packages) to the
restricted Alliance subsets (\texttt{vbe} and \texttt{vst}).
Patterns, \textbf{VHDL} simulation stimuli, are described in a specific
formalism that can be captured using a dedicated language \texttt{genpat}.
Once a \textbf{VHDL} behavioral description written and a set of test vectors
@ -260,15 +266,15 @@ The advantage of such an approach is that designers do not have to
learn several language with specific syntax and semantics.
Usually, the main behavior is partitionned in several sub-behaviors.
Some are described recursively using the \texttt{genlib} language, other
using \texttt{dpgen}, and the other ones can be directly synthesized
from a \textbf{VHDL} description of the corresponding sub-behaviors.
Some are described recursively using the \texttt{genlib} language
and the other ones can be directly synthesized from a \textbf{VHDL}
description of the corresponding sub-behaviors.
The \texttt{boog} tool takes an \textbf{RTL} description and
generates a netlist of standard cell gates.
An other subset of \textbf{VHDL} allows to capture finite state machines.
This subset, called \texttt{fsm}, can be translated into a
\textbf{RTL} description using the tool \texttt{syf}, and then the
resulting description optimized usign \texttt{boom} and finally
resulting description optimized using \texttt{boom} and finally
syntesized as a netlist using once more \texttt{boog}.
Since \texttt{asimut} can operate on both \textbf{RTL} and structural views,
@ -284,15 +290,14 @@ behavioral validation.
Once the circuit netlist has been captured and validated, each leaf of
the hierarchy has to be physically implemented.
A netlist issued from \texttt{boog} is usually placed and routed using
the standard cell router \texttt{scr}.
the over cell router \texttt{nero}.
If the netlist has been captured using \texttt{genlib} and if it has a
high degree of regularity, it can be placed manually for optimisation
using other \texttt{genlib} functions.
The netlist resulting from the use of \texttt{dpgen} are placed and
routed using the datapath router \texttt{dpr}.
These part can be assembled together using a gridless channel router
called \texttt{bbr}, and this generates what we call a \textit{core}.
The different parts can be placed and assembled together using
\texttt{ocp} and routed using overcell router called \texttt{nero},
and this generates what we call a \textit{core}.
The circuit core is now ready to be connected to external pads.
The core-to-pads router, \texttt{ring}, aims at doing this operation
automatically, provided the user has given an appropriate netlist and
@ -319,26 +324,18 @@ The correctness of the design rules is checked using the design rule
checker \texttt{druc}.
An extracted netlist can be obtained from the resulting layout.
\texttt{Lynx}, the layout extractor operates on both hierarchical and
\texttt{Cougar}, the layout extractor operates on both hierarchical and
flattened layout and can output both flattened netlists (transistor
netlist) and hierarchical netlists.
The transistor netlist is the input of the \texttt{yagle} functional
abstractor.
\texttt{Yagle} provides a \textbf{VHDL} data-flow behavioral
description, identical to the one that feeds \texttt{asimut}, from
the transistor netlist of a circuit.
The resulting behavior can be compared to the initial specifications
using either \texttt{asimut} with the functionnal vectors used for the
validation of the behavioral specification, or formally proved
equivalent, thanks to the formal proof analyzer \texttt{proof}.
The transistor netlist can be the input of a spice simulator.
When extracted hierarchically, the resulting netlist can be compared
with the original netlist by using the \texttt{lvx} tool.
\texttt{Lvx}, that stands for Logical Versus Extracted, is a netlist
\texttt{lvx}, that stands for Logical Versus Extracted, is a netlist
comparator that matches every design object found in both netlists.
The critical path of the circuit, and an estimate of its delay, can be
obtained using the static timming analyzer \texttt{tas}.
The critical path of the circuit is evaluated using a commercial
static timming analyzer, as \textbf{Alliance} doesn't provided one.
%%%%%%%%%%%%%%%%%%%%%
%
@ -382,7 +379,7 @@ symbolic layout approach.
All the library of the system use this approach successfully.
Layouts have been targetted to ES2 2$\mu$m, 1.5$\mu$m, 1.2$\mu$m,
1.0$\mu$m and 0.7$\mu$m technologies, the AMS 1.2$\mu$m technology and
SGS-Thomson 0.5$\mu$m technology.
SGS-Thomson 0.5$\mu$m, 0.35$\mu$m technologies.
Chips have been fabricated successfully through the \textbf{CMP} services on
these technologies.
@ -392,6 +389,11 @@ these technologies.
\subsection{Tools}
\begin{itemize}
\item \texttt{vasy} is a \textbf{VHDL} analyzer and convertor.
The supported \textbf{VHDL} subset is closed to commercial synthesizer
tools such as Synopsys. It converts automatically \textbf{VHDL}
descriptions to the restricted \textbf{VHDL} subsets of Alliance tools.
\item \texttt{asimut} is a \textbf{VHDL} logic simulator.
The supported \textbf{VHDL} subset allows both structural and behavioral
data-flow description (without timing information).
@ -457,6 +459,7 @@ these technologies.
or a 32 bits adder.
It contains many primitives that greatly simplify the
description of operative parts, in an optimized manner.
\texttt{dpgen} has been recently merged with \texttt{genlib}.
\item \texttt{boom} is a logic optimizer and logic synthesis tool.
The input file is a behavioral description of the circuit using
@ -471,11 +474,6 @@ these technologies.
standard-cell library, as long as a \textbf{VHDL} data-flow
description is provided with each cell.
\item \texttt{c4map} is a logic synthesis tool.
It has the same functionnality than \texttt{boog}, but runs
without a predefined standard-cell library, thanks to an
internal cell compiler.
\item \texttt{syf} is a finite state machine synthesizer.
More precisely, \texttt{syf} assigns values to the symbolic states
used for the automaton description, and aims at minimizing the
@ -487,39 +485,15 @@ these technologies.
The output of \texttt{syf} is to be synthesized into a netlsit of
gates using \texttt{boog}.
\item \texttt{scr} is a place and route tool for standard-cells.
\item \texttt{ocp} is a placer for standard-cells.
The placement system is based on simulated annealing.
The channel router is an adaptation of the greedy router of
Rivest-Fidducia.
Feed-throughs and power routing wires are automatically
inserted where needed.
The input is a netlist of gates.
The output is either an hierarchical (channels are
instanciated) or flattened (channels are inserted) chip core
\item \texttt{nero} is an over cell router. The input is a netlist of gates
and a placement file.
The output is an hierarchical chip core
layout without external pads.
A specialized router is used for core to pad routing.
\item \texttt{Dpr} is a place and route tool for bit slice oriented
datapath.
It privilegies the direct connexions between cells, and allows
to used optimized blocks, like a fast multiplier or a register
file, within the datapath.
\begin{figure}\center
\leavevmode\psfig{file=datapath.eps,width=5cm}
\caption{\label{dpr} Part of a datapath.}
\end{figure}
Most parameterized generators available in \textbf{Alliance} follow
the bit-slice structure of this datapath compiler.
This tool allows to mix some glue logic directly within a
datapath.
This functionnality doesn't exist in commercial tools.
\item \texttt{bbr} is a gridless channel router that allows to route
together two blocks having different topologies.
For example the control part of a microprocessor realized in
standard cell, and its operative part done as a datapath.
\texttt{Bbr} is pretty tricky, and should be used with care.
\item \texttt{Ring} is a specific router dedicated to the final routing
of chip core and input/output pads.
\texttt{Ring} takes into account the various problems of pad
@ -547,48 +521,23 @@ these technologies.
This correctness must be ensured in order for \texttt{s2r} to
produce a layout compatible with the target silicon foundry.
\item \texttt{Lynx} is a layout extractor.
\item \texttt{Cougar} is a layout extractor.
The input is a - possibly hierarchical - layout.
The layout can be either symbolic or real.
The output is an extracted netlist with parasitic capacitances.
The output is an extracted netlist with parasitic capacitances
and optionally resistors.
The resulting netlist can either be hierarchical or flattened
(transistor netlist).
(up to transistor level netlist).
\item \texttt{Lvx} is a logical versus extracted net-compare tool.
The result of a run indicates if the two netlist match together,
or if there are different.
Note that \texttt{lvx} doesn't work at the transistor level.
\item \texttt{yagle} is a functional asbtractor/disassembler for
\textbf{CMOS} circuits.
It provides a \textbf{VHDL} Data-Flow behavioral description from
the transistor netlist of a circuit, by first extracting a
pseudo-gate netlist, and second translating each pseudo-gate in
boolean equations.
The input file is a - possibly extracted - flattened transistor
netlist.
The output is a simulable behavioral \textbf{VHDL} model
(data-flow without timing informations).
\texttt{Yagle} can be distinguished from commercial CAD
abstractors by the fact that it does not need a predefined cell
library or transistor patterns.
Furthermore, the use of a purely algorithmic approach compared
to a pattern matching one implies a huge gain in performance.
Yagle is not anymore part of Alliance, but is freely available
at \texttt{http://www.avertec.com}.
\item \texttt{tas} is a static timing analyzer.
It takes as input a transistor netlist and produces a file
containing all the combinatorial paths of the circuit,
the critical path being outlined.
Tas is not anymore part of Alliance, but is freely available
at \texttt{http://www.avertec.com}.
\item \texttt{proof} performs a formal comparison between two data
flow \textbf{VHDL} descriptions that share the same register set.
\texttt{Proof} supports the same subset of \textbf{VHDL} as
\texttt{asimut}, \texttt{boom}, \texttt{boog} and \texttt{yagle}.
\texttt{asimut}, \texttt{boom}, \texttt{boog}.
\item \texttt{graal} is an hierarchical symbolic layout editor.
It requires a X-Window graphical environment and the Motif libraries.
@ -603,8 +552,11 @@ these technologies.
\caption{\label{graal}Editing some custom layout using \texttt{graal}.}
\end{figure}
\item \texttt{L2p} creates a Postscript file from a layout, symbolic or
real.
\item \texttt{dreal} is a real layout editor (rectangles in micron) .
It requires a X-Window graphical environment and the Motif libraries.
\item there are many other tools not described here.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%
@ -642,8 +594,8 @@ except for the power supply and NWELL.Cells can be abutted in all directions
whenever the supply is well connected and connectors are always placed on
the 5x5 grid.
They are supposed to be used with a usual standard cells place and
route tool, such as \textbf{Alliance}'s \texttt{scr}, \textbf{Compass} or
\textbf{Cadence}.
route tools, such as \textbf{Alliance}'s \texttt{ocp} and \texttt{nero},
\textbf{Compass} or \textbf{Cadence}.
These cells are to be used primary for glue logic, since optimized
operators can be obtained using dedicated generators, as stated
paragraph~\ref{gene}.
@ -651,18 +603,18 @@ The \texttt{logic} tool can map a behaviral VHDL onto this library.
%%%%%%%%%%%%%%%%%%
%%
%%%%%%%%%%
\subsubsection{Datapath libraries}
\subsubsection{Datapath libraries: (This part of the document is not up to date !)}
\label{gene}
There are two kinds of datapath libraries:
\begin{itemize}
\item \texttt{dplib} is a cell library dedicated to high density data-paths.
It must be used in conjunction with the data-path tools
\texttt{dpgen} and \texttt{dpr}.
The cells in \texttt{dplib} have the same functionnalities as the
ones in \texttt{sclib}, but have a topology that is usable only
\item \texttt{dp\_sxlib} is a cell library dedicated to high density data-paths.
It must be used in conjunction with the data-path tool
\texttt{dpgen}.
The cells in \texttt{dp\_sxlib} have the same functionnalities as the
ones in \texttt{sxlib}, but have a topology that is usable only
within a datapath.
\texttt{Boog} can also map a behavior onto the \texttt{dplib}
\texttt{Boog} can also map a behavior onto the \texttt{dp\_sxlib}
library.
\item \texttt{fplib} is a set of above 30 regular functions that are
@ -946,7 +898,7 @@ used.
These projects range from medium complexity ASICs developed in 6
months by a couple of designers \textbf{Data-safe}, \textbf{TNT},
\textbf{Smal}, \textbf{Rf264},etc...) to high complexity circuits
\textbf{Smal}, \textbf{Rf264},etc... to high complexity circuits
(\textbf{FRISC}, \textbf{Multick}, \textbf{StaCS}, \textbf{Rapid2}, \textbf{Rcube})
developed by a team of PhD students.
@ -1023,7 +975,7 @@ views and problems, and our team is always ready to answer questions.
The address of this mailing list is
\texttt{alliance-users@asim.} \texttt{lip6.fr}.
The support of \textbf{Alliance} can be joined at
\texttt{alliance-support@asim.lip6.fr}.
\texttt{alliance-users@asim.lip6.fr}.
%%%%%%%%%%%%%%%%
%