% $Id: kiss2.tex,v 1.1 2007/01/18 22:20:30 jarda Exp $

\section{Formát KISS2 (Berkeley KISS2 format)}

Formát KISS2 obsahuje definici sekvenčního obvodu ve formě konečného automatu.
Skládá se z hlavičky a seznamu přechodů. Formát je řádkově orientovaný - každý řádek
hlavičky obsahuje maximálně jeden údaj a každý řádek seznamu přechodů obsahuje jeden
přechod.

\subsection{Popis syntaxe a údajů v hlavičce}

Hlavička může obsahovat následující informace:

\begin{itemize}

\item
.i \textit{číslo} - počet vstupů

\item
.o \textit{číslo} - počet výstupů

\item
.p \textit{číslo} - počet přechodů

\item
.s \textit{číslo} - počet stavů

\item
.r \textit{identifikátor} - stav po resetu

\end{itemize}

Pouze počet vstupů a výstupů jsou povinné údaje. 

\subsection{Seznam přechodů}

Po hlavičce přichází řádky seznamu přechodů - každý přechod automatu 
je na samostatném řádku. 

{\odstavec
Jedna řádka seznamu přechodů vypadá následovně:

\begin{tabular}{llll}
vstupní symbol & výchozí stav & cílový stav & výstupní symbol \\
\end{tabular}

Stavy jsou označeny identifikátorem, pokud je na místě
výchozího stavu hvězdička (*), znamená to, že pro daný vstupní symbol přechází
automat do zadaného stavu a produkuje zadaný výstupní symbol bez ohledu
na aktuální stav. Hvězdička na místě cílového stavu znamená, že taková kombinace
výchozího stavu a vstupního symbolu by neměla vůbec nastat.

Vstupy a výstupy nabývají hodnot 0, 1, - (don't care). Řetězec těchto hodnot představuje
vstupní, resp. výstupní symbol.
}

\subsection{Jednoduchý příklad}

Následující příklad je převzatý z benchmarku s27.kiss2:

\begin{verbatim}
.i 4
.o 1
.p 34
.s 6
.r 000
010- 000 001 1
011- 000 000 1
110- 000 101 1
111- 000 100 1
10-0 000 100 1
00-0 000 000 1
-0-1 000 010 0
0-0- 001 001 1
0-1- 001 000 1
1-0- 001 101 1
1-1- 001 100 1
0-0- 101 001 1
0-1- 101 000 1
1-0- 101 101 1
1-1- 101 100 1
010- 100 001 1
011- 100 000 1
00-- 100 000 1
111- 100 100 1
110- 100 101 1
10-- 100 100 1
0-1- 010 010 0
000- 010 010 0
010- 010 011 0
1101 010 101 1
1111 010 100 1
10-1 010 010 0
1100 010 101 1
1110 010 100 1
10-0 010 100 1
0-0- 011 011 0
0-1- 011 010 0
1-1- 011 100 1
1-0- 011 101 1
\end{verbatim}

Další informace lze nalézt v \cite{yang91logic}.

% vim:enc=iso8859-2:fenc=iso8859-2:syntax=tex:
