Portál AbcLinuxu, 1. května 2025 00:32
Závěrečný díl teoretické části seriálu o programovatelné logice přináší především seznam literatury a odkazů pro další studium. Případná další pokračování by již měla být zaměřena na praktické příklady.
Seriál přinesl souhrn základních informací o programovatelných logických obvodech, jejich vnitřních strukturách, použití, principech vývoje aplikací a vývojových prostředcích. Dále seriál lehce představil nejdůležitější jazyky používané pro návrh a simulace logických obvodů. Samostatná kapitola byla věnována vlivu asynchronních signálů na funkci synchronních logických obvodů a způsobům jak se vyhnout případným problémům.
Kompletní problematika vývoje komplexních logických systémů založených na programovatelných logických obvodech mnohonásobně přesahuje rozsah tohoto seriálu. Zájemci o tento obor mohou nastudovat další informace v odkazech a literatuře uvedené v této závěrečné části.
Dva nejvýznamnější světoví výrobci programovatelných logických obvodů jsou (v abecedním pořadí) firmy Altera a Xilinx. Další dva významní hráči na tomto poli jsou firmy Lattice Semiconductor a Microsemi. Zájemce o programovatelnou logiku najde na webových stránkách těchto firem obrovské množství dokumentace k jejich programovatelným logickým obvodům, vývojovým prostředím, ale i obecné a praktické informace týkající se vývoje programovatelné logiky.
Webové stránky výrobců programovatelných logických obvodů:
Kromě literatury a dokumentace poskytují všichni tito výrobci na webu ke stažení i jejich vývojová prostředí. Ta je možné získat jak v placených verzích, tak i zdarma s částečně omezenou funkcionalitou. Verze poskytované zdarma obvykle podporují pouze menší obvody, což pro seznámení s programovatelnou logikou nebo menší projekty nemusí být vůbec překážkou.
Jazyky VHDL, Verilog, SystemVerilog, SystemC, PSL jsou v dnešní době standardizovány organizací IEEE. Souhrn odkazů na jednotlivé standardy je uveden na webu organizace Accellera, která vývoj těchto jazyků zastřešuje:
Některé standardy jsou k dispozici zdarma, za některé je třeba zaplatit licenční poplatek. Obecně je ale třeba zmínit, že tyto standardy definují jednotlivé jazyky a jsou nutné pro jejich implementaci v různých nástrojích. Pro výuku a používání těchto jazyků nejsou standardy příliš nevhodné. Naštěstí existuje mnoho knih věnovaných popisu a výuce návrhových a verifikačních jazyků. Pro představu stačí zadat název jazyka jako klíčové slovo do vyhledávače na některém velkém internetovém knihkupectví.
Některé doporučené knihy:
Peter J. Ashenden: The Designer's Guide to VHDL, Third Edition (ISBN 978-0120887859)
Nejlepší kniha o VHDL, která se dá použít jako učebnice jazyka pro začátečníka, ale i jako referenční příručka pro zkušeného vývojáře. Třetí vydání zahrnuje i poslední verzi jazyka VHDL-2008.
Frank Vahid, Roman Lysecky: Verilog for Digital Design (ISBN 978-0470052624)
Rychlý úvod do jazyka Verilog, použitelný i jako referenční příručka.
Donald Thomas: Logic Design and Verification Using SystemVerilog (ISBN 978-1500385781)
Praktická ucelená učebnice jazyka SystemVerilog pro použití jak pro návrh, tak i pro verifikaci.
Harry D. Foster, Adam C. Krolnik, David J. Lacey: Assertion-Based Design (ISBN 978-1441954626)
Principy a metody návrhu založeného na assertions a popis PSL.
Bryan Mealy, Fabrizio Tappero: Free Range VHDL
Volně dostupná učebnice VHDL. Kniha je zaměřena velmi prakticky, aby byl čtenář brzy schopen začít VHDL skutečně používat.
Kromě knih je možné využívat i různé online zdroje:
Krátké učebnice, návody a příklady pro různé HDL.
Část dokumentace poskytovaná zdarma známou školící firmou. Firma zároveň nabízí různá školení a literaturu související s vývojem FPGA a ASIC.
Kromě učebnic a různých seminářů existuje plno literatury věnované obecně vývoji číslicových systémů, návrhu integrovaných obvodů, metodologii návrhu i verifikace. Opět stačí zadat správná klíčová slova v internetových obchodech a při výběru se řídit čtenářskými recenzemi a zveřejněnými náhledy knih. Z online zdrojů bych rád zviditelnil následující projekty:
OpenCores představuje databázi open-source IP jader pro FPGA/ASIC. Jádra je možné používat ve vlastních projektech, ale mohou dobře posloužit jako studijní materiál pro výuku HDL a vývoje pro FPGA. Samozřejmě je dobré ke zveřejněným jádrům přistupovat obezřetně. Jedná se o sbírku prací mnoha různých vývojářů a ne každý zdrojový kód je skutečně napsán ideálně.
Web fpga4fun obsahuje jednak různé praktické projekty pro FPGA včetně popisu teorie a implementace. Projekty mohou být buď přímo použity, ale především jsou skvělé ke studiu. Web dále obsahuje základní informace o FPGA, návrhových systémech a některých souvisejících technologiích.
Následuje přehled nejdůležitějších vývojových nástrojů pro FPGA. Některé z těchto systémů jsou poměrně drahé komerční nástroje, některé jsou poskytovány zdarma alespoň v částečně funkčně omezených verzích. Často se jedná o omezení podpory těch největších a nejrychlejších FPGA, zatímco běžnější a dostupnější obvody jsou plně podporovány.
Kompletní vývojová prostředí pro FPGA poskytují především výrobci programovatelných logických obvodů.
ISE je starší vývojový systém firmy Xilinx, který již nepodporuje jejich nejnovější FPGA. Plná podpora obvodů končí u řad Spartan/Virtex-6. ISE sice částečně podporuje i obvody řady 7, ale ne všech a na špatné úrovni. Varianta WebPACK je k dispozici zdarma. ISE už se nadále nevyvíjí.
Vivado je aktuální vývojový systém firmy Xilinx. Vivado podporuje pouze novější obvody řad 7 a UltraScale. Opět je k dispozici varianta WebPACK zdarma.
Quartus II je kompletní vývojové prostředí firmy Altera. Quartus II na rozdíl od systémů firmy Xilinx neobsahuje vlastní HDL simulátor. Altera proto dodává speciální verzi simulátoru ModelSim firmy Mentor Graphics označovanou jako ModelSim-Altera Edition. Quartus II je opět k dispozici ve variantě zdarma Web Edition.
Diamond je vývojové prostředí pro FPGA a CPLD firmy Lattice. Opět je k dispozici i licence zdarma, která v tomto případě podporuje pouze starší obvody.
Libero SoC je kompletní vývojové prostředí pro novější programovatelné obvody firmy Microsemi. Pro starší obvody existuje systém Libero IDE. Libero SoC/IDE existuje opět ve verzi zdarma, která nepodporuje některé větší obvody.
V současné době vyvíjí vlastní HDL simulátor pouze jediný výrobce programovatelných logických obvodů, a to firma Xilinx. Všichni ostatní výrobci poskytují upravené verze simulátorů jiných firem. Samozřejmě je vždy možné používat plnohodnotnou verzi některého „velkého“ simulátoru, který obvykle běží rychleji a podporuje mnoho pokročilých funkcí, třeba pro podporu formální verifikace a podobně.
ModelSim je pravděpodobně nejrozšířenější HDL simulátor. Existuje v několika variantách, které se liší rychlostí a možnostmi. Mnoho vlastností je volitelných podle licence.
Questa je kompletní platforma pro formální verifikaci. Obsahuje mnoho nástrojů pro simulaci a verifikaci, různé analýzy a mnoho dalších činností pro verifikaci návrhů komplexních integrovaných obvodů.
Active-HDL je HDL simulátor firmy Aldec, který je co se týče simulace funkčně srovnatelný s ModelSim. Navíc tento produkt zahrnuje integrované vývojové prostředí včetně správy projektů pro návrh FPGA.
Riviera-PRO je celá platforma pro formální verifikaci. Jejím jádrem je výkonný HDL simulátor, který je rozšířen o podporu funkcí pro formální verifikaci návrhů komplexních integrovaných obvodů.
Výkonný HDL simulátor firmy Synopsys. Používaný spíše pro ASIC.
Kromě ModelSim a Active-HDL hrají další simulátory ve světě FPGA minimální roli. Jedná se obvykle o velmi rozsáhlé a také drahé systémy podporující různé metody formální verifikace a analýzy, které se používají v návrhu komplexních integrovaných obvodů.
Samostatné nástroje pro syntézu třetích stran v poslední době ztrácejí na významu. Někteří výrobci FPGA používají upravené verze standardních nástrojů ve svých kompletních vývojových prostředích. Většina však vyvíjí vlastní syntezátory, které již dávají natolik dobré výsledky, že použití dalšího specializovaného nástroje má opodstatnění pouze ve speciálních případech.
Nejdůležitější samostatné nástroje pro syntézu:
Přestože nabídka české literatury věnované problematice programovatelné logiky nedosahuje šíře té anglicky psané, je i u nás k dispozici několik knih určených především začátečníkům.
Jakub Šťastný: FPGA prakticky, BEN, 2011 (ISBN 978-80-7300-261-9)
Jiří Pinker, Martin Poupa: Číslicové systémy a jazyk VHDL, BEN, 2006 (ISBN 80-7300-198-5)
Jiří Král: Řešené příklady ve VHDL, BEN, 2010 (ISBN 978-80-7300-257-2)
Bohumil Brtník: Číslicové systémy, BEN, 2011 (ISBN 978-80-7300-407-1)
Kromě těchto aktuálních knih samozřejmě existují různé starší učebnice číslicové techniky, které jsou stále použitelné pro získání základních znalostí o logických obvodech. Programovatelné logické obvody pouze úžasným způsobem rozšiřují možnosti co se týče rychlosti velikosti navrhovaných obvodů.
Tiskni
Sdílej:
Designer's Guide to VHDL je skutečně hodně obsáhlá, ale dá se použít i jako učebnice. Sám ji používám jako referenci, když potřebuji jednou za čas použít nějakou ne úplně běžnou část jazyka. Jako trochu jednodušší alternativa se dá použít Ashendenova další kniha The Student's Guide to VHDL, která je už spíše učebnicí.
Na Free Range VHDL jsem úplně zapomněl, a přitom je to v podstatě jediná svobodná kniha věnovaná VHDL. Navíc není úplně špatná a pro pochopení jazyka a jeho běžné praktické použití naprosto dostačuje. Díky za připomenutí, do blogu ji doplním.
Z online zdrojůfpga4fun, a to nejen pro FPGAčkaře.
Díky za připomenutí. Web znám a přidám ho do blogu.
ISE sice částečně podporuje i obvody řady 7, ale ne všech a na špatné úrovniJo to byla legrace, ve škole jsem dělal rekonfigurovatelnou partišnu v PlanAheadu pro nějakej kintex 7 a vždycky to při mapu házelo nějakou superpodivnou chybu (zarovnání-přeříznutí propojovací matice a CLB). A nic tomu nepomáhalo. Nakonec jsem zjistil, že planAhead zapisuje úplně jiné bloky (definující tu partišnu), než zobrazuje a opravit to jde tím, že se ručně zapíšou chybný hranice partišny (oddělené SLICEM a SLICEL v jednom CLB) a ono to pak FUNGUJE
A to nejsou jediné problémy. Jednoznačně doporučuji používat ISE pouze pro FPGA do řady 6. Vše pro 7 a výš dělat rozhodně ve Vivadu.
Když to srovnám s Alterou, tak ta udržuje Quartus zpětně kompatibilní a konzistentní. Tam se podobné problémy moc nevyskytují. Pro Xilinx je často třeba udržovat některé starší projekty v konkrétní historické verzi ISE.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.