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

Tato práce si kladla za cíl zjistit, jaké zkušební obvody pro logickou syntézu
jsou k dispozici, jaké formáty souborů se v praxi používají a jaké mají
vyjadřovací možnosti.  Zjistil jsem, že od 80. let existuje snaha připravit pro
akademickou veřejnost i komerční organizace ucelené sady zkušebních obvodů
a s postupem času se tyto sady staly obsáhlejší a přispívaly do nich výzkumné i
komerční instituce.  Zatímco v počátcích se popisy obvodů často omezovaly na
několikařádkový slovní popis funkce obvodu, později sílily snahy tyto popisy
lépe formalizovat a přinášet je v podobě jak lidsky čitelné, tak i strojově
zpracovatelné pro účely simulace nebo logické syntézy.

{\odstavec
Úroveň popisů obvodů se může značně lišit. K dispozici jsou zdrojové kódy v
jazycích typu VHDL a Verilog na úrovni behaviorálního popisu obvodu, kdy se
obvod tváří jako černá skříňka s algoritmicky popsaným chováním, na druhé
straně některé popisy jsou přímo na úrovni zapojení obvodu ve formě
tzv. netlistu.

Ve své práci jsem se zaměřil zejména na pět často používaných formátů: PLA, BENCH,
KISS2, BLIF a SLIF.

Formát PLA je dvouúrovňovým zápisem logické funkce a lze jej použít pro popis
funkce kombinačního obvodu.

Formát BENCH je typickým reprezentantem formátů popisujících zapojení obvodu
na úrovni elementárních logických prvků - hradel a klopných obvodů.

Formát KISS2 popisuje sekvenční obvod formou konečného automatu.

Formát SLIF popisuje kombinační nebo sekvenční obvod pomocí logických rovnic.

Formát BLIF je velmi univerzální, může obsahovat jak zapojení obvodů tvořených
knihovními hradly a klopnými obvody, tak i popisy jednotlivých hradel pomocí 
PLA tabulky a popisy jednotlivých klopných obvodů ve formátu KISS.

Probral jsem několik sad zkušebních obvodů pro logickou syntézu z hlediska
obvodů v nich obsažených a používaných formátů. U některých sad se jsou k
dispozici verze označené rokem vzniku; na těchto sadách lze pozorovat, jak se
rozšiřovaly tyto sady jak z hlediska počtu obsažených zkušebních obvodů, tak i
počtu a kvality jejich popisů vzhledem k potřebám a zkušenostem přispívajících
osob a organizací.

Dalším úkolem bylo vytvořit analyzátor (parser) některých souborových formátů zkušebních obvodů.
Parser, který jsem naprogramoval, umožňuje analyzovat atributy obvodů ve
formátu PLA, BENCH, KISS2, SLIF a BLIF a vypisuje zjištěné výsledky na příkazový
řádek. Tento parser je možné poměrně snadno doplnit o podporu dalších formátů.

Znalost formátů souborů a atributů, které lze z těchto formátů vyčíst,
umožnila vytvořit databázovou aplikaci, která uchovává informace o dostupných
obvodech. Zároveň jsou ukládány i původní soubory samotné.

Databáze je postavena na SQL databázovém stroji PostgreSQL a přistupovat k ní
lze pomocí webového rozhraní napsaného pomocí dynamického jazyka PHP. Rozhraní
umožňuje vkládat instance zkušebních obvodů, vyhledávat je  podle různých kritérií jako je název,
formát, sada, do níž přísluší a hodnoty atributů. Vyhledané instance zkušebních
obvodů je možné editovat, zobrazovat jejich podrobné informace a stahovat
jejich soubory jednotlivě nebo agregovaně pro všechny výsledky hledání najednou.

Součástí řešení webového rozhraní je i systém uživatelských práv. Přístup k
prohlížení databáze lze omezit pouze na registrované uživatele
nebo povolit veřejný přístup všem. Pouze uživatelé s dostatečným oprávněním
mohou editovat databázi nebo spravovat uživatelské účty.

Doplňkové funkce, které jsem v rámci diplomové práce připravil, jsou dávkové
plnění databáze skriptem a možnost parsování souboru s automatickým
plněním hodnot atributů při vkládání nové instance přes webové rozhraní.

Ve své práci se mimo jiné zabývám i otázkami bezpečnosti aplikace a vhodným
stylem vývoje a psaní kódu. Pojednal jsem krátce o použitých technologiích
a jednu kapitolu jsem věnoval scénářům testování aplikace.

Myslím, že práce splnila kladené cíle. Možnosti dalšího vývoje vidím v přidání
možnosti analýzy dalších formátů, další vývoj v oblasti dostupných zkušebních obvodů
a nasazení databáze a pomocných programů v praxi zcela jistě přinese další podněty
k rozšíření a vylepšení aplikace.
}

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