Podobné dokumenty







APLIKACE MIKROKONTROLÉRŮ PIC32MX

David Matoušek ÈÍSLICOVÁ TECHNIKA základy konstruktérské praxe Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována ne



PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_


Komerèní využití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD ROM mající pøímo vztah ke knize, které


Jan Humlhans NÁBOJOVÉ PUMPY funkce, pøehled a použití Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmno


ALGORITMY ČÍSLICOVÉHO ZPRACOVÁNÍ SIGNÁLŮ



OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů Standardně zavedené proudy


Monografie poskytuje v pøehledné a praktické formì znalosti a výpoèetní nástroje pro modelování šíøení rádiových vln v zástavbì, tedy vnì i uvnitø bud


MIKROPROCESOROVÁ TECHNIKA 9 Událostní systém 9.1 Události Síť ERN Časování událostí Filtrace

4 DIELEKTRICKÉ OBVODY ZÁKLADNÍ POJMY DIELEKTRICKÝCH OBVODŮ Základní veličiny a zákony Sériový a paralelní



Podìkování: Výsledkù publikovaných v této knize bylo dosaženo také za podpory projektù GAÈR 101/06/P108 Výzkum simulaèního a experimentálního modelová









Autor by chtìl podìkovat všem svým spolupracovníkùm a kolegùm, kteøí mu pomohli s pøípravou textu. K vydání knihy pøispìla firma Newport Electronics s




Kniha je urèena všem zájemcùm o teorii elektrických obvodù Poslouží jako pøíruèka pro praxi, ale i jako uèebnice pro studenty støedních a vysokých ško

ELEKTRONICKÉ PRVKY 7 Výkonové a spínací aplikace tranzistorů 7.1 Ztrátový výkon a chlazení součástky První a druhý průraz bipolárního

Roman Neruda a Tomáš Holan C++ BUILDER V PØÍKLADECH Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožo



Tato kniha popisuje výchozí stanoviska psychotroniky jako potenciální vìdní disciplíny Tvoøí ucelenou pracovní hypotézu pro realizaci základního výzku


Základy ultrazvuku A. ZÁKLADY ULTRAZVUKU 10





APLIKACE ALGORITMŮ ČÍSLICOVÉHO ZPRACOVÁNÍ SIGNÁLŮ 1. DÍL


Jan Hájek ELEKTRONICKÉ HLEDAÈE Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožována jakoukoli formou

MIKROKONTROLÉRY PIC PRO POKROČILÉ





Gergelitsová, Holan: Zlatý řez pravítkem a kružítkem





Karel Zaplatílek a Bohuslav Doòar MATLAB zaèínáme se signály Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo

Publikace prezentuje nìkteré poznatky z obsáhlé oblasti analogových soustav, které v poslední dobì prodìlávají rozvoj. Z toho dùvodu ani nemùže podat

MIKROKONTROLÉRY PIC BEZ PŘEDCHOZÍCH ZNALOSTÍ









Translation from the English language edition: Passing the marker Understanding the New Millennium Energy Copyright 2000 Lee Carroll All Rights Reserv






Knihy obsahují základní vlastnosti a souhrnné pøehledy obvodù TTL V hlavní èásti jsou obvody seøazeny vzestupnì, podle èíselného oznaèení. U kaž

Urèeno uživatelùm CB pásma, kteøí si chtìjí rozšíøit okruh vìdomostí, rádiovým posluchaèùm a všem, kteøí se pøipravují ke zkouškám pro povolení provoz



VŠB TECHNICKÁ UNIVERZITA V OSTRAVÌ Recenzenti Prof. Ing. Dušan Levický, CSc. Prof. Ing. Vladimír Šebesta, CSc. Kniha shrnuje nìkteré výsledky øešení p

3/ %,1'(& 83'1 &( &3 )XQNFH. + ; ; ; ; / ; ; + ; EH]H]PuQ\


