\chapter{Uživatelská příručka}

\section{Vstup programu}
\indent \indent Vstupem programu je textový soubor. Soubor obsahuje textově popsaný signálově přechodový graf. Popis grafu se skládá z části udávající daný příkaz, jež budu uvádět v apostrofech a argumentu, který budu uveden v uvozovkách. Příkaz je myšlený identifikátor, který uvádí argumenty. Řádek představuje jeden příkaz s argumenty, argumenty jsou oddělené mezerou. Textový popis vychází ze vstupního popisu programu ATACS. 

    '.name' „jméno“
\newline Kde '.name' je příkazem , který bude určovat jméno výstupního souboru. Jméno výstupního souboru je uvedeno jako argument v uvozovkách. Ke jménu je přidán .vhd označující soubor s VHDL kód.

	'.inputs' „arg“
\newline Příkaz '.inputs' udává jména vstupů obvodu. Počet argumentu je libovolný. Pokud není, žádný vstup, příkaz '.inputs' se vynechává.

	'.outputs' „arg“
\newline Příkaz '.inputs' udává jména výstupů obvodu. Počet argumentu je libovolný. Pokud není žádný výstup, příkaz '.outputs' se vynechává. Pro dané výstupy bude vygenerován VHDL kód popisující
vztahy vstupů, výstupů a interních signálu na výstup.

	'.internal' „arg“
\newline Příkaz '.internal' udává jména interních signálů, které se vyskytují v obvodu. Počet argumentu je libovolný. Pokud není žádný interní signál, příkaz '.internal' se vynechává. Pro daný interní signál bude vygenerován VHDL kód popisující vztahy vstupů, výstupů a interních signálu k internímu signálu.  

'\#@.init\_state' „[*]“
\newline Zakódování počátečního stavu stavového grafu je uvedeno v argumentu příkazu '\#@.init\_state'. Kde v argumentu * je uveden kód v binárním vyjádření, který musí být uvozen hranatými závorkami.

	'.graph'
\newline Tento příkaz je bez argumentu a udává, že následující řádky představují popis grafu. Kde jednotlivé argumenty na řádce jsou odděleny mezerami. První argument řádky představuje přechod z něhož se dostaneme do ostatních přechodů a ostatní přechody představují zbývající argumenty, přičemž je implicitně dané, že mezi přechody jsou místa. U přechodu označení + nebo –  představuje, zda přechod roste nebo klesá.

	'.marking' „{ <*,*>  }“
\newline Příkaz  '.marking' označí místa tokenem, mezi přechody, označeny *, které jsou uvedeny v menšítku a většítku a jsou oddělenou čárkou. Pokud je více míst označeno tokeny, potom je popis oddělen mezerami. Celý popis je uzavřen mezi složené závorky. Příkaz '.marking' se uvádí, až po popsání grafu.

	'.end'
\newline Ukončení grafu oznamuje příkaz '.end' . Po jeho zadání se začne graf transformovat.

	'\# ' „arg“
\newline Jedná se o komentář a jakýkoliv argument není brán v potaz.

\clearpage
 
Příklad vstupního souboru:

\begin{verbatim}
  .name vme
  .inputs  dsr ldtack
  .outputs  lds d
  .internal  csc0
  #@.init_state [00000]
  .graph
  dsr+ csc0+
  lds+ ldtack+
  dsr- csc0-
  lds- ldtack-
  d- dsr+
  ldtack+ d+
  d+ dsr-
  ldtack- csc0+
  csc0+ lds+
  csc0- d- lds-
  .marking { <d-,dsr+> <ldtack-,csc0+> }
  .end
\end{verbatim}


\section{Píšeme vstup}
\indent \indent Vstup programu je textový soubor, který popisuje STG a musí splňovat dané podmínky.
Začneme příkazem \textit {.name}, za nimž bude následovat mezera a jméno výstupního souboru. Příkazy začínají vždy na novém řádku. Mezi řádky nejsou volné mezery. Příkazy \textit {.inputs}, \textit {.outputs}, \textit {.internal} udávají ke jménům signálu jejich význam. Jména signálu jsou odděleny pomocí mezer. Pokud některý typ signálu neexistuje příkaz se neuvádí. Počáteční zakódování příkaz \textit {\#@.init\_state}, následuje mezera a hranaté závorky. Uvnitř závorek se binární zakódování. Počet míst zakódování odpovídá součtu počtu vstupů, výstupů a interních signálů. Příkaz \textit {.graf}, říká , že následující řetězce jsou vztahy mezi přechody. Vztahy byly, již popsány. Po popsání grafu přechody následuje .marking, který označuje místa, která mají být označena tokenem.
Konec grafu \textit {.end}.

\section{Spuštění programu a manipulace}
\indent \indent Jelikož je program exe soubor, tak stačí jej jen spustit. Konzole Vás poté vyzve k zadání názvu souboru, který obsahuje popis STG. Obsah je demonstrován výše. Pokud graf splňuje všechny požadavky dojde k přetransformování a k vygenerování VHDL kódu. Název souboru obsahující VHDL kód bude vypsán na konzoli.
