\chapter{Testování}
\section{Testovací aplikace}
Na přiloženém cd je zkompilovaný projekt pro {\bf MSVC 2003} skládá se ze struktury hubu 
a aplikace sloužící pro práci s touto strukturou. Zdrojový kód této aplikace 
je  v souboru \verb|MSVC03_project/hub/apps/circtr.cpp|. Zdrojové kódy
HUBu jsou ve složce \verb|MSVC03_project/hub/|, zdrojové kódy importního
a exportního VHDL modulu jsou uloženy ve složce \verb|MSVC03_project/hub/vhdl|.

Přeložená konzolová aplikace pro {\bf  Win32} 
je rovněž přiložena na CD: \\(\verb|MSVC03_project/hub/apps/circtr/circtr.exe|).

Tato aplikace umožňuje importovat specifikaci návrhu, zapsanou v jednom z podporavných
vstupních formátů, do struktury {\bf HUBu} a poté exportovat tuto strukturu 
do jednoho z podporovaných výstupních formátů.
Podporované vstupní formáty:
\begin{itemize}
\item EDIF
\item BENCH 
\item VHDL
\end{itemize}

Podporované výstupní formáty:
\begin{itemize}
\item dbg (kontrolní výpis struktury uložené v HUBu)
\item VHDL
\end{itemize}

Jedná se o konzolovou aplikaci, spustí se příkazem circctr s příslušnými parametry.
Parametry mohou být následující:
\begin{verbatim}
circctr -I jmeno_souboru.xxx -l jm_knih -e jm_ent -a jm_arch 
        -O jmeno_vyst_souboru.xxx -l jm_knih -e jm_ent -a jm_arch  
\end{verbatim}

Po parametru {\bf I} následuje jméno vstupního souboru, o jaký se jedná formát se 
rozpozná podle koncovky tohoto souboru. Parametry l,e,a následující za parametrem pro
import určují jméno knihovny,entitym a architektury importované struktury.
U importu z {\bf EDIFu} není na tyto specifikace brán zřetel protože  {\bf EDIF} tyto pojmy zná.
U importu z {\bf VHDL} je možné nastavit pouze jméno knihovny, dálší pojmy {\bf VHDL} rovněž zná.
U importu z  {\bf BENCHe} je možné nastavit všechny tyto specifikace.

Po parametru  {\bf O} následuje jméno výstupního souboru, o jaký se jedná formát se 
rozpozná podle koncovky tohoto souboru. Parametry l,e,a následující za parametrem pro
export definují jaká knihovna, entita nebo architektura bude exportována.

U exportu do {\bf VHDL} se export každé knihovny provádí do zvláštního souboru 
pojmnenovaného stejně jako daná knihovna. 

V případě importu z jazyka VHDL kdy je návrh strukturovaný a každá entita 
je uložena v jiném souboru lze použít specifikaci importovaného souboru vícekrát 
za sebou. Nejprve se definují soubory obsahující entity vnořené nejhlouběji v
návrhu a poté ty na vyšších urovní které ve svých strukturách obsahují dříve zmíněné 
entity.

Příklad:
\begin{verbatim}
circtr -I half_adder.vhdl -I adder.vhdl -I four_bit_adder.vhdl -o out.dbg
\end{verbatim}

 
\section{Import}

Při testování jsem postupoval podle gramatiky jazyka {\bf VHDL} a jednotlivé konstrukce
jsem se pokoušel naimportovat do {\bf HUBu}. Ty části které nejsou naimplementovány ohlásily
chybu včetně popisu  chyby a místa v souboru kde se neimplementovaná konstrukce vyskytla. 
U částí které jsou naimplementované fungovalo vše tak jak bylo stanoveno v 
analýze, žádné neočekávané události nenastaly. Je akorát potřeba si dávat pozor 
na propojování portů, import nekontroluje v jakém jsou porty módu, lze tedy např. 
propojit dva vstupní porty mezi sebou.

V příloze \ref{import_vstup} na straně \pageref{import_vstup} je strukturní návrh 4-bitové sčítačky
popsané v jazyce {\bf VHDL}. Tato sčítačka je složena s komponent úplné sčítačky  a půlsčítačky.
Tato struktura byla naimportována do HUBu, na straně \pageref{import_vystup} 
je dbg výstup této struktury uložené v HUBu. V tomto výstupu jde přesně vidět 
jakým způsobem se jednotlivé konstrukce jazyka {\bf VHDL} importují do struktury {\bf HUBu}.
Tento ukázkový kód zahrnuje většinu prvků jazyka VHDL které byly naimplementovány.

\section{Export}
\label{testovani}
Výstup do formátu {\bf VHDL} jsem zkoušel se strukturami uloženými v {\bf HUBu},
 které 
byly předtím naimportovány ze souborů obsahujících návrhy obvodů 
v libovolných podporovaných vstupních formátech.
Funkčnost vygenerovaného kódu ve formátu {\bf VHDL} jsem ověřoval v prostředí 
{\bf XILINX ISE} \cite{Xilinx}. Ve všech případech se podařilo vygenerovaný kód
vysyntetizovat. 
V příloze \ref{export_vstup} na straně \pageref{export_vstup} je ukázka návrhu uloženého v {\bf HUBu} a
za ní následuje vygenerovaný {\bf VHDL} kód který odpovídá tomuto návrhu. 


Další testovací vstupní soubory a jejich výstupy do dbg a VHDL jsou na přiloženém CD ve složce \verb|Testy|.