Jiøí Peèek, OK2QX. Radioamatérský provoz a pøedpisy

OBSAH PØEDMLUVA... 11

Translation from the English language edition: The end times (New information for personal peace) Copyright Platinum Publishing House 2010 All Rights




INSTRUKCE PRO BEZPROBLÉMOVÝ PRÙBÌH TESTOVÁNÍ 14. AŽ 21./29. KVÌTNA 2015 ÈJ MA OSP


Role poèítaèe se v praxi elektronika stává pøi návrhu elektronických obvodù nezastupitelnou. Program MultiSIM je jedním z mocných nástrojù nejen pro d

Izolaèní zesilovaèe s IL300 Zapojení izolaèních zesilovaèù s IL300 se liší pøedevším režimem v nichž pracují interní fotodiody Podle toho zda interní

Transkript:

Jiøí Král ØEŠENÉ PØÍKLADY VE VHDL HRADLOVÁ POLE FPGA PRO ZAÈÁTEÈNÍKY Praha 2010

Upozornìní! Vážení ètenáøi, na naší webové adrese: http://shop.ben.cz/cz/121309 v sekci download, se nachází soubory ke stažení: : ke stažení vývojové prostøedí ISE WebPack 10.1 (pozor soubor WebPack.zip 14 MB) : ke stažení soubory (.brd,.sch) k Pøíloze 2 (Priloha2.zip) : barevné obrázky z Pøílohy 1 (121309obr.zip) Ing. Jiøí Král Øešené pøíklady ve VHDL Hradlová pole FPGA pro zaèáteèníky Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožována jakoukoli formou (tisk, fotokopie, mikrofilm nebo jiný postup), zadána do informaèního systému nebo pøenášena v jiné formì èi jinými prostøedky. Autor a nakladatelství nepøejímají záruku za správnost tištìných materiálù. Pøedkládané informace jsou zveøejnìny bez ohledu na pøípadné patenty tøetích osob. Nároky na odškodnìní na základì zmìn, chyb nebo vynechání jsou zásadnì vylouèeny. Všechny registrované nebo jiné obchodní známky použité v této knize jsou majetkem jejich vlastníkù. Uvedením nejsou zpochybnìna z toho vyplývající vlastnická práva. Veškerá práva vyhrazena Ing. Jiøí Král, Praha 2010 Nakladatelství BEN technická literatura, Vìšínova 5, Praha 10 Jiøí Král: Øešené pøíklady ve VHDL Hradlová pole FPGA pro zaèáteèníky BEN technická literatura, Praha 2010 1. vydání ISBN 978-80-7300-257-2

Obsah ÚVOD... 4 ZAÈÍNÁME PROGRAMOVAT... 6 1. program Hello world... 7 2. program sèítaèka... 17 3. program blikající ledka... 21 4. program bìžící svìtlo... 26 5. program morseovka... 31 6. program sedmisegmentový displej... 37 7. program sedmisegmentový displej jinak... 43 8. program sèítaèka s displejem... 46 9. program stopky... 51 10. program hodiny... 60 11. program budík... 67 12. program zvuk... 78 13. program PWM... 81 14. program PWM jinak... 86 15. program efekt... 89 16. program øízení otáèek motoru... 94 17. program øízení otáèek motoru s reverzací... 99 18. program obousmìrný port typu otevøený kolektor... 104 19. program pamìti... 109 20. program Digital Clock Manager... 117 21. program asynchronní led... 120 ZÁVÌR... 122 LITERATURA A JINÉ ZDROJE... 122 PØÍLOHA... 123 A Obsah a úvod 3

