. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
CPLD a FPGA 3.díl – První aplikace
1. července 2011 - 7:41 | Pandatron | CPLD a FPGA 3.díl – První aplikace | Komentářů: 17  

CPLD a FPGA 3.díl – První aplikace

Tématem třetího dílu seriálu o programovatelných hradlových polích, určeného pro úplné začátečníky, je první aplikace pro obvody CPLD a její popis krok za krokem.

25.7 – Doplněno video, demonstrující krok za krokem návrh a konfiguraci první aplikace.

V předchozích dílech úvodu do programovatelných hradlových polí jsme si představili dostupné prvky a schopnosti obvodů konfigurovatelných hradlových polí CPLD a FPGA, stejně jako malou vývojovou desku s obvodem CPLD XC9572 od společnosti Xilinx. Nyní si krok za krokem ukážeme návrh a konfiguraci první jednoduché aplikace, která nám rozbliká diody LED a využije i tlačítko na desce.

Co budeme potřebovat
Pro první kroky s programovatelnými hradlovými poli budeme potřebovat tři základní věci: vývojové prostředí, programátor a samozřejmě programovanou součástku.

1) Programovaná součástka
Jak jsme řekli již v minulém díle, první aplikace začneme s obvody CPLD, neboť jsou jednodušší. Rovněž jsme si řekli, že se zaměříme na obvody z produkce společnosti Xilinx, které jsou u nás snadno dostupné a jsou levné. V úvahu nám tedy připadají obvody ze základní řady XC95, konkrétně v našem případě budeme použít obvod XC9572 což je již řadu let, dalo by se říci, takový základní představitelem obvodů CPLD. Jak již z názvu vyplývá, obvod obsahují celkem 72 makrobuňek a XL na konci názvu nám může prozradit, že se jedná o obvody s napájením 3,3V, ale s 5 V tolerantními vstupy. To znamená, že obvody pro svou činnost vyžadují pouze jediné, 3,3 V napájení, což je i napětí, které poskytují na svých pinech, ale v případě vstupních pinů snesou i přímé připojení 5 V (například mikrokontroléru). Obvody XC9572XL jsou rovněž schopny provozu při pracovní frekvence až 178 MHz a 5 ns zpoždění průchodu signálu od jednoho pinu k druhému.


Obr. 1: Schéma vývojové desky PXC72

Abychom si práci usnadnili a mohli i v dalších částech seriálu používat vždy jednotný návrh, budeme nadále vycházet výhradně z vývojové desky PXC72, která byla představena v minulém díle. Samozřejmě vám nic nebrání v použití jiné desky s odlišným rozložením pinů.


Obr. 2: Rozložení a význam pinů obvodu XC9572 na desce PXC72, které jsou pro nás nyní důležité

2) Programátor
Zde je v případě desky PXC72 situace velice zjednodušena. Deska obsahuje programovací konektor, který je přímo kompatibilní s nejrozšířenějším programátorem u nás – PRESTEM od firmy ASIX s.r.o. Při práci ho tedy budeme používat a ukážeme si vygenerování podporovaného programovacího souboru.

Kdo má chuť na výrobu vlastního programátoru, je na internetu dostupná celá řada jednoduchých a alternativních konstrukcí, nejčastěji využívajících buď paralelního portu, nebo portu USB a obvodů z produkce společnosti FTDI. Tím úplně nejjednodušším programátorem, který je však přímo podporován vývojovým prostředím společnosti Xilinx, může být i pár omezovacích rezistorů na paralelním portu. Několik takových odkazů na programátory vlastní konstrukce je uvedeno pod článkem.


Obr. 3: Univerzální programátor PRESTO od firmy ASIX

3) Vývojové prostředí
Vývojové prostředí je dostupné přímo od výrobce obvodů, tedy na webových stránkách společnosti Xilinx. V současné době je dostupná verze ISE Design Suite 13 a její volně dostupná varianta ISE WebPACK. Ta pro naši potřebu poskytuje dostatečné množství funkcí a po jednoduché registraci (na funkční emailovou adresu) lze zdarma stáhnout z webových stránek ISE Design Suite jak pro operační systém Windows, tak i Linux. Pouze upozorňuji, že se jedná o poměrně náročné prostředí, podporující všechny dostupné obvody, čemuž také odpovídá jeho velikost – 4 GB. Pokud máte se stažením vývojového prostředí problém, využijte náš Kontaktní formulář pro objednání DVD.


Obr. 4: Komplexní vývojové prostředí ISE Design Suite 13

