VHDL a Verilog



OBSAH

Pøedmluva

Obsah

Úvod

1. VHDL

2 Podpora návrhu

3 Podpora testování

4 Podpora implementace

5. Nástroj standardizace

6 Struèná historie VHDL

7 Doporuèení IEEE Std 1076

8 Doporuèení IEEE Std 1164

9 Doporuèení IEE Std 1076.3

10 Vznik doporuèení IEE Std 1076.4

11. Jak se uèit VHDL

12 První pøíklad popisu pomocí VHDL

13 Entity a architektury

14 Deklarace entity

15 Deklarace architektury

16 Datové typy

17. Návrhové jednotky

18 Entita

19 Architektura

20 Package a package body

21 Konfigurace

22. Úrovnì abstrakce - styly

23. Vzorový obvod

24. Signály a promìnné

25. Popis struktury

26. Simulace, verifikace a testování

27. Závìr

1. VHDL (Very High Speed Integrated Circuits Hardware Description Language)

VHDL je programovací jazyk, který byl navržen a optimalizován pro popis èíslicových obvodù a systémù. Jazyk kombinuje rysy jazyka pro modelování a simulaci, jazyka návrhového, jazyka pro testování a jazyka pro popis topologie (netlist). VHDL zahrnuje mnoho rysù vhodných pro popis chování elektronických souèástí od logických hradel po mikroprocesory a zákaznické obvody. Do této podoby byl jazyk dotvoøen pøi nìkolika inovacích.

Jazyk VHDL obsahuje velmi úèinné nástroje podporující simulaci modelovaných obvodù a dìjù. VHDL je užiteèný rovnìž pøi hledání chyb, kterých se návrháø mohl dopustit bìhem návrhu. Tomuto kroku se øíká verifikace návrhu. Pøi vytváøení složitìjších systémù je dùležité, aby navržené obvody mohly být nejenom verifikovány, ale i testovány. Návrh testu a jeho realizace je pøedmìtem dalšího pokraèování èlánkù o VHDL. V tomto textu proto bude pouze zmínka o tom, jaké zpùsoby testování jsou obvykle voleny.

Pro každou úroveò návrhu musí být používán jiný styl zápisu ve VHDL. Tyto formální zvyklosti je dùležité si osvojit. Prvním krokem návrhu je urèení úrovnì popisu. Pøi návrhu obvodù a systémù pro aritmetické a logické operace na datech není nutné øešit otázky technického provedení (implementace) obvodu. Cílem poèáteèní fáze návrhu je vytvoøit simulaèní model, který mùže sloužit jako formální specifikace návrhu.

Základními dvìma styly popisu modelu jsou model chování a model propojení (model struktury). Spoleènou èástí tìchto dvou popisù téhož modelu je tzv. entita. Je to totéž, co bývá oznaèováno „èerná skøíòka“: totiž blok, který má popsány vstupy a výstupy a vztah mezi vstupy, vnitøními promìnnými a výstupy.

1.1 Vlastnosti VHDL pro podporu návrhu

Vlastnosti VHDL umožòují také popis nìkterých elektrických vlastností obvodù (napø. èasový interval vzestupné nebo sestupné hrany, zpoždìní hradel, funkèní operace). Výsledné simulaèní modely mohou být využity dále jako stavební bloky pøi simulaci rozsáhlejších obvodù. Podobnì jako jiné vyšší programovací jazyky umožòuje i VHDL na nejobecnìjší úrovni popsat chování složitých elektronických obvodù. Proto se VHDL stal základní èástí návrhových systémù, které umožòují automatickou syntézu a simulaci takto vytvoøeného obvodu. Proto je popis pomocí VHDL chápán a používán jako tzv. vstupní návrh (design entry) obvodù nástroji CAD (Computer-Aided Design). Vstupní návrh za použití VHDL se velmi podobá návrhu programù (programového vybavení) pøi použití vyššího programovacího jazyka.

Jazyk VHDL zahrnuje, podobnì jako Pascal, C nebo napøíklad C++, prostøedky pro popis vlastností navrhovaného objektu, což umožòuje strukturovaný návrh a nabízí bohatý výbìr pro øízení a reprezentaci dat. Navíc VHDL umožòuje popis soubìžných událostí (concurrent events). To je velice dùležité, protože popis technických prostøedkù (hardware) pomocí VHDL je v podstatì paralelní ve více operacích. Obvodová struktura pracuje soubìžnì ve více vìtvích, nechová se sekvenènì. Tyto paralelní rysy budou známé pøedevším uživatelùm PLD, kteøí jsou seznámeni s používáním programovacích jazykù PALASM, ABEL nebo napøíklad CUPL.

