1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
|
%%%%%%%%%%%%%%%%%%%%
%
% The addaccu tutorial.
% Original Version 1.0 in text form by Francois Pecheux
% Version for Alliance releases 2.0 and up by Frederic Petrot
% Modified by czo for Alliance release 4.0 (01/2000)
% TODO : no fully working, needs some adjustements
% $Id: start.tex,v 1.8 2009/09/01 21:33:42 jpc Exp $
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{charter,setspace,fancybox}
\textwidth 15cm
\textheight 23cm
\oddsidemargin +0.75cm
\evensidemargin -0.75cm
\setstretch{1.2}
%%%%%%%%%%%%%%%
% Setting the width of the verbatim parts according to 80 tt chars
% Since it is tt, any char is fine
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newlength{\verbatimbox}
\settowidth{\verbatimbox}{\scriptsize\tt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
\newenvironment{framedverbatim}
{\VerbatimEnvironment\par\noindent\scriptsize
\begin{Sbox}\begin{minipage}{\verbatimbox}\begin{Verbatim}}%
{\end{Verbatim}\end{minipage}\end{Sbox}
\setlength{\fboxsep}{3mm}\center\shadowbox{\TheSbox}\normalsize\par\noindent}
\newenvironment{phraseverbatim}
{\VerbatimEnvironment\par\vspace*{2mm}\noindent\footnotesize
\begin{Sbox}\begin{minipage}{.979\textwidth}\begin{Verbatim}}%
{\end{Verbatim}\end{minipage}\end{Sbox}\setlength{\shadowsize}{2pt}%
\shadowbox{\TheSbox}\normalsize\par\noindent}
%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{center}
\Huge Using \bf Alliance\\
\Huge Tutorials
\end{center}
\vspace{2cm}
%%%%%%%%%%%%%%%%%%%%%%%%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{center}
Abstract
\begin{quote}
\em
These tutorials introduce the design flow to be used in the
\textbf{Alliance} CAD framework for the design and verification of a
standard cells circuit, including the pads.
Each step of the desgin flow is supported by one or more specific
tools, whose use is briefly explained in the tutorials.
These texts are meant to be simple and comprehensive, and are to be used
to get \emph{into} the system.
Should something be unclear or wrong, please indicate this by sending
an e-mail to \texttt{alliance-users@asim.lip6.fr}.
\rm
\end{quote}
\end{center}
\section{Introduction}
In these tutorials, you will learn the practical use of some basic
\textbf{Alliance} tools by building some very simple circuits from scratch.
It is recommended that you read the \texttt{overview.pdf} file before
proceeding, as it describes the main steps of the design conceptually.
\section{Before starting}
In those tutorials you will learn the practical use of the following
\textbf{Alliance} tools :
In the first tutorial (simulation/ directory) :
\begin{itemize}
\item \textbf{asimut} : VHDL compiler and simulator.
\item \textbf{genpat} : patterns generator.
\item \textbf{genlib} : Netlist capture.
\item \textbf{xpat} : Graphical pattern viewer.
\end{itemize}
In the second tutorial (place\_route/ directory) :
\begin{itemize}
\item \textbf{ocp} : Standard cell placer.
\item \textbf{ocr} : Over cell router (obsolete)
\item \textbf{nero} : Over cell router
\item \textbf{druc} : Design rule checker.
\item \textbf{ring} : Core to pads router.
\item \textbf{cougar} : Symbolic layout extractor.
\item \textbf{lvx} : Netlist comparator.
\item \textbf{graal} : Graphic layout editor.
\end{itemize}
In the third tutorial (synthesis/ directory) :
\begin{itemize}
\item \textbf{syf} : Finite state machine synthesizer.
\item \textbf{boom} : Boolean optimization of a logic level behavioral
description (VHDL data flow).
\item \textbf{boog} : Mapping of a behavioral descriptiononto a standard cell
library.
\item \textbf{loon} : Fanout optimizer, global optimizer and timing analyser of
\item \textbf{scapin} : Scan Path insertion
\item \textbf{xsch} : Graphical schematic viewer.
\end{itemize}
If you run a \texttt{c-like} shell, like \texttt{csh} or \texttt{tcsh},
try to run the following command :
\begin{phraseverbatim}
~alp/addaccu %-) source /etc/profile.d/alc_env.csh
\end{phraseverbatim}
Otherwise, if you run a \texttt{sh-like} shell, try to run the following
command :
\begin{phraseverbatim}
~alp/addaccu %-) source /etc/profile.d/alc_env.sh
\end{phraseverbatim}
\\
Before we proceed to the tutorial, you must make sure that the
\textbf{Alliance} tools are readilly available when invoking them at the
prompt.
The prompt in represented in the following text by the symbol~:
\begin{phraseverbatim}
~alp/addaccu %-)
\end{phraseverbatim}
In this system, \texttt{alp} is the user, \texttt{addaccu} is the current
directory, and \texttt{\%-)} is supposed to give us courage!
\section{Execution environment set up}
Later, before you will start examining alliance tools, you will probably want
to know the environment variables setup.
To see it, please enter the following command :
\begin{phraseverbatim}
~alp/addaccu %-) env | grep MBK
\end{phraseverbatim}
\begin{figure}[H]\center\leavevmode
\begin{framedverbatim}
~alp/addaccu %-) env | grep MBK
MBK_OUT_PH=ap
MBK_CATAL_NAME=CATAL
MBK_SCALE_X=100
MBK_VSS=vss
MBK_CATA_LIB=.:\$ALLIANCE\_TOP/cells/sxlib:\$ALLIANCE\_TOP/cells/padlib
MBK_WORK_LIB=.
MBK_VDD=vdd
MBK_C4_LIB=./cellsC4
MBK_IN_LO=vst
MBK_IN_PH=ap
MBK_TARGET_LIB=\$ALLIANCE\_TOP/cells/sxlib
MBK_OUT_LO=vst
\end{framedverbatim}
\caption{\label{mbk} \texttt{MBK} environment variables.}
\end{figure}
All these variables are documented at least with a manual page. However, some
variables are documented in each tutorial.
\section{File Formats}
One of the interesting features of \textbf{Alliance} is that different
file formats can be used for both netlist and layout view.
However,
in the design methodology we wish to promote, some formats are
recommended.
The \texttt{vst}, structural \textbf{VHDL}, is dedicated to netlist
specification.
The \texttt{al} format is dedicated to extracted layout representation.
The \texttt{ap} format is the usual layout format.
So, prior to generate a specification netlist, you shall type:
\begin{phraseverbatim}
~alp/addaccu %-) setenv MBK_OUT_LO vst
\end{phraseverbatim}
Otherwise, if you are running a \texttt{sh-like} shell:
\begin{phraseverbatim}
~alp/addaccu %-) MBK_OUT_LO=vst; export MBK_OUT_LO
\end{phraseverbatim}
But if you wish to extract a netlist from the layout then you'll do:
\begin{phraseverbatim}
~alp/addaccu %-) setenv MBK_OUT_LO al
\end{phraseverbatim}
You are now ready to actually do all tutorials.
\end{document}
|