Instalace
Vývojové prostředí ISE Design Suite 13 nevyžaduje při instalaci žádné zvláštní nastavení a v případě OS Windows ho doporučuji instalovat do kořenového adresáře, například C:\Xilinx\ISE_DS. To je z důvodu jeho pozdějšího snazšího update. Prostředí zabere na disku po instalaci téměř 10 GB prostoru.

Po prvním spuštění aplikace Project Navigator z ISE Design Suite budete vyzváni k dokončení registrace a zadání licenčního klíče, který vám zdarma přijde na mail, uvedený při registraci. Jinak zde není potřeba nic nastavovat a je možné začít ihned pracovat.

V případě programátoru PRESTO je po instalaci jeho ovladačů, případě základního ovládacího software UP nutné ještě stáhnout a nainstalovat aplikaci JTAG Player for PRESTO. Ta je dostupná rovněž zdarma na webových stránkách výrobce programátoru, firmy ASIX. Jejím úkolem je podpora prakticky všech programovatelných obvodů s rozhraním JTAG, mezi které patří právě i obvody CPLD a FPGA.


Obr. 5: Aplikace JTAG Player for PRESTO od firmy ASIX

Tím je instalace všech potřebných aplikací dokončena a můžeme se pustit do návrhu.

Vytvoření nového projektu
Po spuštění aplikace Project Navigator z vývojového prostředí ISE Design Suite se nám otevře pouze prázdná plocha s nabídkou na založení nového nebo otevření stávajícího projektu. Klikneme tedy na tlačítko New Project, případně přes hlavní nabídku je to File -> New Project. Zadáme název projektu, například „LED“, vybereme adresář pro jeho uložení, v nabídce dole zvolíme „Schematic“ a nakonec stiskneme tlačítko „Next“.


Obr. 6: Zadání názvu a typu nového projektu

Ve druhém kroku zvolíme rodinu obvodů „XC9500XL CPLDs“ a obvod XC9572XL v provedení VQ44 s rychlostí -10. Uvedené hodnoty samozřejmě platí pouze pro zmíněný modul PXC72 a v jiných případech se mohou lišit. Zbylé hodnoty necháme nastaveny na původní, viz. následující obrázek a klikneme na tlačítko „Next“.


Obr. 7: Výběr CPLD obvodu z řady XC9500XL a jeho vlastností

Ve třetím kroku se nám pouze vypíší souhrnné informace. Zde se již nic nenastavuje a kliknutím na tlačítko „Finish“ dojde k založení nového projektu. Nyní by aplikace měla vypadat podobně, jako na následujícím obrázku.


Obr. 8: Úspěšné založení nového projektu

Tím však práce nekončí. K novému projektu je ještě nutné přidat prázdné schéma, cože se provede volbou v menu Project -> New Source. Zde z nabídky vybereme možnost „Schematic“, zadáme název schéma a adresář, pro jeho uložení. Nakonec stiskneme tlačítko „Next“.


Obr. 9: Přidání prázdného schéma k novému projektu

Druhý krok se souhrnnými informacemi pouze potvrdíme stiskem tlačítka „Finish“. Nyní by se aplikace měla doplnit o prázdné schéma, jako na následujícím obrázku.


Obr. 10: Nový projekt s prázdným schematickým editorem

Tím máme vytvořen nový projekt a můžeme začít navrhovat.

První aplikace – návrh schéma
Integrovaný schematický editor nepatří sice ani zdaleka mezi nejpropracovanější, ale podporuje vše, co v tuto chvíli potřebujeme. Práce s editorem se řídí tlačítky s ikonkami, které se nacházejí vlevo od pracovní plochy (plátna). Celkem 23 tlačítek umožňuje nejen navrhovat a modifikovat schéma, ale také vytvářet popisky, kreslit základní geometrické tvary a podporuje i základní kontrolní funkci. Ovládání je velice jednoduché i díky tomu, že po najetí myší nad tlačítko se zobrazí rychlá nápověda.


Obr. 11: Příklad rychlé nápovědy u tlačítka Add Symbol

Návrh schéma našeho prvního projektu tedy zahájíme kliknutím právě na uvedené tlačítko „Add Symbol“, které je osmé v pořadí a na ikoně má zobrazeny součástky. Nyní se nám vlevo od pracovní plochy zobrazí nabídka se základními knihovními prvky, které jsou nám k dispozici.


Obr. 12: Nabídka základních knihovních prvků logických členů

Téměř ve všech případech se jedná o základní logické prvky, jako jsou hradla, klopné obvody, registry nebo i jednoduché sčítačky. V našem případě zatím použijeme pouze dva čtyřbitové binární čítače, které jsou svým schematickým provedením přehlednější, než jeden osmibitový. V horní nabídce si tedy zvolíme kategorii „Counter“ a ve spodní nabídce knihovních prvků najdeme prvek s označením „CB4BE“, který dvakrát vložíme do schéma jednoduchým kliknutím. Celé schéma je samozřejmě možné libovolně přiblížit či posunout pomocí nástrojů v horním menu.


