\subsection{Synopsys}

\begin{verbatim}
netInput = LogicIn ( name, arity )
\end{verbatim}

\subsection{Description}

Instanciation of net. Differents kind of nets are listed below :
\begin{itemize}
    \item \verb-LogicIn- : Creation of an input port
    \item \verb-LogicOut- : Creation of an output port
    \item \verb-LogicInOut- : Creation of an inout port
    \item \verb-LogicUnknown- : Creation of an input/output port which direction is not defined
    \item \verb-TriState- : Creation of a tristate port
    \item \verb-CkIn- : Creation of a clock port
    \item \verb-VddIn- : Creation of the vdd alimentation
    \item \verb-VssIn- : Creation of the vss alimentation
    \item \verb-Signal- : Creation of an internal net
\end{itemize}
        
\subsection{Parameters}

\begin{itemize}
    \item \verb-name- : Name of the net (mandatory argument)
    \item \verb-arity- : Arity of the net (mandatory argument)
    \item \verb-indice- : For buses only : the LSB bit (optional argument : set to 0 by default)\\
\end{itemize}

\indent Only \verb-CkIn, -\verb-VddIn- and \verb-VssIn- do not have the same parameters : there is only the \verb-name- parameter (they are 1 bit nets).

\subsection{Attributes}

\begin{itemize}
    \item \verb-_name- : Name of the net
    \item \verb-_arity- : Arity of the net (by default set to 0)
    \item \verb-_ind- : LSB of the net
    \item \verb-_ext- : Tells if the net is external or not (True/False)
    \item \verb-_direct- : If the net is external, tells the direction ("IN", "OUT", "INOUT", "TRISTATE", "UNKNOWN")
    \item \verb-_h_type- : If the net is an alimentation or a clock, tells the type ("POWER", "GROUND", "CLOCK")
    \item \verb-_type- : The arithmetic type of the net ( "nr" )
    \item \verb-_st_cell- : The stratus cell which the net is instanciated in
    \item \verb-_real_net- : If the net is a part of a net (Sig) it is the real net corresponding
    \item \verb-_alias- : [] by default. When the net has an alias, it's a tab. Each element of the tab correspond to a bit of the net (from the LSB to the MSB), it'a a dictionnary : the only key is the net which this net is an alias from, the value is the bit of the net
    \item \verb-_to_merge- : [] by default. The same as \_alias
    \item \verb-_to_cat- : [] by default. The same as \_alias\\
\end{itemize}

\indent And, in connection with Hurricane :
\begin{itemize}
    \item \verb-_hur_net- : A tab with all the hurricane nets corresponding to the stratus net ; From the LSB to the MSB (for example, with a 1 bit net, one gets the hurricane net by doing : \verb-net._hur_net[0]- ).
\end{itemize}

\subsection{Methods}

\begin{itemize}
    \item \verb-Buffer- : Instanciation of a Buffer
    \item \verb-Shift- : Instanciation of a shifter
    \item \verb-Mux- : Instanciation of a multiplexor
    \item \verb-Reg- : Instanciation of a register
    \item \verb-Eq/Ne- : Instanciation of comparison generator
    \item \verb-Extend- : A net is extended
    \item \verb-Alias- : A net is an alias of another net
    \item \verb-Delete- : Deletion of the Hurricane nets\\
\end{itemize}
\indent And the overloards :
\begin{itemize}
    \item \_\_init\_\_ : Initialisation of nets
    \item \_\_le\_\_ : initialisation of a net thanks to <= notation
    \item \_\_getitem\_\_, \_\_geslice\_\_ : Creation of "Sig" nets : which are part of nets (use of \verb-[]- and \verb-[:]-)
    \item \_\_and\_\_, \_\_or\_\_, \_\_xor\_\_, \_\_invert\_\_ : boolean operation with \&, |, \^ , ~
    \item \_\_add\_\_, \_\_mul\_\_, \_\_div\_\_ : arithmetic operators with +, * and /
\end{itemize}