Úvod Hradlová pole vždy patøila do sféry profesionálù a ti, pro které je elektronika koníèkem, se jim, bohužel, vyhýbali. Dùvody byly a i nadále zùstávají rùzné. U první generace hradlových polí to jistì bylo i proto, že nabízené funkce nebyly pøíliš pokroèilé, a když už bylo potøeba, dal se daný problém øešit pomocí klasických integrovaných obvodù. Pozdìji již byly nabízeny i hodnì složité možnosti, ale hradlová pole se tím vzdálila tomu, co musí koníèek poskytovat. Hru a zábavu. Proto se øada amatérských elektronikù vìnuje hrátkám s jednoèipovými mikropoèítaèi, ale hradlová pole jsou pro nì bílým místem. To je jistì škoda, protože souèasná hradlová pole 3. generace, hovoøí se o nich jako o FPGA, již jsou schopny poskytnout i tu potøebnou zábavu. A také tvùrèí seberealizaci, která mùže snadno pøejít do profesionální podoby. Protože spektrum aplikací hradlových polí má trvale vzestupnou tendenci, jistì není nikdy pozdì se zaèít jejich programování vìnovat. Tato knížka vám formou øešených pøíkladù ukáže, jak zaèít. Pokud vás tato problematika zaujme, mùže vás nasmìrovat i z hlediska profesní orientace. Jak zaèít V úvodu je tøeba si položit otázku, co všechno budete potøebovat. Tato otázka je velmi komplexní a patøí k ní i potøeba vstupních znalostí. Dùležitá je i volba techniky, se kterou budete pracovat. Pøesto, že v principu je možné uèit se programování s prakticky libovolným hradlovým polem, je volba rozhodující pro množství komplikací, se kterými se pozdìji setkáte. Obr. 1 Co potøebujete? Je tedy tøeba vyjasnit si, s jakým hradlovým polem budete pracovat, jak je dostupný potøebný hardware a software a v neposlední øadì je to i dostupnost získání rady v okamžiku, kdy nebudete vìdìt jak dál. Je tøeba si uvìdomit, že úvaha, která vede k výslednému rozhodnutí, je velmi subjektivní. Vstupní znalosti Hradlová pole patøí mezi digitální obvody. Proto je vhodné, ale nikoliv nutné, mít alespoò základní znalosti èíslicové techniky. Ty lze, samozøejmì kromì školy, získat studiem odborné literatury, napø. [1] nebo [2]. V dobì internetu však existuje nepøeberná øada zdrojù, kde je možné si doplnit potøebné vìdomosti. V krajním pøípadì staèí zadat neznámý pojem do vyhledávaèe a najít vhodný odkaz. Praktické zkušenosti ukazují, že je opravdu možné postupovat od programování ve VHDL k rozvoji znalostí èíslicové techniky. Hardware Tuto kapitolu je nutné zaèít u vlastních hradlových polí a jejich výrobcù. Není pøíliš tìch, kteøí tyto souèástky zvládají. Mezi ty hlavní patøí firmy Xilinx, Altera, Lattice a Actel. Poøadí je uvedeno podle velikosti produkce. Existují však ještì i další, minoritní výrobci. Za zmínku stojí firmy Silicon Blue, Achronix a Abound Logic. 4 Jiøí Král: ØEŠENÉ PØÍKLADY VE VHDL Hradlová pole FPGA A

