diff --git a/stratus1/doc/stratus/CMakeLists.txt b/stratus1/doc/stratus/CMakeLists.txt index e5c68f61..09709ccf 100644 --- a/stratus1/doc/stratus/CMakeLists.txt +++ b/stratus1/doc/stratus/CMakeLists.txt @@ -40,6 +40,7 @@ man_route_ck.tex man_set_ref_ins.tex man_shift.tex + man_stimuli.tex man_stratus.tex see_also.tex IMAGE_DIRS images ) diff --git a/stratus1/doc/stratus/man_new.tex b/stratus1/doc/stratus/man_new.tex index 9581f186..75afd52b 100644 --- a/stratus1/doc/stratus/man_new.tex +++ b/stratus1/doc/stratus/man_new.tex @@ -1,15 +1,10 @@ - \subsection{march 2007} - -A modification has been done to the virtual library. The name of the cells have been changed in order to be synchronised with the sxlib cells.\\ -\indent Two utilizations can be done with the cells of the virtual library : wether direct instanciation of 1 bit cells, wether use of a generator (same model name with the first letter uppered) in order to have several bits cells. - - \subsection{mai 2006} - -First of all, the modifications made to stratus make all files created for version 2.0 deprecated, and unusable with this version 3.0.\\ -\indent All following releases will be improvements, and not major changements.\\ + \subsection{march 2012} \begin{itemize} - \item The main modification is the new funtion \verb-Generate- : this function is used to generate generators before their instanciation.\\ - \item One other modification is the type of arguments of function \verb-Place- : it no longer takes x and y coordinates but a \verb-XY- object (which is a point (x, y) ).\\ - \item Some improvements are also added for layout : the creation of segments, contacts, and references. -\end{itemize} + \item{A configuration file can be used to direct Stratus.} + \item{A Stratus's description can now be exported either in Alliance VST format or standard VHDL using the \verb-Save- method and the configuration file.} + \item{A \verb-Stimuli- method permits to generate stimuli for simulation.} + \item{Thanks to the \verb-Stimuli- method, a testbench can now automatically be generated either in Alliance PAT format or standard VHDL.} + \item{The \verb-Simul- method of the class \verb-Model- permits to simulate either with the Alliance's simulator \verb-asimut- or a standard VHDL simulator (\verb-ghdl-).} +\begin{end} + diff --git a/stratus1/doc/stratus/man_stratus.tex b/stratus1/doc/stratus/man_stratus.tex index 0209920f..47e4f7f2 100644 --- a/stratus1/doc/stratus/man_stratus.tex +++ b/stratus1/doc/stratus/man_stratus.tex @@ -8,11 +8,19 @@ Stratus -- Procedural design language based upon \emph{Python} \indent Based upon the \emph{Hurricane} data structures, the \emph{Stratus} language gives the user the ability to describe netlist and layout views. -\subsubsection{Creation of a cell} +\subsubsection{Configuration} +A configuration file can be used to direct the generation process of Stratus. With this file, the user can choose the output format (vst, vhdl...), the simulator (asimut, ghdl...), the standard cell library... This configuration file named \verb-.st_config.py- must be placed either in the HOME directory or in the current directory. This file contains a set of variables used in the process generation of Stratus, as for example : +\begin{verbatim} +format = 'vhdl' +simulator = 'ghdl' +\end{verbatim} +The default configuration of Stratus uses the Alliance CAD system, ie \verb-'vst'- as \verb-format- and \verb-'asimut'- as \verb-simulator-. + +\subsubsection{Description of a cell} A cell is a hierachical structural description of a circuit in terms of ports (I/Os), signals (nets) and instances.\\ -\indent The creation of a cell is done by creating a new class, derivating for class \verb-Model-, with different methods : +\indent The description of a cell is done by creating a new class, derivating for class \verb-Model-, with different methods : \begin{itemize} \item Method \verb-Interface- : Description of the external ports of the cell : @@ -27,21 +35,31 @@ A cell is a hierachical structural description of a circuit in terms of ports (I \begin{itemize} \item Place, PlaceTop, PlaceBottom, PlaceRight, PlaceLeft ... \end{itemize} +\item Method \verb-Stimuli- : Description of the simulation stimuli of the cell : + \begin{itemize} + \item affect, addd ... + \end{itemize} \end{itemize} -\indent Two methods are provided : +\subsubsection{Creation of the cell} + +After the description of a cell as a sub-class of \verb-Model-, the cell has to be instantiated. The different methods described before have to be called. + +\indent Then different methods are provided : \begin{itemize} \item Method \verb-View- : Opens/Refreshes the editor in order to see the created layout - \item Method \verb-Save- : Saves the created cell + \item Method \verb-Save- : Saves the created cell in the desired format thanks to the configuration file \begin{itemize} - \item no argument : creation of a netlist file (format file thanks to CRL\_OUT\_LO) - \item PHYSICAL : creation of a netlist file AND a layout file (format files thanks to CRL\_OUT\_LO and CRL\_OUT\_PH) + \item no argument : creation of a netlist file %(format file thanks to CRL\_OUT\_LO) + \item PHYSICAL : creation of a netlist file AND a layout file %(format files thanks to CRL\_OUT\_LO and CRL\_OUT\_PH) \item STRATUS : creation of a python/stratus file \begin{itemize} \item FileName : optionnal argument when using Save(STRATUS) in order to choose the name of the file to be generated \item Be careful : if one wants to create a stratus file AND a netlist, always use Save(STRATUS) before Save() ! \end{itemize} \end{itemize} + \item Method \verb-Testbench- : Creates the testbench of the cell using the \verb-Stimuli- method to compute the stimuli. The output format depends of the \verb-format- variable given in the configuration file + \item Method \verb-Simul- : Runs the simulation using the simulator named in the configuration file \end{itemize} \subsubsection{Syntax} @@ -53,14 +71,26 @@ A \emph{Stratus} file must have a .py extension and must begin as follow : from stratus import * \end{verbatim} -\indent The creation of a class is done as follow : +\indent The description of a cell as a sub-class of \verb-Model- is done as follow : \begin{verbatim} class myClass ( Model ) : ... +\end{verbatim} +\indent The creation of the cell is done by instantiating the previous class as follow : +\begin{verbatim} exemple = myClass ( name, param ) \end{verbatim} +\indent After the different methods can be called as follow : +\begin{verbatim} +exemple.Interface() +exemple.Netlist() +exemple.Save() + ... +\end{verbatim} + + \indent In order to execute a \emph{Stratus} file (named \verb-file- for example), one has two choices : \begin{verbatim} python file.py @@ -77,7 +107,7 @@ chmod u+x file.py \subsubsection{Syntax highlighting} -When using vi, it's possible to have the right syntax highlighting when using vi : +When using vi, it's possible to have the right syntax highlighting : \begin{itemize} \item Commands to do when you want to change once the coloration of your file : @@ -99,16 +129,16 @@ syntax on \end{verbatim} \end{small} -\subsubsection{Environment variables} - -\begin{itemize} - \item CRL\_IN\_LO, default value : \verb-def- - \item CRL\_OUT\_LO, default value : \verb-def- - \item CRL\_IN\_PH, default value : \verb-def- - \item CRL\_OUT\_PH, default value : \verb-def- - \item CRL\_CATA\_LIB, default value : \verb-.- - \item CRL\_CATAL\_NAME, default value : \verb-CATAL- -\end{itemize} +%\subsubsection{Environment variables} +% +%\begin{itemize} +% \item CRL\_IN\_LO, default value : \verb-def- +% \item CRL\_OUT\_LO, default value : \verb-def- +% \item CRL\_IN\_PH, default value : \verb-def- +% \item CRL\_OUT\_PH, default value : \verb-def- +% \item CRL\_CATA\_LIB, default value : \verb-.- +% \item CRL\_CATAL\_NAME, default value : \verb-CATAL- +%\end{itemize} \begin{htmlonly} @@ -120,8 +150,9 @@ You can see a concrete example at : \hyperref[ref]{\emph{Example}}{}{Example}{se \hyperref[ref]{\emph{Netlist}}{}{Netlist}{secnetlist} \hyperref[ref]{\emph{Layout}}{}{Layout}{seclayout} +\hyperref[ref]{\emph{Stimuli}}{}{Stimuli}{secstimuli} \hyperref[ref]{\emph{Place and Route}}{}{Place and Route}{secroute} -\hyperref[ref]{\emph{Virtual libraty}}{}{Virtual library}{seclibrary} +\hyperref[ref]{\emph{Virtual librayy}}{}{Virtual library}{seclibrary} \hyperref[ref]{\emph{Instanciation facilities}}{}{Instanciation facilities}{secfacilities} \end{htmlonly} diff --git a/stratus1/doc/stratus/stratus.tex b/stratus1/doc/stratus/stratus.tex index 686cb094..c8e14fa4 100644 --- a/stratus1/doc/stratus/stratus.tex +++ b/stratus1/doc/stratus/stratus.tex @@ -115,6 +115,10 @@ \label{secresizeab} \input{man_resize_ab} +\section{Description of the stimuli} +\label{secstimuli} + \input{man_stimuli} + \section{Place and Route} \label{secroute}