1.2 Vlastnosti VHDL pro podporu testování

Vlastnost, ve které se návrh technických prostøedkù (hardware) liší od návrhu programových prostøedkù (software), je testování. Jedním z nejdùležitìjších aspektù popisu pomocí VHDL je možnost vytváøet virtuální testovací obvody (test bench). Jsou to popisy obvodù, které umožòují zadávat testovací vektory (stimuly), vyhodnocovat odpovídající výstupní odezvy a ovìøovat chování testovaného obvodu v èase. Tyto speciální èásti popisu by vždy mìly být nedílnou souèástí každého návrhu, který je øešen jako VHDL projekt, protože je nejpøirozenìjší vytváøet test soubìžnì s popisem obvodu nebo systému.

Pro popis testovacích vektorù jsou v jazyce VHDL používány prostøedky, které vycházejí z deterministických postupù návrhu. Pøi tom jsou používány algoritmy generování testovacích vektorù. Nejznámìjší z nich je tzv. D-algoritmus. V D-algoritmu je pro popis chování obvodu použito pìti hodnot logického signálu místo pùvodních dvou. Ve VHDL je ve zdokonalené podobì použito devíti hodnot testovaného signálu (tzv. 9-V algoritmus). Popis hodnot signálu je obsažen v knihovních prvcích standard u_logic. Z testovacích vektorù je pozdìji vytváøen testovací program pro vnìjší testovací zaøízení, pøípadnì pro autonomní testování (self testing), pøi nìmž je provádìní testu provádìno obvody vestavìnými do navrhovaného obvodu.

1.3 Vlastnosti VHDL pro podporu implementace

VHDL však není jen mocný jazyk umožòující zadávat nové návrhy na vysoké úrovni abstrakce. Mezi jeho vlastnosti patøí také snadné využívání konstruktù - prvkù již døíve navržených, u kterých byla jejich správnost èinnosti modelu ovìøena implementací. Výrobci uvádìjí popis konstruktù standardnì používaných prvkù. Tato vlastnost jazyka bývá oznaèována jako schopnost pracovat s komponentami. Návrh je pak øazen hierarchicky. V programu, který pøedstavuje model navrhovaného obvodu, je komponenta deklarována a odkazem na simulaci tohoto modelu na hierarchicky nižší úrovni je provádìna jako procedura nebo jako funkce.

Dále se VHDL vyznaèuje prostøedky pro komunikaci mezi rùznými nástroji v øetìzci prostøedí automatizovaného návrhu CAD. Univerzálním propojením pro spolupráci dílèích modelù (komponent) je jejich entita. Pomocí tohoto rozhraní mohou jednotlivé modely spolupracovat jak na stejné úrovni, tak v hierarchickém uspoøádání. VHDL je možné dále efektivnì použít napøíklad jako náhradu za jazyk pro popis propojení (netlist) jako je tøeba EDIF, který je požadován pøi personifikaci (elektrickém programování) obvodù u vìtšiny výrobcù CPLD (Complex Programmable Logic Devices) nebo FPGA (Field Programmable Gate Array).

2. Nástroj standardizace

To, že se VHDL rozšíøil a stal se oblíbeným mezinárodním standardem elektronických návrháøù, s sebou pøináší v souèasné dobì øadu výhod. Nejvìtší výhodou je jeho široká podpora øadou návrhových systémù, kompatibilita a pøenositelnost umožòující spolupráci a využití výsledkù jiných návrháøù.

Pøi návrhu èíslicových elektronických obvodù se bìžnì využívá procesorového jádra standardnì vyrábìného mikropoèítaèe jako èásti zákaznických obvodù ASICs (Application Specific Integration Circuits). To usnadòuje použití odladìných uživatelských programù a zrychluje vývoj aplikací.

2.1 Dùvody vzniku VHDL

Oznaèení jazyka VHDL vznikl jako zkratka názvu, který již sám obsahoval zkratku: VHSIC Hardware Description Language. Zkratka VHSIC (Very High Speed Integrated Circuit) oznaèuje, že VHDL vzniklo v rámci výzkumného projektu ministerstva obrany USA (DoD) zaèátkem osmdesátých let. Bìhem práce na projektu VHSIC øešili výzkumníci na problém popisu velmi složitých obvodù. Popis obvodù se stovkami tisíc hradel byl neefektivní a nepoužitelný. Zadali proto inženýrùm nìkolika firem vývoj nového jazyka.

2.2 Doporuèení IEEE Std 1076