Obr. 13: Vložení dvou čtyřbitových binárních čítačů CB4CE

V dalším kroku můžeme provést propojení obvodů do série a spojení vstupu reset se zemí. Ke kreslení spojů je k dispozici tlačítko „Add Wire“ s ikonkou tužky a červené čáry, které je hned třetí v pořadí. Knikneme na tlačítko, myší přejedeme na pin CE prvního čítače, stiskneme levé tlačítko myši a „natáhneme“ spoj v pinu CE druhého čítače. Spoj se k pinům musí přichytit, což snadno poznáme tím, že z konce pinu zmizí prázdný čtvereček. Rovněž propojíme i pin Q3 prvního čítače s pinem C druhého čítače.

Dále opět knikneme na tlačítko „Add Symbol“ a z kategorie „General“ vybereme prvek „gnd“, který na schéma umístíme poblíž pinů CLR (reset) obou obvodů. S piny je pak propojíme opět pomocí funkce „Add Wire“.

V tuto chvíli by jste měli mít nakreslené následující schéma.


Obr. 14: Propojení obvodů a deaktivace pinů reset

Dále před pin CE prvního čítače vložíme z kategorie „Logic“ prvek „inv“, tedy jednoduchý invertor, který svým výstupem propojíme s pinem čítače. To proto, že potřebujeme otočit polaritu tlačítka, které bude k tomuto pinu připojené.


Obr. 15: Doplnění vstupu povolení (CE) o invertor

Tím máme základní schéma hotové a můžeme přistoupit k připojení jednotlivých vývodů k fyzickým pinům CPLD obvodů. Nespornou výhodou konfigurovatelných hradlových polí od mikrokontrolérů, jak již bylo uvedeno v minulém díle, je právě možnost nastavení téměř libovolného signálu k libovolnému pinu. V praxi to znamená, že téměř všechny I/O piny, které má obvod na svém pouzdře vyvedeny, jsou si rovny a je pouze na nás, kam se nám který signál hodí přivést. Ve skutečnosti to není úplně 100% pravda, protože i obvody CPLD mají několik pinů speciálních – GCK, GSR, GTS. Jedná se o piny, které jsou určeny například pro rozvod hodinového signálu či globální řízení výstupních obvodů bufferů. Více informací bylo uvedeno již v minulém díle a význam těchto pinů bude podrobně popsán v příštím díle.

Zároveň je nutné uvést, že jednotlivé signály není možné ze schéma přímo přivést na I/O piny. Vždy se ke každému pinu musí vložit jeden (!) vstupní (IBUF) nebo výstupní (OBUF) buffer, zajišťující spojení fyzického pinu s vnitřní logikou obvodu. Ty jsou dostupné jako klasické knihovní prvky pod tlačítkem „Add Symbol“ v kategorii „IO“. V našem případě použijeme dva prvky IBUF a čtyři OBUF (nebo násobný prvek OBUF4).


Obr. 16: Doplnění schéma na vstupní a výstupní buffery

Nyní můžeme schéma doplnit o vstupní a výstupní piny. K tomu je určené tlačítko „Add I/O Marker“ s ikonou dvou pinů, které je sedmé v pořadí. V zobrazené nabídce vybereme vstupní pin (Add an input marker) a vložíme ho k oběma IBUF v levé části schéma, ke kterým se automaticky přichytí. Poté zvolíme výstupní piny a vložíme je ke všem čtyřem OBUF v pravé části schéma. Zatím se nijak nestaráme o jejich propojení s fyzickými piny obvodu.

Kliknutím pravým tlačítkem myši na vložený pin na schématu můžeme volbou „Rename Port“ jednotlivé piny přejmenovat. To není v tuto chvíli nijak důležité, ale pro přehlednost jsem jednotlivé piny raději hned pojmenoval podle prvků, které k nim budou připojeny. Tedy BUTTON, CLOCK, LED1, LED2, LED3 a LED4.

Tím máme schéma definitivně kompletní a okno aplikace by v tuto chvíli mělo vypadat zhruba takto:


Obr. 17: Kompletní schéma po doplnění o vstupní a výstupní piny a jejich přejmenování

Přiřazení fyzických pinů obvodu
Pro přiřazení signálů vnitřní logiky k fyzickým pinům obvodu je v k dispozici funkce Floorplan IO. Tu nalezneme, pokud se levou nabídkou přesuneme k záložce Design a zde je pod volbou User Constraints.


