mirror of https://github.com/YosysHQ/yosys.git
Progress in presentation
This commit is contained in:
parent
ca53ef5098
commit
0fbc1a59dd
|
@ -87,7 +87,7 @@ cd .. # switch back to design
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\bigskip
|
\bigskip
|
||||||
Note: Most synthesis script never switch to module context. But it is a very powerful
|
Note: Most synthesis scripts never switch to module context. But it is a very powerful
|
||||||
tool for interactive design investigation.
|
tool for interactive design investigation.
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ Special pattern can be used to select by object property or type. For example:
|
||||||
select w:reg_* # select all wires whose names start with reg_
|
select w:reg_* # select all wires whose names start with reg_
|
||||||
select a:foobar # select all objects with the attribute foobar set
|
select a:foobar # select all objects with the attribute foobar set
|
||||||
select a:foobar=42 # select all objects with the attribute foobar set to 42
|
select a:foobar=42 # select all objects with the attribute foobar set to 42
|
||||||
select A:blabla # select all module with the attribute blabla set
|
select A:blabla # select all modules with the attribute blabla set
|
||||||
select foo/t:$add # select all $add cells from the module foo
|
select foo/t:$add # select all $add cells from the module foo
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ reference to the {\tt select} command.
|
||||||
|
|
||||||
\begin{frame}[fragile]{\subsubsecname}
|
\begin{frame}[fragile]{\subsubsecname}
|
||||||
When more than one selection expression is used in one statement they are
|
When more than one selection expression is used in one statement they are
|
||||||
pushed on a stack. At the final elements on the stack are combined into a union:
|
pushed on a stack. The final elements on the stack are combined into a union:
|
||||||
|
|
||||||
\medskip
|
\medskip
|
||||||
\begin{lstlisting}[xleftmargin=0.5cm, basicstyle=\ttfamily\fontsize{8pt}{10pt}\selectfont, language=ys]
|
\begin{lstlisting}[xleftmargin=0.5cm, basicstyle=\ttfamily\fontsize{8pt}{10pt}\selectfont, language=ys]
|
||||||
|
@ -170,7 +170,7 @@ See {\tt help select} for full documentation of this expressions.
|
||||||
|
|
||||||
\begin{frame}[fragile]{\subsubsecname}
|
\begin{frame}[fragile]{\subsubsecname}
|
||||||
Sometime a selection can most easily described by a series of add/delete operations.
|
Sometime a selection can most easily described by a series of add/delete operations.
|
||||||
For the commands {\tt select -add} and {\tt select -del} add or remove objects
|
The commands {\tt select -add} and {\tt select -del} respectively add or remove objects
|
||||||
from the current selection instead of overwriting it.
|
from the current selection instead of overwriting it.
|
||||||
|
|
||||||
\medskip
|
\medskip
|
||||||
|
@ -327,7 +327,7 @@ is non-zero then the module is disabled for this set of parameters.
|
||||||
\item The special wires {\tt \_TECHMAP\_DO\_*} can be used to run Yosys scripts
|
\item The special wires {\tt \_TECHMAP\_DO\_*} can be used to run Yosys scripts
|
||||||
in the context of the replacement module.
|
in the context of the replacement module.
|
||||||
\medskip
|
\medskip
|
||||||
\item The wire that comes first in alphatecial oder is interprated as string (must
|
\item The wire that comes first in alphabetical oder is interpreted as string (must
|
||||||
be connected to constants) that is executed as script. Then the wire is removed. Repeat.
|
be connected to constants) that is executed as script. Then the wire is removed. Repeat.
|
||||||
\medskip
|
\medskip
|
||||||
\item You can even call techmap recursively!
|
\item You can even call techmap recursively!
|
||||||
|
@ -340,6 +340,10 @@ this is known to work well.
|
||||||
\item Interacting with custom commands.
|
\item Interacting with custom commands.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\scriptsize
|
||||||
|
PROTIP: Commands such as {\tt shell}, {\tt show -pause}, and {\tt dump} can be use
|
||||||
|
in the {\tt \_TECHMAP\_DO\_*} scripts for debugging map modules.
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[t]{\subsubsecname{} -- Example}
|
\begin{frame}[t]{\subsubsecname{} -- Example}
|
||||||
|
@ -399,12 +403,36 @@ input values to cells.
|
||||||
\end{columns}
|
\end{columns}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\subsubsection{TBD}
|
\subsubsection{Handling shorted inputs}
|
||||||
|
|
||||||
\begin{frame}{\subsubsecname}
|
\begin{frame}{\subsubsecname}
|
||||||
TBD
|
TBD
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\subsubsection{Notes on using techmap}
|
||||||
|
|
||||||
|
\begin{frame}{\subsubsecname}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Don't use positional cell parameters in map modules.
|
||||||
|
\medskip
|
||||||
|
\item Don't try to implement basic logic optimization with techmap. \\
|
||||||
|
{\small (So the OR-reduce using OR3X1 cells map was actually a bad example.)}
|
||||||
|
\medskip
|
||||||
|
\item You can use the {\tt \$\_\,\_}-prefix for internal cell types to avoid
|
||||||
|
collisions with the user-namespace. But always use two underscores or the
|
||||||
|
internal consistency checker will trigger on this cells.
|
||||||
|
\medskip
|
||||||
|
\item Techmap has two major use cases:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Creating good logic-level representation of arithmetic functions. \\
|
||||||
|
This also means using dedicated hardware resources such as half- and full-adder
|
||||||
|
cells in ASICS or dedicated carry logic in FPGAs.
|
||||||
|
\smallskip
|
||||||
|
\item Mapping of coarse-grain resources such as block memory or DSP cells.
|
||||||
|
\end{itemize}
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
\subsection{Coarse-grain synthesis}
|
\subsection{Coarse-grain synthesis}
|
||||||
|
|
|
@ -223,7 +223,7 @@ The designs in {\tt yosys-bigsim} are a good playground for experimenting with
|
||||||
the effects of calling {\tt opt} in various places of the flow.
|
the effects of calling {\tt opt} in various places of the flow.
|
||||||
|
|
||||||
\bigskip
|
\bigskip
|
||||||
It generally is a good idea us call {\tt opt} before inherently expensive
|
It generally is a good idea to call {\tt opt} before inherently expensive
|
||||||
commands such as {\tt sat} or {\tt freduce}, as the possible gain is much
|
commands such as {\tt sat} or {\tt freduce}, as the possible gain is much
|
||||||
higher in this cases as the possible loss.
|
higher in this cases as the possible loss.
|
||||||
|
|
||||||
|
|
|
@ -326,7 +326,7 @@ as Qflow\footnote[frame]{\url{http://opencircuitdesign.com/qflow/}} for ASIC des
|
||||||
Read Verilog source file and convert to internal representation.
|
Read Verilog source file and convert to internal representation.
|
||||||
}%
|
}%
|
||||||
\only<2>{
|
\only<2>{
|
||||||
Elaborate the design hierarchy. Should alsways be the first
|
Elaborate the design hierarchy. Should always be the first
|
||||||
command after reading the design.
|
command after reading the design.
|
||||||
}%
|
}%
|
||||||
\only<3>{
|
\only<3>{
|
||||||
|
@ -794,7 +794,7 @@ We need you as a developer:
|
||||||
\begin{frame}{\subsecname}
|
\begin{frame}{\subsecname}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Yosys is a powerful tool and framework for Verilog synthesis.
|
\item Yosys is a powerful tool and framework for Verilog synthesis.
|
||||||
\item Is uses a command-based interface and can be controlled by scripts.
|
\item It uses a command-based interface and can be controlled by scripts.
|
||||||
\item By combining existing commands and implementing new commands Yosys can
|
\item By combining existing commands and implementing new commands Yosys can
|
||||||
be used in a wide range of application far beyond simple synthesis.
|
be used in a wide range of application far beyond simple synthesis.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
Loading…
Reference in New Issue