Samozøejmì výrobci mají ve své nabídce øadu typù, z nichž si konstruktéøi mohou vybírat. Není však pøedmìtem této knihy probírat jednotlivé nabízené øady a typy. Podrobnosti je možné nalézt na webových stránkách výrobcù [3] až [9]. Vlastní hradlové pole tedy budeme dále považovat za danou vìc. K jednotlivým typùm existují nìkolikaset stránkové dokumentace a kromì rozsahu je možnou komplikací, že jsou v angliètinì. Obecné principy je možné nastudovat v dostupné literatuøe, napø. [10]. Samotné hradlové pole však nestaèí. Až na výjimky musí být doplnìno o konfiguraèní pamì. V každém pøípadì potøebujeme zdroj hodinových impulzù a nìjaké periferie nebo alespoò konektory, které by umožnily je pøipojit. Také je nutné nezapomenout na programátor, který nám zajistí zavedení programu do hradlového pole, pøípadnì do konfiguraèní pamìti. Pokud k tomu zohledníme ještì otázku pouzder, kdy v naprosté vìtšinì pøípadù nelze uvažovat o vlastnoruèním zapájení, je rozumné poøídit si ke zkoušení nìco z výroby profesionálù. Ti vyrábí tzv. kity. Jedná se o desku plošného spoje, která je osazena hradlovým polem a vším, co je k vlastní funkci nezbytné. Kromì toho je kit vybaven rùznými periferiemi. Ovšem problém je, co vybrat, protože nabídka je velmi široká. Pro zaèáteèníka, který v tuto chvíli v hradlových polích objevil svého koníèka, bude zøejmì rozhodujícím kriteriem podpora výrobce, dostupnost, cena a podpora komunity. Urèitì bude dobré vybírat z nabídky velkého výrobce, kde je pøedpoklad, že vyberete nìco, co je rozšíøené a tudíž všeobecnì známé. Nejvìtším výrobcem hradlových polí FPGA je jednoznaènì firma Xilinx. Podporu ze strany tohoto výrobce je možné ohodnotit jako velmi dobrou. Kity s hradlovými poli firmy Xilinx nabízí øada výrobcù. Zajímavé jsou napø. ty, které vyrábí firma Digilent [11]. Dostupné jsou buï pøímo u výrobce, nebo u dodavatelù. Podle typu hradlového pole a složitosti kitu je i rùzná cena. Pro první seznámení s hradlovými poli zøejmì výbìr padne na nìkterý z tzv. low cost typù. Z produkce firmy Xilinx to bude nìkterý z øady Spartan3 nebo Spartan3E. Zde je však tøeba upozornit na rychlost dalšího vývoje a tak je dnes možné uvažovat i o typu Spartan6, který výrobce rovnìž øadí mezi low cost. V nejnovìjší nabídce je kit Spartan-6 FPGA SP601 Evaluation Kit. V této chvíli však jsou tøi dùvody, proè není možné pøedpokládat okamžité použití. Nejsou praktické zkušenosti, vybavení kitu je velmi omezené a v neposlední øadì je to cena. Podporu komunity je možné hledat na rùzných diskusních fórech. Jedno je pøímo na stránkách firmy [12]. Další je napø. [13]. Pokud má být pøedchozí shrnutí konkretizováno, lze z nabídky vybrat tøi typy kitù, které jsou uvedeny v pøíloze. Vývojové prostøedí Programování hradlových polí je kvalitativnì nìco úplnì jiného, než známe z postupù ve vyšších programovacích jazycích. Je tøeba vykonat øadu postupných krokù od zadání až po naprogramování obvodu. Proto každý výrobce poskytuje software, který nám toto všechno umožòuje. Souhrnnì pak tento sw nazýváme vývojové prostøedí. Vývojové prostøedí je tedy nástroj programátora. Je zvykem poskytovat základní funkce zdarma, by pouze po pøedchozí registraci a s rùznì omezenou dobou platnosti licence. Je tøeba zdùraznit nepøenositelnost vývojových prostøedí mezi jednotlivými výrobci. Vzhledem k naznaèené orientaci na hradlová pole firmy Xilinx je tedy logické využití vývojového prostøedí od téže firmy. To je nabízeno pod názvem ISE Web Pack. Samozøejmì i tento software podléhá velké dynamice vývoje. I když jsou jednotlivé verze velmi podobné, pøesto jsou nìkteré zmìny velmi zásadní. Navíc rozsah funkcí vývojového prostøedí neumožòuje jednoduchý návod na jeho použití. Proto bývá zvykem nabídnout vhodný tutoriál. Pro zaèáteèníky se pak nutnì jedná o velmi rozsáhlý materiál, kterým by velmi narostl rozsah této knížky. Aby k tomu nedošlo a zároveò byla zachována aktuálnost této knihy, je zpracovaný tutoriál v elektronické podobì k dispozici na stránkách nakladatelství. A Obsah a úvod 5