Obr. 18: Umístění funkce Floorplan IO (klikněte pro zobrazení celého okna)

Po spuštění funkce se zobrazí obrys zvoleného obvodu s vyznačenými piny a jejich funkcí. Vlevo je seznam našich pinů, které stačí jednoduše uchopit myší a přetáhnout je na zvolené prázdné (bílé) piny obvodu s tím, že pin vlevo nahoře je číslo 1. V našem případě půjde CLOCK na pin číslo 1, BUTTON na 3, LED1 na 5, LED2 na 6, LED3 na 7 a LED4 na pin 8, viz obrázek v úvodu. Poté dejte uložit, tedy File -> Save a ze zobrazené nabídky Bus Delimiter zvolte druhou hodnotu, tedy „XST Optional: {}“ a klikněte na tlačítko OK.


Obr. 19: Přiřazení pinů k obvodu

Tím je návrh našeho prvního a zároveň nejjednoduššího projektu hotový a je možné přistoupit k vytvoření programovacích souborů a jejich naprogramování do obvodu.

Sestavení/kompilace a programování
Sestavení, nebo také kompilace projektu se provede kliknutím pravým tlačítkem myši na „Implement Design“ na záložce Design v levé části vývojového prostředí a zde volbou Run, případně později také Rerun či Rerun All. Pokud je vše v pořádku, dojde k vygenerování konfiguračních souborů a výpisu informační zprávy o procentuálním využití obvodu a jeho periferií.


Obr. 20: Informační zpráva s výsledky kompilace

Nyní jen zbývá vygenerovat soubory SVF/XSVF pro PRESTO, nebo obvod naprogramovat podporovaným programátorem. K tomu je určena aplikace iMPACT, dostupná například přes položku v hlavním menu vývojového prostředí: Tools -> iMPACT.


Obr. 21: Základní okno aplikace ISE iMPACT

V ní zvolíme volbu File -> New Project a zde vybereme, zda máme zájem o programování podporovaným programátorem, nebo pouze o vygenerování například XSVF souboru, viz. následující obrázek. V tom případě v dalším kroku zvolíme výstupní soubor, například out.xsvf a nakonec i vstupní soubor, kterým je v našem případě LED.jed.


Obr. 22: Generování souboru XSVF pro JTAG programátor PRESTO

Tím je soubor vygenerován a můžeme ho použít v našem programátoru. Případně, pokud se tak nestalo a subor má nulovou velikost, je možné použít volbu programování, která nám soubor vygeneruje. Pokud používáte podporovaný programátor, máte nyní k dispozici blokové schéma JTAG řetězce s možnostmi programování a dalších podporovaných funkcí.


Obr. 23: Podporované programátory mohou využít přímo prostředí aplikace ISE iMPACT

V případě, že také používáte univerzální programátor PRESTO, ukončete ISE iMPACT, který jinak výstupní soubor neuzavře a spusťte nainstalovanou aplikaci JTAG Player for PRESTO. V ní volbou File -> Open & Process otevřete soubor out.xsvf, který se nachází v adresáři s projektem. Přenos souboru do obvodu CPLD trvá několik sekund a po dokončení je aplikace v obvodu ihned spuštěna.


Obr. 24: Průběh konfigurace CPLD obvodu programátorem PRESTO

Video postup

Stáhněte si prosím Flash Player pro přehrávání videí.

Závěr:
V dalším pokračování seriálu o programovatelných hradlových polích se podrobněji podíváme na speciální význam některých pinů obvodu a rovněž si blíže přiblížíme dostupné knihovní prvky.

Uvedený sestavený a oživený modul PXC72, nebo samostatné desky s plošnými spoji, naleznete v našem elektronickém obchodě na adrese shop.pandatron.cz.

Odkazy & Download:
Domovská stránka společnosti Xilinx
Přehled distributorů a kontaktů
Vývojový modul PXC72 v eshopu
Ukázkový projekt s LED

CPLD Families
Informace o obvodech řady XC9500XL
Software and Design Tools
ISE WebPACK

PRESTO - rychlý USB programátor
JTAG Player for PRESTO
Xilinx JTAG Programming Cables
ISP cable schematics
USB JTAG adaptér
Simple Xilinx JTAG







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk
Příbuzné články:
CPLD a FPGA 1.díl - představení obvodů
CPLD a FPGA 2.díl – XC9572 a vývojová deska
CPLD a FPGA 3.díl – První aplikace

Komentáře (17):

Zobrazit starší 30 dnů (17)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
PU232F - převodník USB-UART, modul
Modul s obvodem CP2102 od Silicon Labs - převodník USB-UART pro vývoj a malosériovou výrobu.
Skladem od 290 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007