Firmy IBM, Texas Instruments a Intermetrics tak na zakázku DoD vyvinuly jazyk, jehož první publikovaná verze 7.2 byla publikována v r. 1985. Tento jazyk pak IEEE (Institute of Electrical and Electronic Engineers, Inc.) standardizoval po urèitých úpravách jako doporuèení IEEE 1076-1987.

Doporuèení IEEE 1076-1987 je základem pro všechny simulaèní a syntetizaèní nástroje dodnes. Pùsobila však již na zaèátku devadesátých let jako pøíliš popisný prostøedek, který byl vhodný zejména pro tvorbu dokumentace. Rozšíøená a upravená verze respektující požadavky praktických postupù pøi návrhu obvodù IEEE 1076-1993 byla poprvé uvedena v r. 1989. Výrobci VHDL nástrojù zareagovali zahrnutím nových rysù do svých produktù.

2.3 Doporuèení IEEE Std 1164

Pøestože standard 1076 definuje celý VHDL jazyk, jsou zde aspekty, které neumožòují kompletní pøenositelnost návrhù mezi rùznými návrhovými systémy. Problém je v tom, že VHDL umožòuje mnoho abstraktních datových typù, ale neøeší jednoduchý problém spojování signálù rùzných výkonných úrovní a takové simulaèní stavy, jako je neznámý signál nebo vysoká impedance.

Brzy po pøijetí IEEE 1076-1987 zaèaly proto spoleènosti zabývající se simulací obohacovat a rozšiøovat VHDL o nové signálové typy, aby umožnily zákazníkùm pøesnìji simulovat složité elektronické obvody.

Aby se zabránilo chaosu v této oblastí, byl vytvoøen nový standard IEEE 1164, jenž definuje „package“ obsahující definice typu signálù pro standardní 9-úrovòovou logiku. Souhrnnì se tento standardizovaný datový typ se nazývá std_ulogic a èasti entity package se oznaèuje zkratkou MVL9 (multi-valued logic, nine values). Nástroje pro návrh pomocí VHDL, které splòují standardy IEEE 1076-1987 a IEEE 1164 jsou dnes ve svìtì nejrozšíøenìjší.

2.4 Doporuèení IEE Std 1076.3 (Numeric Standard).

Doporuèení èasto oznaèované pøívlastky „Numeric“ nebo také „Synthesis“ definuje standardní množinu prostøedkù popisu, v nichž jednotlivé datové typy odpovídají aktuálním technickým prostøedkùm implementace. Toto doporuèení odstranilo rozpory (nekompatibilitu) mezi jednotlivými výrobci nástrojù pro syntézu obvodù a mimo jiné zahrnuje:

• dokumentovanou technickou interpretaci hodnot typù „bit“, „boolean“ a „std_ulogic“

• funkce, které umožòují testování s pomocí hodnot „don’t care“ nebo „wild card“ založené na std_ulogic a umožòuje tak zadávat pro syntézu hodnoty, na kterých „nezáleží“

• definici pro standardní signed a unsigned aritmetické datové typy spolu s operacemi pro nì.

2.5 Vznik doporuèení IEE Std 1076.4 (VITAL).

Knihovna VITAL (VHDL Initiative Toward ASIC Libraries) pøidává další možnosti. Umožòuje ve VHDL zadávat specifikace pro èasování v tabulární formì a pøináší tak výrobcùm ASIC možnost efektivnì a pøehlednì zadávat a generovat modely èasování.

3. Jak se uèit VHDL

Pro kompletní VHDL je velice pøíhodné obstarat si „IEEE VHDL Language Reference Manual“ dostupný od IEEE, který je však málo ètivý. Vhodná je také další literatura, obsahující øadu pøíkladù a ukázek, nejvhodnìjší bývá firemní literatura k vývojovému nástroji, který je k dispozici. Pro práci s VHDL je dùležité pochopit pøedevším koncept soubìžnosti (concurrency) vyrovnávající se tak s paralelností datových struktur a koncepci hierarchie.

3.1 První pøíklad popisu pomocí VHDL

Pro pøedstavu o tom, jak vypadá minimální zdrojový soubor v jazyce VHDL podívejme se na jednoduchý kombinaèní obvod: osmibitový komparátor. Komparátor porovnává dva osmibitové vstupy. Jeho výstupem je buï hodnota (1( indikující rovnost nebo (0( nerovnost.

entity compare is

port( A,B: in bit_vector(0 to 7);

EQ: out bit);

end compare;

architecture compare1 of compare is

begin

EQ ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download