Programovací jazyky Zvládnutí dnešních hradlových polí pøedpokládá zvládnutí vhodného programovacího jazyka. Ty hlavní v souèasné dobì existují dva, VHDL a Verilog. Oba jsou rovnocenné, co se poskytovaných funkcí týká, i když se samozøejmì navzájem liší. Pro rozhodnutí, kterému jazyku se vìnovat, je možné v podstatì jen kritérium rozšíøení toho kterého jazyka. Jazyk Verilog dominuje v Asii a v USA. V Evropì (a tedy i u nás) je pøevaha jazyka VHDL. Je tøeba zmínit, že existují snahy pøenést programování na úroveò programovacích jazykù C nebo C++. Jazyk VHDL Jazyk VHDL byl pùvodnì vyvinut pøedevším pro modelování a simulaci rozsáhlých èíslicových systémù na základì zadání ministerstva obrany USA. Tento vývoj zaèal v roce 1981 a první vydání se objevilo v roce 1987 ve formì standardu IEEE Std 1076 1987. Dnes nejpoužívanìjší verze je z roku 1993 a to pøesto, že je následovaly v letech 1999, 2000 a 2002 ještì další tøi verze. V této dobì je oèekáván nový standard. Ten však jistì nebude mít vliv na aktuálnost toho, co si v této knize ukážeme. Bližší podrobnosti o historii a vývoji jazyka VHDL je možné si pøeèíst v rùzné literatuøe, napø. [10]. Pro nás je podstatné, že nám jazyk VHDL umožní popsat øešení, které je tzv. syntetizovatelné. Tedy takové, které budeme schopni pøevést do podoby konfiguraèního souboru. Tento soubor nám pak po zavedení do hradlového pole zajistí fyzickou funkci respektující zadání. Základní vlastnosti jazyka VHDL jsou následující: Otevøený standard. Návrh mùže být zahájen bez znalosti cílového obvodu. Pøenositelnost kódu. Umožnuje pøímou simulaci. Umožòuje implementaci do vybraného obvodu. K zadání, které má program realizovat, pøistupuje jazyk VHDL jako k èerné skøíòce. Tu pak popisuje zvnìjšku a zevnitø. Zvnìjšku je to propojení pomocí tzv. vstupních a výstupních portù. Uvnitø pak je to popis chování, které zajiš uje požadovanou funkcionalitu. Pokud se podíváme na možnosti jazyka VHDL, musíme konstatovat, že jsou velmi rozsáhlé. Protože však tato knížka je urèena pro zaèáteèníky, je tøeba souèasnì zdùraznit, že není nutné znát všechno. Už z mála lze vytvoøit zajímavé programy. Zaèínáme programovat Je známou zkušeností, že programování se nedá nauèit teoreticky. Proto dále budeme postupovat øešením pøíkladù. Tento postup bude samozøejmì od nejjednoduššího ke složitìjším. Náš postup bude využívat jen to, co je bezpodmíneènì nutné. Jedná se o následující kroky. Založení projektu. Vytvoøení zdrojových souborù. Kontrola syntaxe, tedy jestli vývojové prostøení rozumí tomu, co jsme napsali. Simulace. Ta nám slouží k odhalení, zda vývojové prostøedí nerozumí našemu programu jinak, než jsme to mysleli. Vytvoøení ucf souboru, který nám popisuje fyzické propojení našeho obvodu na vývody z pouzdra. Vygenerování konfiguraèního souboru bit (pro hradlové pole) nebo mcs (pro konfiguraèní pamì ). Tutoriál ukazuje mnohem více možností vývojového prostøení, ale to pøesahuje zámìr této knihy. 6 Jiøí Král: ØEŠENÉ PØÍKLADY VE VHDL Hradlová pole FPGA A