aboutsummaryrefslogtreecommitdiffstats
path: root/manual/PRESENTATION_ExSyn.tex
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-02-04 00:57:11 +0100
committerClifford Wolf <clifford@clifford.at>2014-02-04 00:57:11 +0100
commit9e938aa32ad2b03eb9a9ea3bc1702ec4683cc37b (patch)
tree56ef33c4f8636f1e90be13003ae605b85a586d2a /manual/PRESENTATION_ExSyn.tex
parent6c3d76797606c233eeda8c950a193b5f0bf97048 (diff)
downloadyosys-9e938aa32ad2b03eb9a9ea3bc1702ec4683cc37b.tar.gz
yosys-9e938aa32ad2b03eb9a9ea3bc1702ec4683cc37b.tar.bz2
yosys-9e938aa32ad2b03eb9a9ea3bc1702ec4683cc37b.zip
presentation progress
Diffstat (limited to 'manual/PRESENTATION_ExSyn.tex')
-rw-r--r--manual/PRESENTATION_ExSyn.tex52
1 files changed, 48 insertions, 4 deletions
diff --git a/manual/PRESENTATION_ExSyn.tex b/manual/PRESENTATION_ExSyn.tex
index f2594487a..f67b502b2 100644
--- a/manual/PRESENTATION_ExSyn.tex
+++ b/manual/PRESENTATION_ExSyn.tex
@@ -267,7 +267,7 @@ memory -nomap; techmap -map my_memory_map.v; memory_map
\end{lstlisting}
\end{frame}
-\begin{frame}[t, fragile]{\subsecname{} -- Example 1/TBD}
+\begin{frame}[t, fragile]{\subsecname{} -- Example 1/2}
\vbox to 0cm{\includegraphics[width=\linewidth,trim=0cm 0cm 0cm -10cm]{PRESENTATION_ExSyn/memory_01.pdf}\vss}
\vskip-1cm
\begin{columns}
@@ -278,7 +278,7 @@ memory -nomap; techmap -map my_memory_map.v; memory_map
\end{columns}
\end{frame}
-\begin{frame}[t, fragile]{\subsecname{} -- Example 2/TBD}
+\begin{frame}[t, fragile]{\subsecname{} -- Example 2/2}
\vbox to 0cm{\hfill\includegraphics[width=7.5cm,trim=0cm 0cm 0cm -6cm]{PRESENTATION_ExSyn/memory_02.pdf}\vss}
\vskip-1cm
\begin{columns}
@@ -293,8 +293,52 @@ memory -nomap; techmap -map my_memory_map.v; memory_map
\subsection{The ``fsm'' commands}
-\begin{frame}{\subsecname}
-TBD
+\begin{frame}[fragile]{\subsecname{}}
+The {\tt fsm} command identifies, extracts, optimizes (re-encodes), and
+re-synthesizes finite state machines. It again is a macro that calls
+a series of other commands:
+
+\begin{lstlisting}[xleftmargin=0.5cm, basicstyle=\ttfamily\fontsize{8pt}{10pt}\selectfont]
+fsm_detect # unless got option -nodetect
+fsm_extract
+
+fsm_opt
+opt_clean
+fsm_opt
+
+fsm_expand # if got option -expand
+opt_clean # if got option -expand
+fsm_opt # if got option -expand
+
+fsm_recode # unless got option -norecode
+
+fsm_info
+
+fsm_export # if got option -export
+fsm_map # unless got option -nomap
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}{\subsecname{} -- details}
+Some details on the most importand commands from the {\tt fsm\_*} group:
+
+\bigskip
+The {\tt fsm\_detect} command identifies FSM state registers and marks them
+with the {\tt (* fsm\_encoding = "auto" *)} attribute, if they do not have the
+{\tt fsm\_encoding} set already. Mark registers with {\tt (* fsm\_encoding =
+"none" *)} to disable FSM optimization for a register.
+
+\bigskip
+The {\tt fsm\_extract} command replaces the entire FSM (logic and state
+registers) with a {\tt \$fsm} cell.
+
+\bigskip
+The commands {\tt fsm\_opt} and {\tt fsm\_recode} can be used to optimize the
+FSM.
+
+\bigskip
+Finally the {\tt fsm\_map} command can be used to convert the (optimized) {\tt
+\$fsm} cell back to logic and registers.
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%