diff options
Diffstat (limited to 'manual/PRESENTATION_ExSyn.tex')
-rw-r--r-- | manual/PRESENTATION_ExSyn.tex | 52 |
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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |