Programovateľné programy na navrhovanie čipov altera. Hardvér - ALTERA: programovateľné logické čipy (úvodný materiál). altera produkty. altera, jeden z najväčších vývojárov PLS, bola založená v roku 1983 ako


(C) Research/VolgaSoft Moderné technológie. ALTERA.(úvodný materiál)ÚVOD Tento článok bude hovoriť o modernom malom zázraku, vypočítanom prielomu vo svete digitálnej elektroniky - programovateľných logických čipoch. Toto je tehla, ktorá stojí v najmodernejších modeloch ZX-SPECTRUM - GMX a SPRINTER , je to ten istý mikroobvod, na ktorom môžete robiť takmer všetko - od Z80X (povedzme, 30 MHz, strojový cyklus 1 hodinový cyklus), až po všetko Pentagon spolu s 2D akcelerátorom, GS, myšou a IDE ovládačom. Asi každý rádioamatér pri vývoji digitálneho prístroja v duchu sníval – kde nájsť tabletku na všetky choroby – mikroobvod, ktorý všetko nahradí. Inžinieri potrebovali najmä takéto zariadenia, pretože pri vývoji seriózneho produktu museli navrhnúť vlastný integrovaný obvod „pre túto úlohu“. Od okamihu, keď bola logika vypracovaná, kým sa objavil pracovný produkt, zvyčajne prešlo niekoľko mesiacov a minulo sa obrovské množstvo zdrojov. Dopyt však vytvára ponuku – objavili sa polozakázkové veľké integrované obvody (LSI) a programovateľné logické polia (PLA). Veda nestála, technológie boli čoraz pokročilejšie a jedného dňa bolo oznámené vydanie balíka „softvér“ + „hardvér“ + „kameň“. Myšlienka bola veľmi jednoduchá: vývojár nakreslí diagram v softvéri (možno ho prenesie z papiera), alebo opíše logiku budúceho produktu pomocou binárnych rovníc a jednoduchých operátorov, potom kompilátor preloží diagram do nejakého kódu a kód je zašitý programátorom („hardvér“) do programovateľného logického čipu („kameň“), ktorý je možné okamžite zaspájkovať do dosky. A neexistujú žiadne náklady na vývoj alebo testovanie čipu. Vývojári digitálnych zariadení prijali nový produkt s nadšením. Dnes je na trhu množstvo výrobcov programovateľnej logiky LSI (PL). Ich produkty sa líšia tak kapacitou a architektúrou, ako aj kvalitou softvérovej a hardvérovej podpory, servisom a v konečnom dôsledku aj cenou. Jednoznačným lídrom je dnes spoločnosť Altera Corporation . Trh si podmanila nielen vďaka širokej škále produktov, ale aj kompetentnej distribúcii svojich produktov. Napríklad používanie softvérových produktov (študentských verzií) na vzdelávacie účely je bezplatné. Pre Rusko to vo všeobecnosti nie je dôležité (takmer nikto nikdy nevidel autorský zákon), ale v zahraničí je tento problém relevantný. Okrem toho produkty spoločnosti doslova prenikli na domáci trh - v dôsledku toho sme na ňom takmer všetci. OD SLOV K AKCII VLSI PL od Altera klasifikované podľa nasledujúcich kritérií: 1) stupeň integrácie (počet dostupných brán (prvky 2I-NOT) a klopných obvodov); 2) architektúra najjednoduchšieho funkčného prevodníka (bunky); 3) organizácia vnútornej štruktúry VLSI a štruktúra matice spojení funkčných meničov (metóda spájania buniek); 4) prítomnosť vnútornej pamäte RAM; 5) technológia výroby programovateľného prvku (Fuse, EPROM, EEPROM, FLASH, SRAM) - ako je obvod zapojený. Spolupracovať s väčšinou jej spoločnosti BIS PL Altera ponúka jazyk popisu hardvéru MAX+plus II. Systém automatizácie dizajnu MAX+plus II podporuje šesť rodín VLSI PL.Parameter ├────────── ┬─────┬─────┤ │Rodina│Logic│UPin │Tech │ │ │ kapacita │ │ │ │ └ │ └ │ │ └ │ │ │ └ │ │ │ │ ├ ──────┼────── ────┼─────┼─────┤ │Klasický │ 300-900 │22-64│EPROM│ ││845600 EP ROM│ │MAX7000E │ 600-5000 │ až 164│EEP- │ │MAX9000 │ 6e3-12e3 │až 216│ROM │ │FLEX8000A│ 2500-16e3│až 208│F│5 RAM │až 406 │SRAM │ └── ───────┴─ ─────────┴─────┴─────┘Logická kapacita je počet dostupných prvkov 2I-NOT, to znamená, že do FLEX10K sa zmestí až 25 000 našich LA3. UPin - počet užívateľských pinov. Tech - technológia. Praktické vysvetlenie k tabuľke: povedzme, že vezmeme najmŕtvejší FLEX8000A (technológia SRAM - t.j. po zapnutí je potrebné obvod zariadenia „naliať“ do alternátora), zavesiť ho nohami užívateľa na zbernicu Rodimigo Specky (zostane pár voľných), hromadne vyrobíme jednoduchý dekodér portov a pripojíme ho na vstup alterina. čo získame? Dostávame super zariadenie!!! Koniec koncov, teraz môžete naliať prakticky akúkoľvek schému do alteru!!! Môže to byť čokoľvek z vonkajšej podložky. procesor (povedzme, že dáme 16-bitové číslo bajt po byte do jedného portu, druhé číslo do druhého, operačný kód niekde inde, potom si prečítame výsledok), ku všetkému, čo je pre myseľ pochopiteľné (ak si tykáš niekoľko voľných nôh „kde by sa malo“ - môžete vykonať hardvérovú výplň a hardvérovú konštrukciu segmentov, viackanálové programovateľné prerušenia (obzvlášť dôležité pre digitálne audio), nové príkazy procesora (ako napr."šprintér" alebo ďalšie registre procesora...). Môžete vytvárať knižnice hardvérových funkcií, aby ste nevymýšľali veľké, ako to stále robia tvrdohlaví „kóderi“, a čítať ich v súlade s úlohou. „Firmvér“ obvodu toho istého FLEX8282A („najsmrteľnejší“, pozri vyššie) váži, ak ma pamäť neklame, 6 kB. Počas konfigurácie sú všetky nohy používateľa v stave Z a neovplyvňujú činnosť systému. Ak potrebujete, aby zariadenie „vydržalo navždy“ a nekonfigurujete ho zakaždým po zapnutí, môžete použiť rodinu MAX. Taktiež niektoré LSI z rodiny MAX majú ochranu proti „úniku okruhu“ – trocha vývojového tajomstva, avšak podľa môjho názoru je použitie tejto rodiny trochu obmedzené (aspoň v „domácich“ podmienkach) kvôli potrebe programátor a obmedzený počet programovacích cyklov.TERAZ PÁR SLOV O PROSTREDÍ VÝVOJA: POPIS HARDVÉRU JAZYK MAX + PLUS II.Systém MAX + plus II je napísaný pre nasledujúce platformy: PC, MAC, SUN. Ani Speccy , z nejakého dôvodu nebola na tomto zozname ani notorická priateľka. Systém je veľmi dobrý, jednoduchý a so širokými možnosťami. Hlavnými komponentmi sú grafické a textové editory, kompilátor, editor diagramov (známy aj ako „ladiaci program“), časovač a editor rozloženia a rozloženia. V grafickom editore sa nakreslí schéma zariadenia (ak je použitá grafická úloha). Ako prvky schémy môžete použiť logiku „podľa buržoázneho hosťa“, je tam celá 74. séria a ak sa vám nepáči označenia nepriateľa, môžete nakresliť všetko, čo nám stojí v ceste, a nechať to fungovať. Na poskytnutie textového popisu hardvéru sa používa textový editor. Jazyk je niekde medzi dBase, C, Pascal . Existuje takmer hotový príkaz na popis synchrónneho konečného automatu, existuje tiež ak a prípad . Sčítačka je opísaná doslova ako C=A+B . Telefónna čipová karta je popísaná a odskúšaná (pozri nižšie) za hodinu bez námahy. Kompilátor skontroluje schému (alebo text) a vygeneruje firmvér pre danú „tehlu“. Široko nastaviteľné limity optimalizácie pre rýchlosť a hlasitosť umožňujú vyžmýkať zo zariadenia maximálny výkon alebo minimálnu obsadenú plochu na čipe. Existuje užitočná vec navrhnutá lekárom. Ukazuje, kde sú preteky a nebezpečné miesta a za akých podmienok sa objavia, nezabudne požiadať o stlačenie resetu pre inicializáciu zariadenia po jeho zapnutí atď. V editore diagramov môžete simulovať fungovanie budúceho zariadenia: povedzme, že nastavíte vstupné signály a pozriete sa na zodpovedajúce výstupy, nezabudnite sa tiež zobraziť. Preto pred zostavením obvodu je lepšie ho spustiť v „max“ a skontrolovať ho. Je pravda, že tam bola aj chyba - T-spúšť vyrobená z R.S. , synchronizovaný rozdielom, hoci v praxi oral. Prezeranie diagramov je veľmi pohodlné: diagramy si môžete prezerať tak, že ich skombinujete do skupín a zobrazíte jednoduchý číselný systém (binárny, desiatkový, hexadecimálny). Vstupné údaje môžu byť špecifikované aj kódomŠedá . Môžete tiež zobraziť vnútorné stavy stroja. Časovač - v Afrike je to tiež časovač - ukazuje oneskorenia a maximálnu možnú pracovnú frekvenciu zariadenia. Editor rozloženia a rozloženia sa používa na „hardvérové“ odstránenie rás (preusporiadanie logických buniek) a umiestnenie vlastných pinov. Cenník distribútora Altera Žiaľ, stratil som ho a tak môžem len spamäti povedať, že FLEX10K10 stojí od 20 dolárov, FLEX8282A od 8 dolárov, prvky rodiny MAX stoja od 3,3 dolára. Ak vás zaujíma, kde môžete získať informácie, môžete sa posúvať na koniec článku, pretože ďalšie informácie budú nasledovať.VIAC INFORMÁCIÍ O RODINÁCH Rodina Classic zahŕňa 3 série VLSI. LSI tejto rodiny umožňujú nahradiť zariadenie obsahujúce od 10 do 20 mikroobvodov so stredným stupňom integrácie a poskytujú: * oneskorenie šírenia signálu z akéhokoľvek vstupu a výstupu LSI nie viac ako 10 ns; * stabilná prevádzka pri frekvenciách do 100 MHz; * schopnosť pracovať v režime nízkej spotreby energie; * možnosť nastavenia režimu utajenia vývoja (okruh nie je možné zlúčiť späť z mikruhi). Poznámka: Zdá sa, že ich výroba už bola ukončená. Rodina MAX5000 zahŕňa 5 sérií VLSI. LSI tejto rodiny umožňujú nahradiť zariadenie obsahujúce až niekoľko desiatok mikroobvodov s priemerným stupňom integrácie a poskytujú: * oneskorenie šírenia signálu z akéhokoľvek vstupu a výstupu LSI nie viac ako 15 ns; * stabilná prevádzka pri frekvenciách do 76 MHz; * schopnosť nastaviť režim utajenia vývoja; * možnosť použiť tri prevádzkové režimy výstupných vyrovnávacích pamätí: vstupný, výstupný, obojsmerný. Rodina MAX7000 zahŕňa 7 sérií VLSI. LSI tejto rodiny umožňujú nahradiť zariadenie obsahujúce až stovky mikroobvodov so stredným stupňom integrácie a poskytujú: * oneskorenie šírenia signálu z akéhokoľvek vstupu na výstup LSI nie viac ako 5 ns; * stabilná prevádzka pri frekvenciách do 178 MHz; * schopnosť regulovať rýchlosť prepínania výstupných vyrovnávacích pamätí; * možnosť použitia 4 prevádzkových režimov výstupných vyrovnávacích pamätí: vstupný, výstupný, obojsmerný, otvorený kolektor; * možnosť nastavenia režimu nízkej spotreby ako pre celé VLSI ako celok, tak aj pre obvody šírenia jednotlivých signálov; * možnosť programovania a preprogramovania po zapojení na doske; * schopnosť nastaviť režim utajenia vývoja; * práca so zníženým (3,3 V) napájacím napätím. Poznámka: Niektoré série sú v súlade so štandardom zbernice PCI. Rodina FLEX8000A obsahuje 7 sérií VLSI. LSI tejto rodiny umožňujú nahradiť zariadenie, ktoré zaberá desiatky dosiek vyrobených na mikroobvodoch so stredným stupňom integrácie a poskytujú schopnosť: * stabilnú prevádzku na frekvenciách do 294 MHz; * emulácia internej zbernice s 3 stavmi; * práca so zníženým (3,3 V) napájacím napätím; * práca v systémoch so zmiešaným (3,3 V, 5 V) napájacím napätím; * implementácia neobmedzeného počtu konfiguračných cyklov, vrátane „on the fly“, t.j. bez vypnutia napájania VLSI; * regulácia rýchlosti spínania výstupných bufferov; * možnosť použitia 3 prevádzkových režimov výstupných vyrovnávacích pamätí: vstupný, výstupný, obojsmerný. Poznámka: Všetky VLSI v tejto sérii sú v súlade so štandardom zbernice PCI. Rodina MAX9000 zahŕňa 4 série čipov. LSI tejto rodiny umožňujú nahradiť zariadenie, ktoré zaberá desiatky dosiek vyrobených na mikroobvodoch so stredným stupňom integrácie a poskytujú schopnosť: * stabilnú prevádzku na frekvenciách do 125 MHz; * nezávislé použitie logickej časti a spúšťača makrobunky; * možnosť nastavenia režimu nízkej spotreby ako pre celé VLSI ako celok, tak aj pre obvody šírenia jednotlivých signálov; * možnosť programovania a preprogramovania po zapojení na doske; * práca v systémoch so zmiešaným (3,3 V, 5 V) napájacím napätím; * regulácia rýchlosti spínania výstupných bufferov; * použitie 3 prevádzkových režimov výstupných vyrovnávacích pamätí: vstupný, výstupný, obojsmerný. Poznámka: Niektoré série sú v súlade so štandardom zbernice PCI. Rodina FLEX10K obsahuje 7 sérií VLSI. LSI tejto rodiny umožňujú nahradiť zariadenie, ktoré zaberá stovky dosiek vyrobených na mikroobvodoch so stredným stupňom integrácie a poskytujú schopnosť: * stabilnú prevádzku na frekvenciách do 450 MHz; * implementácia statickej pamäte a ROM na čipe s kapacitou až 24 Kbit; * nezávislé použitie logickej časti a spúšťanie každého logického prvku; * emulácia internej zbernice s 3 stavmi; * násobenie frekvencie vnútorných hodín; * práca v systémoch so zmiešaným (3,3 V, 5 V) napájacím napätím; * implementácia neobmedzeného počtu konfiguračných cyklov, vrátane „on the fly“, t.j. bez vypnutia napájania VLSI; * regulácia rýchlosti spínania výstupných bufferov; * možnosť použitia 4 prevádzkových režimov výstupných vyrovnávacích pamätí: vstupný, výstupný, obojsmerný, otvorený kolektor. Poznámka: Všetky VLSI v tejto sérii sú v súlade so štandardom zbernice PCI. To je všetko. Len dodám, že pokrok sa nezastaví a do každej rodiny pribudli ďalšie série. VZHĽAD WWW.ALTERA.COM - tam môžete získať podrobnejšie informácie a elektronické kľúče k programu MAX + Plus II (predstierajúc, že ​​ste študent alebo výskumník).Spoločnosť EFO. Email: [chránený e-mailom] Tel. (812) 247-5340 194021 Petrohrad, Politechnicheskaya ul., 21(tu si môžete zakúpiť zodpovedajúce prvky).LITERATÚRA 1. Recenzia základne prvkov ALTERA (Antonov A.P., Melekhin V.F., Fillipov A.S.; Petrohrad 1997) 2. Tá istá kniha (len sa zdá väčšia) je na kompaktu s MAX + Plus II vo videu.PDF (zrejme 45 MB), hoci v angličtine.

Programovateľné logické integrované obvody ALTERA a počítačom podporovaný návrhový systém MAX+PLUS II

Programmable logic Integrated circuits (FPGA), alebo v zahraničnej literatúre označované ako PLD (programmable logic devices), sú semi-custom digitálne LSI, ktoré je možné vďaka svojim architektonickým a technologickým vlastnostiam vyvíjať a vyrábať bez špeciálneho technického vybavenia. FPGA sa objavili na svetovom trhu v polovici 80. rokov. A okamžite sa rozšírili a presunuli proces vytvárania špecializovaného LSI z továrne na pracovisko dizajnéra. Vývojový cyklus LSI sa skrátil na niekoľko hodín a výrazne sa znížili súvisiace náklady.

Od začiatku 90. rokov. Najväčší dopyt je po FPGA, ktoré majú:

vysoká logická integrácia založená na technológiách CMOS;

rýchlosť až 80 -100 MHz a vyššia;

Možnosť programovania (načítanie internej konfigurácie) bez programátora.

Všetky tieto požiadavky spĺňajú FPGA od spoločnosti ALTERA (USA), svetového lídra v oblasti FPGA. V súčasnosti ALTERA vyrába sedem rodín FPGA rôznych architektúr [14].

V Rusku sú najznámejšie FPGA rodiny Classic, ktoré už nejaký čas vyrába INTEL. Hlavnými výhodami týchto mikroobvodov sú jednoduchosť, nízka cena, jednoduchá inštalácia DIP balíkov, spotreba mikroenergie v statickom režime a možnosť podpory domácimi prostriedkami (programátory CAD FORS+, Blitz, Sterkh, Forsys). FPGA EP220 nahrádza akýkoľvek mikroobvod série 1556 (HP4, HP6, HP8, XL8).

Všetky FPGA sú vyrábané pomocou ultrafialovej vymazateľnej technológie CMOS (EPROM), ktorá poskytuje nasledujúce parametre spotreby energie:

v statickom režime - 10-30 uA;

pri frekvencii 1 MHz - 2-8 mA;

so zvyšujúcou sa frekvenciou hodín - 1 mA/MHz.

Pre zníženie ceny o 30-40% pri hromadnej výrobe produktov sa všetky FPGA vyrábajú aj v plastových obaloch (DIP a PLCC) s jednorazovým programovaním.

Nevýhody FPGA klasickej rodiny sú relatívne nízky stupeň integrácie a niektoré architektonické vlastnosti: chýbajúci vstup pre nastavenie spúšťačov na „1“ (SET), blokovanie kontaktov pri implementácii prvkov vnútornej pamäte.

FPGA rodiny MAX7000 a FLASHlogic, ktoré majú maticovú architektúru, t.j. obsahujú programovateľné matice logických členov „AND“, „OR“ a klopných obvodov.

Rad MAX7000 pozostáva zo siedmich čipov s úrovňami integrácie v rozsahu od 1 200 do 10 000 ekvivalentných logických brán, ktoré obsahujú od 32 (EPM7032) do 256 (EPM 7256) klopných obvodov.

Okrem toho sa vyrába FPGA EPM7032V - funkčný analóg mikroobvodu EPM7032 s napájacím napätím 3,3 V.

Rad FPGA MAX7000 sa vyrába pomocou technológie elektricky vymazateľného CMOS (EEPROM). Oni poskytujú:

minimálne oneskorenie šírenia signálu zo vstupu na výstup 5 ns;

maximálna hodinová frekvencia 190 MHz;

až 100 cyklov programovania/vymazania.

Rodina FPGA MAX7000 má flexibilnú architektúru. Ich makrobunky obsahujú dve nezávislé spätnoväzbové linky; od spúšte a od kontaktu. To umožňuje použiť flip-flop ako interný register a pin súčasne použiť ako vstupný port. Doplnkovými zdrojmi FPGA sú expanzné členy - konjunktory, ktorých inverzné výstupy tvoria spätnoväzbové spojenia s maticou prvkov „AND“. Termíny vám umožňujú generovať riadiace signály (napríklad CLK, SET, RESET) bez utrácania makrobuniek. V dôsledku prerozdelenia výrazov medzi makrobunkami sa počet vstupov prvkov „OR“ môže zvýšiť na 32.

Každá makrobunka má individuálny turbo bit, ktorého naprogramovanie umožňuje znížiť spotrebu energie s miernym poklesom výkonu. Počnúc rokom 1996 budú všetky FPGA rodiny MAX7000 dostupné vo variante ISP (v systéme programovateľnom). To vám umožní naprogramovať a vymazať obvod priamo na pracovnej doske cez 4. signálové rozhranie pripojené k portu počítača. Prítomnosť programátora sa stáva voliteľnou, čo značne zjednodušuje a znižuje náklady na používanie FPGA.

Rodina FPGA MAX7000 má nízku cenu. Napríklad cena čipu EPM7032 je nižšia ako 7 a čipu EPM7128 je nižšia ako 25.

S príchodom rodiny MAX7000 sa praktická hodnota predtým vyrábaných FPGA rodiny MAX5000 výrazne znížila, pretože objavili sa analógy všetkých mikroobvodov (napríklad EPM5128 - EPM7128) s lepšími výkonnostnými charakteristikami a spotrebou energie za nižšie ceny.

MAX+PLUS II je automatizovaný návrhový systém programovateľných logických integrovaných obvodov (FPGA) vyvinutý spoločnosťou Altera Corporation, globálnym lídrom vo výrobe FPGA.

MAX+PLUS II je multifunkčný softvérový produkt, ktorý poskytuje konštruktérovi možnosť kompletne navrhnúť FPGA, od zadania obvodu, ktorý projektant zamýšľa implementovať na FPGA, až po naprogramovanie samotného FPGA na programátore.

MAX+PLUS II ponúka nasledujúce užívateľské možnosti:

zadanie vnútornej štruktúry FPGA pomocou grafického zadania funkčného diagramu;

zadanie vnútornej štruktúry FPGA pomocou vysokoúrovňového programovacieho jazyka Altera Hardware Description Language (AHDL), ktorý je kompletne zabudovaný do shellu MAX+PLUS II;

modelovanie činnosti FPGA vo forme časových diagramov;

Ak máte programátora, napíšte navrhnutú štruktúru do FPGA atď.

Pri popise vnútornej štruktúry FPGA pomocou AHDL je možných niekoľko možností.

V prvej možnosti popíšte štruktúru v primitívoch, t.j. pomocou jednoduchých funkcií ako RS-trigger, D-trigger, T-trigger, JK-trigger atď.

V druhej možnosti vykonajte popis pomocou primitív a megafunkcií.

Mega funkcie sú zložité logické funkcie ako počítadlo, multiplexer, dekodér, register atď.

Výhodou prvej možnosti je, že prekladateľ trávi menej času prevodom najjednoduchších funkcií AHDL do strojových kódov.

Nevýhodou tejto možnosti je veľký objem programového textu a nutnosť podrobného popisu celého systému.

V druhej možnosti pri použití megafunkcií nie je potrebný podrobný popis prvkov v tom zmysle, že programátor nastavuje len parametre zložitej logickej funkcie. Napríklad pomocou megafunkcie lpm_counter je možné počítadlo opísať zadaním len taktovaného vstupu a šírky samotného počítadla. To výrazne znižuje objem zaberaný textom programu a tiež vám umožňuje mierne skrátiť čas potrebný na písanie programu.

Nevýhodou je, že preklad programu do strojových kódov zaberie viac času v porovnaní s prvou možnosťou.

Ale nakoniec je výsledok rovnaký, takže štýl písania softvérového produktu závisí výlučne od dizajnéra.

Pri ladení napísaného softvérového produktu vám SIMULATOR MAX+PLUS II umožňuje detailne preskúmať výsledok činnosti FPGA vo forme časových diagramov. Dizajnér môže vybrať rôzne výstupy a medzistavy opísané v programe, ako aj špecifikovať rôzne vstupné akcie.

ÚVOD

Zvyčajne, keď niekto vidí fungujúcu dosku, vždy sa pýta rovnaké otázky: - Je to Arduino? - Ako to funguje bez Arduina?

Nie je to mikrokontrolér, dokonca to nie je ani procesor, je to FPGA. FPGA je programovateľný logický integrovaný obvod, takýto mikroobvod pozostáva z mnohých rovnakých blokov alebo makročlánkov, každý výrobca ich nazýva inak, takže pre Xilinx sú to Slices (rezy) pre Altera - LogicElements (logické prvky). Tieto bloky sú pomerne jednoduché, môžu pôsobiť ako niekoľko logických prvkov, môžu byť malou vyhľadávacou tabuľkou (LUT), obsahujú hotovú sčítačku, násobič, blok digitálneho spracovania signálu (DSP), vo všeobecnosti všetko, čo má výrobca na mysli. . Používateľ môže tieto bloky usporiadať a nakonfigurovať podľa vlastného uváženia, čím sa implementujú pomerne zložité digitálne obvody. Môžete implementovať dokonca aj mikrokontrolér na FPGA, napríklad implementovať rovnaké Arduino alebo procesor vašej vlastnej architektúry, napríklad nie registrový procesor, ale zásobníkový procesor, môžete dokonca implementovať svoje vlastné FPGA na FPGA!

Spomedzi dostupných lacných FPGA možno identifikovať dvoch hlavných výrobcov: Altera a Xilinx s ich produktmi môžete začať svoju cestu zvládnutia týchto technológií. Podľa mňa je lepšie voliť čipy Altera, keďže ich dizajnové prostredie sa neustále aktualizuje a ak si vyberiete jeden populárny čip Xilinx XC3S500E, budete sa musieť uspokojiť so zastaraným prostredím ISE 14.7 (aj keď aj to má svoje výhody) .

V zahraničnej literatúre môžete nájsť skratky pre FPGA: FPGA a CPLD. CPLD (Complex Programmable Logic Device) - čipy s malým počtom makrobuniek, špecializovanými blokmi a nízkou spotrebou energie. Na tento typ čipu sa nedá syntetizovať veľký projekt, ale v praxi sa tiež používajú, napríklad vzácny mikrokontrolér má povedzme 300 nôh. Takéto čipy sa často používajú ako systémy rozhrania, predprocesory a expandéry I/O. FPGA (Field-Programmable Gate Array) je pole programovateľné hradlové pole (FPGA), oveľa výkonnejšie čipy v porovnaní s CPLD, ale spotrebuje viac energie a stojí podstatne viac. Na zníženie nákladov na oblasť matrice môžu čipy FPGA obsahovať hotové funkcie, ako sú jednotky digitálneho spracovania signálu (DSP), vstavané procesory a vstavaná pamäť. FPGA sa široko používajú na testovanie a overovanie návrhov, v takzvanej predkremíkovej validácii, čím sa znižujú náklady a čas pred uvedením produktu na trh. Čipy FPGA je možné prekonfigurovať takmer kedykoľvek, napríklad v spoločnosti Intel sa momentálne pracuje na kombinovaní architektúr bežného procesora a čipu FPGA. Xilinx už takéto riešenia má – Zynq, ale o nich sa zatiaľ baviť nebudeme.

Budeme sa baviť o jednoduchších veciach, najmä odkedy sa mi dostal do rúk vývojový kit: Cyclone IV 4 FPGA Core Board a Altera USB Blaster Downloader PLD Development kit za 35 dolárov, zakúpený na AliExpress.

1 Demo doska Cyclone IV 4 FPGA Core Board, stručný popis

Ryža. 1 - Demo platba Základná doska Cyclone IV 4 FPGA

Na doske (obr. 1) je nainštalovaný čip EP4CE6E22C8N, jeho charakteristiky:

Typ zdroja Stručný opis Množstvo
Logické prvky (Les) Počet logických blokov - buniek, hlavná charakteristika, pomocou ktorej môžeme porovnať „výkon“ čipov, bude tieto bloky využívať 6,272
Vstavaná pamäť (kbit) Vstavaná pamäť pre nás zatiaľ nie je dôležitou charakteristikou 270
Vstavané násobiče 18x18 Vstavané hardvérové ​​násobiče, veľmi dôležitý parameter v digitálnom spracovaní signálu, plný výkon FPGA sa odhalí, keď niekoľko multiplikátorov pracuje paralelne 15
PLL na všeobecné použitie Uzly fázovo uzamknutej slučky, ktorá ešte nie je dôležitou charakteristikou, zjednodušujú synchronizáciu zariadení pracujúcich na rôznych frekvenciách 2
Globálne siete hodín Počet frekvenčných domén ešte nie je dôležitou charakteristikou 10
Používateľské I/O banky Počet samostatných užívateľských I/O bánk zatiaľ nie je dôležitou charakteristikou 8
Maximálny užívateľský I/O Množstvo vlastných I/O pinov, môžeme pripojiť akékoľvek zariadenia, ako napríklad Arduino 91

Doska má:

  1. Flash pamäť – Po pripojení napájania bude FPGA nakonfigurované tak, aby bolo implementované do flash pamäte. Môžete syntetizovať svoj projekt a zapisovať do tohto blesku
  2. 25 MHz quartz je referenčný generátor taktovacej frekvencie, na tejto frekvencii budú fungovať všetky naše projekty, naše FPGA môže podporovať až 10 takýchto kanálov.
  3. LED diódy – 10, tlačidlá – 2.
  4. I/O piny 61 + 2 zem, 1 nezapojený. Môžete pripojiť rôzne zariadenia. DAC-ADC, akcelerometre a gyroskopy, znakové a grafické displeje, ako Arduino.
  5. Napájanie cez USB, alebo externé 5V.

Súprava obsahuje aj JTAG programátor Altera USB Blaster.

2. Prostredie Quartus II a náš prvý projekt

Aby sme mohli pracovať s týmto FPGA, musíme si stiahnuť oficiálne vývojové prostredie - Web Edition Quartus II, je to zadarmo. Ideme na oficiálnu stránku http://dl.altera.com/15.0/?edition=web, v čase písania článku je verzia 15.0 najnovšia, ak je novšia, stiahnite si ju.

Vyberte si:


Ryža. 2 - vyberte potrebné produkty Altera

A kliknite na tlačidlo sťahovania (Stiahnuť vybrané súbory). Potom budeme vyzvaní na registráciu, registráciu, stiahnutie a inštaláciu.

Poďme vytvoriť náš prvý projekt.

Spustite Quartus, vyberte hlavnú ponuku Súbor -> Sprievodca novým projektom, zobrazí sa úvodné okno, kliknite na tlačidlo Ďalej. Ďalej musíte zadať adresár pre projekt a jeho názov, tretie pole je názov najvyššieho modulu, neskôr uvidíte, čo to je. Vyberieme priečinok, kam chceme projekt uložiť a vymyslíme názov, ja mám test1.


Ryža. 3 - okno sprievodcu novým projektom

Kliknite na tlačidlo Ďalej, zobrazí sa otázka, či ide o prázdny projekt alebo šablónu projektu. Nechajte prázdne, ďalšie. Potom sme požiadaní o pridanie existujúcich súborov, nemáme nič, keďže práve začíname našu cestu, kliknite na tlačidlo Ďalej.

Ďalej musíme vybrať náš čip, môžete to urobiť kedykoľvek. Vyberieme ako na obrázku, Family – Cyclone IV E, konkrétne zariadenie vybrané v “Available devices” a vyberieme náš čip EP4CE6E22C8N, je na úplnom začiatku. Ak máš inú, nájdi si tú svoju, to je dôležité. Kliknite ďalej.


Ryža. 4 -

Zobrazí sa okno - výber nástrojov na návrh, ladenie, toto zatiaľ preskočte, kliknite na tlačidlo Ďalej a potom dokončite.


Ryža. 5 - Okno "Assinments-Deice"

V okne vyberte položku „Nepoužité kolíky“. Toto nastavenie určuje, čo sa stane s nepripojenými kolíkmi. To môže byť dôležité vo vašom projekte, je nepravdepodobné, že použijete všetky kolíky a tie nezapojené môžu byť v skutočnosti pripojené k zemi alebo napájaniu (no, nikdy neviete, kto zapojil dosku). Ak použijete jedničku na uzemnený kolík, vyhorí, takže to musíte starostlivo sledovať.

V predvolenom nastavení sú nepoužívané piny „As input tri-stateed so slabým pull-up“ (vstupné piny sú v treťom stave s vysokou impedanciou, so slabým power pull-up), môžete ponechať alebo vybrať „As input tri-stateed“ “. O pull-up rezistore si môžete prečítať na Wikipédii https://ru.wikipedia.org/wiki/Pull-up_resistor. V digitálnej technológii môžu existovať tri stavy, logický je napájacie napätie alebo vysoká úroveň, logická nula je, keď je kolík pripojený k zemi, alebo stav nízkej úrovne a vysokej impedancie. Podmienka vysokej impedancie- je to vtedy, keď má kolík veľmi vysoký odpor a prakticky neovplyvňuje vodič, ku ktorému je pripojený. Tento stav je potrebný napríklad pri organizovaní zberníc, keď je na jeden vodič pripojených veľa zariadení a neaktívne zariadenia nerušia. s prevádzkou.


Ryža. 6 - Okno „Možnosti zariadenia a pinov“, Nepoužité piny

Všetko to prepojíme v „Editor úloh“


Ryža. 7 - Zavolajte „Editor úloh“ z ponuky alebo panela

V zobrazenom okne to urobte tak, ako som to urobil ja, alebo ak je to úplne správne, potom podľa schémy vašej dosky.


Ryža. 8 - Assinement Editor

V stĺpci „Do“ zadajte názov vstupu alebo výstupu. V stĺpci „Názov úlohy“ vyberte „Umiestnenie“. V stĺpci „Value“ je číslo pinu mikroobvodu podľa schémy dosky (čísla pinov mám napísané priamo na doske).

Tiež je potrebné určiť, čo robiť s tlačidlami, ktoré sú spojené jednou nohou so zemou a druhou so vstupom čipu. Keď stlačíte nohu, úroveň bude nízka, ale bez stlačenia to nie je jasné, noha čipu bude len visieť vo vzduchu, čo je veľmi zlé. Vstup čipu musíte pripojiť k napájaniu buď pomocou rezistora na doske alebo elegantnejším spôsobom v „Editor úloh“. V stĺpci „Assignment Name“ vyberte „Weak Pull Up rezistor“ pre skupinu kľúčov* (skupina je označená hviezdičkou).


Ryža. 9 - Editor úloh

Ďalej musíte vytvoriť popis modulu najvyššej úrovne, ktorý bude pracovať priamo s nohami čipu, všetky ostatné moduly budú fungovať iba s ním. V hlavnom menu kliknite na Nový a vyberte "Súbory návrhu-> Blokový diagram/Schéma súboru".


Ryža. 10 - Dialógové okno Nové súbory

V okne, ktoré sa otvorí, vyberte „Pin Tool“ a umiestnite vstup a výstup (vstupné a výstupné kolíky) do diagramu. Vstup premenujeme na kľúč, výstup na led a prepojíme ich vodičom. Uložte a kliknite na „Spustiť kompiláciu“.


Ryža. 11 - Okno s grafickým popisom, zvýraznené Pin Tool a Start Compilation

Po kompilácii sme mali varovania, ktoré zatiaľ ignorujeme, týkajú sa nezapojených pinov, absencie hodinového signálu a popisu pre “Timing Analyzer”.

Pripojíme demo dosku a programátor, vyberieme nástroj „Programátor“. V okne by sa malo zobraziť „USB-Blaster“, ak nie, potom kliknite na „Nastavenie hardvéru“ a skúste zistiť, prečo nie, pravdepodobne nie sú nainštalované ovládače, pozrite sa na zariadenia so systémom Windows, vyhľadajte neidentifikované zariadenia, možno je problém s káblom. Ak je všetko v poriadku, kliknite na „Auto Detect“ a vyberte náš čip.


Ryža. 12 - Okno programátora

Dvakrát kliknite na pole „File“ a vyberte súbor, ktorý chcete zapísať do FPGA (umiestneného v priečinku output_files nášho projektu), začiarknite políčko „Program / Configure“ a kliknite na tlačidlo „Start“.


Ryža. 13 - Okno programátora, náš čip je už nakonfigurovaný

Gratulujeme k vašej prvej konfigurácii FPGA! Dióda D1 by sa mala rozsvietiť, po stlačení klávesu 1 by mala zhasnúť (keďže tlačidlo zatvára nohu k zemi), potom s tým niečo urobíme)

Pre väčšinu rádioamatérov a dizajnérov zapojených do vlastného vývoja sú digitálne mikroobvody už dlho známe a zvládnuté. Mnoho ľudí navrhuje svoje návrhy na mikrokontroléroch už dosť dlho, pretože to výrazne znižuje rozmery a zlepšuje funkčnosť zariadení. Jediný problém je, že nie všetko sa dá postaviť na báze ovládača. Vysokorýchlostné zariadenia, ktoré vyžadujú okamžitú odozvu na meniace sa vstupné signály, nemožno postaviť na mikrokontroléri, pretože organizuje postupné (potrubné) spracovanie príkazov, v dôsledku čoho sa rozhodne o vydaní konkrétneho signálu. Preto spolu s mikrokontrolérmi je potrebné použiť konvenčnú logiku, niekedy so slušným počtom balíkov. Dôsledkom toho je veľký počet externých spojov, konštrukčná zložitosť a veľké rozmery dosiek plošných spojov, veľké dĺžky spojovacích vodičov, náročnosť konštrukcie zariadení s vysokými taktovacími frekvenciami a nízka spoľahlivosť. Riešením tohto problému je použitie programovateľných logických integrovaných obvodov (FPGA), ktoré sú súborom určitého počtu funkčných základných prvkov, ktoré nemajú medzi sebou pevné elektrické spojenia, čo umožňuje nastaviť takmer ľubovoľnú konfiguráciu v na vytvorenie konkrétneho elektronického obvodu. V prvej fáze boli FPGA mikroobvody s tavnými prepojkami ako K556RT4-RT5 a iné. Bolo možné na nich vytvoriť nejaké funkcie, ale nebolo možné napchať malý obvod čítačmi a spúšťačmi.

Etapy navrhovania zariadení založených na jednoduchej logike sú slabo automatizované a v prípade chyby je potrebné upraviť dosku o ďalšie prvky. Štúdium softvérového balíka MAX+plus II BASELINE a FPGA od Altera nielen zjednoduší obvod, ale tiež sa vyhne mnohým nástrahám. Tento softvér je možné použiť aj pri navrhovaní obvodov na sérii 155 a jej analógoch. Na programovanie (vytváranie spojení) v PLD (ako aj

CPLD) Používajú sa technológie EPROM, EEPROM a FLASH. Pre rádioamatérov sú mikroobvody FLASH najzaujímavejšie, pretože umožňujú asi 100-krát preprogramovať kryštál a po odstránení napájacieho napätia zachovať štruktúru vytvorenú programovaním.

Tento článok rozoberie problematiku postupného vývoja obvodov na báze FPGA od Altera - EPM3064A ako najlacnejších. Je umiestnený v 44-pinovom PLCC puzdre. Mikroobvod má zmiešané napájanie a viacnapäťové vstupno-výstupné (I/O) rozhranie. Napájacie napätie logického jadra je 3,3 voltov, vstupno/výstupné prvky – 5; 3,3; a 2,5 voltu. Maximálna hodinová frekvencia 227,3 MHz v závislosti od modifikácie. Nastavením konfiguračných bitov je možné ovládať sklon hrán ( Zabilohodnotiť) vstupné/výstupné signály. K dispozícii je tiež implementácia výstupov otvoreného odtoku nastavením bitu ( OTVORENÉVypustiť). Je možné nastaviť režim úspory energie, ktorý zníži spotrebu energie o viac ako 50 %. Je tiež možné nastaviť bit súkromia ( bezpečnosťtrocha), čo vám nedovolí skopírovať vnútornú konfiguráciu čipu. Tento mikroobvod má 4 bloky logických matíc a 64 makrobuniek. Programovateľné spúšťače makrobuniek majú individuálne hodinové vstupy ( hodiny), povolenia na synchronizáciu ( hodinypovoliť), resetovať ( jasný) a predvoľby ( prednastavené). Každú makrobunku možno považovať za programovateľnú maticu A a pevná matica ALEBO. Na výstupe matice ALEBO Súčasťou je register s konfigurovateľným riadiacim obvodom. Riadiaci obvod registra poskytuje nezávisle programovateľné hodiny, aktiváciu hodín, reset a prednastavené signály. Podľa autora je možné do tohto mikroobvodu vložiť 10-15 puzdier série 155 (na predaj sú k dispozícii mikroobvody EPM3256 so 16 blokmi logickej matice a 158 kolíkmi).

Architektúra EPM3064A obsahuje nasledujúce prvky: Logické bloky ( laboratóriá). Makrobunky ( Makrobunky). Logické expandéry, zdieľané ( Zdieľateľné) a paralelne ( Paralelne). Programovateľná spojovacia matica ( PIA). I/O riadiace jednotky ( ja/Oovládaniebloky). Čip má štyri špecializované vstupy ( oddanýšpendlík), ktoré možno použiť ako vstupy na všeobecné použitie alebo vysokorýchlostné globálne riadiace vstupy (synchronizácia - hodiny, nulovanie jasný a dva výstupné signály povolenia - povoliť), pre každú makrobunku a I/O pin. Bloková schéma je znázornená na obr.1.

Obr

Základná architektúra EPM 3064A je logické bloky, pozostávajúci zo 16 makrobuniek. Logické bloky sú navzájom spojené pomocou programovateľnej spojovacej matice ( PIA). Do každého logického bloku sú dodávané nasledujúce signály: 36 signálov z PIA, používané ako logické vstupy. Globálne riadiace signály. Nasmerujte obvody zo vstupných vyrovnávacích pamätí do registrov, čím sa zabezpečí vysoký výkon. Viac o funkčnom zložení a princípe fungovania mikroobvodu si môžete prečítať v.

OBRÁZOK 2

Ak chcete naprogramovať čip, musíte si vyrobiť špeciálny kábel na stiahnutie ByteBlasterMV Obr. Umožňuje vám rýchlo a efektívne meniť konfiguráciu FPGA vo fáze testovania projektu aj počas prevádzky. Preprogramovanie je možné vykonať priamo v systéme. Počas programovania sa kolíky mikroobvodu prenesú do tretieho stavu, aby sa predišlo konfliktu so systémom. Odpor vnútorných pull-up odporov je 50 kOhm.

Tento sťahovací kábel je možné použiť na programovanie mikroobvodov radu MAX 3000A, MAX 7000, MAX 9000 a mnohých ďalších, viac sa dočítate v. Schéma sťahovacieho kábla je znázornená na obr. Konektor X1 sa pripája priamo k paralelnému portu počítača alebo pomocou predlžovacieho kábla a jeho dĺžka by nemala presiahnuť 1,5 metra. Napájanie programátora sa odoberá priamo z obvodov navrhovaného zariadenia. Pre normálnu prevádzku programátora musíte nainštalovať ovládač ByteBlasterMV ktorý bude popísaný nižšie. Odporúča sa použiť originálny čip D 1, pretože dokáže pracovať v rozsahu napájacieho napätia od 2,5 do 5 voltov (v extrémnych prípadoch ho možno nahradiť 1564AP5). Všetky odpory sú typu MLT 0,125. Kondenzátor C1 je keramický.

OBRÁZOK 3

Doska plošných spojov Obr4. vyrobené z jednostranného fólie sklolaminát s hrúbkou 1,5 mm a rozmermi 52 x 43 mm.

OBRÁZOK 4

Pre vytvorenie projektu v prostredí systému MAX+PLUS II od ALTERA je potrebné stiahnuť z internetu a nainštalovať Obr5. voľne šíriteľný súbor baseline10_1.exe Odkaz na stránku je uvedený v . Po nainštalovaní programu pre plnú funkčnosť musíte prejsť na webovú stránku Altera a získať licenčný súbor. Na tejto stránke vyberte odkaz Softvér MAX+PLUS II pre študentov a univerzity. Na ďalšej stránke vyberte odkaz Verzia 10.2, 10.1,alebo 23.9 a stlačte tlačidlo ďalej . Na ďalšej stránke v okne zadajte registračné číslo pevného disku. Ak to chcete urobiť v systéme Windows, stlačte tlačidlo ZAČNITE teda Programy, príslušenstvo, príkazový riadok, a vytočte príkaz r A vstúpiť.

OBRÁZOK 5

V druhom riadku sa vytlačí 8-miestne sériové číslo disku. Toto je potrebné zadať. Potom stlačte tlačidlo ďalej a vyplňte formulár na ďalšej strane. Keď vyplníte formulár, kliknite na tlačidlo ďalej. Licenčný súbor vám bude zaslaný poštou. Vytvorte priečinok c:\mp2student\ a tam umiestnite súbor, ktorý vám bol zaslaný licencia.dat. Ak chcete nainštalovať licenčný súbor, spustite MAX+plusII 10.1 VÝCHODISKÁ potom kliknite na kartu možnosti A LicenciaNastaviť v zobrazenom okne kliknite na tlačidlo prehliadať, a zadajte cestu k licenčnému súboru. Kliknite na tlačidlo OK. Potom budú všetky aplikácie dostupné. Potom musíte nainštalovať súbor ovládača programátora. Ak to chcete urobiť, stlačte tlačidlo ŠTART potom Nastavenie, ovládací panel, inštalácia zariadeníĎalej potom tlačidlo Daha, zariadenie je už pripojené a tlačidlo Ďalej. V ďalšom okne vyberte Pridanie nového zariadenia A Dalej. Nainštalujte tlačidlo Manuálna inštalácia zariadenia vybraného zo zoznamu A Dalej. Vyberte zo zoznamu zvuk, video a herné zariadenia A Dalej. stlač tlačidlo Unainštalovať z disku, potom tlačidlo Preskúmanie. Nastavenie cesty C:\maxplus2\Drivers\win2000 ak máte nainštalovaný WindowsXP, kliknite na OK. Vyberte zo zoznamu Altera ByteBlaster, tlačidlo Ďalej A Pripravený.

Systém MAX+PLUS II má nástroje na pohodlné zadávanie projektov, kompiláciu a ladenie, ako aj priame programovanie zariadení. Systémový softvér MAX+PLUS II obsahuje 11 aplikácií a hlavný ovládací program. Rôzne aplikácie, ktoré podporujú vytváranie projektov, môžu byť aktivované okamžite, čo umožňuje užívateľovi prepínať medzi nimi kliknutím myši alebo príkazmi ponuky. Zároveň môže byť spustená jedna z aplikácií na pozadí, napríklad kompilátor, simulátor, synchronizačný analyzátor a programátor.

Tabuľka obsahuje popis aplikácií.

Tabuľka

Aplikácia Funkcia vykonaná
HierarchiaDisplej Prehľad hierarchie— zobrazuje aktuálnu hierarchickú štruktúru súborov vo forme stromu s vetvami predstavujúcimi podprojekty.
GrafickýEditor Grafický editor— umožňuje vytvoriť projekt logiky obvodu vo formáte skutočného zobrazenia na obrazovke.
SymbolEditor Editor znakov— umožňuje upravovať existujúce symboly a vytvárať nové.
TextEditor Textový editor— umožňuje vytvárať a upravovať textové súbory logického návrhu napísané v AHDL, VHDL, Verilog HDL.
Tvar vlnyEditor Editor signálov— plní dvojakú funkciu: nástroj na vývoj dizajnu a nástroj na zadávanie testovacích vektorov a pozorovanie výsledkov testov.
Plán poschodiaEditor Úroveň po úrovniplánovač— umožňuje priradiť kontaktom zariadenia a zdrojom logických prvkov pomocou grafických prostriedkov.
Kompilátor Kompilátor— spracováva grafické projekty.
Simulátor Simulátor— umožňuje testovať logické operácie a vnútornú synchronizáciu navrhnutého logického obvodu.
NačasovanieAnalyzátor Časový analyzátor— analyzuje činnosť navrhnutého logického obvodu po jeho syntéze a optimalizácii kompilátorom.
Programátor Programátor— umožňuje programovať, konfigurovať, overovať a testovať FPGA ALTERA.
Správaprocesor Generátor správ— zobrazuje chybové, varovné a informačné správy na obrazovke.

Vytvorme si pracovný adresár, do ktorého umiestnime náš projekt C:\ALTERA_WORK\schetchic. Obvod môže byť popísaný v AHDL, VHDL, Verilog HDL (pre tých, ktorí preferujú programovanie) alebo graficky (vhodnejšie pre rádioamatérov). Súbor projektu je grafický, textový alebo signálový súbor vytvorený pomocou grafických alebo signálových editorov systému MAX+PLUS II. Tento súbor obsahuje logiku projektu MAX+PLUS II a je zostavený kompilátorom. Kompilátor dokáže automaticky spracovať nasledujúce súbory projektu: súbory grafického projektu ( .gdf); textové súbory projektu v jazyku AHDL ( .tdf); projektové signálne súbory ( .wdf); projektové súbory v jazyku VHDL ( .vhd); projektové súbory v jazyku Verilog ( .v); Schematické súbory OrCAD ( .sch); Vstupné súbory EDIF ( edf); formátovať súbory XilinxNetlist (.xnf); projektové súbory Altera (.adf); digitálne strojové súbory ( .smf). Pomocné súbory sú súbory, ktoré sú priradené k projektu MAX+PLUS II, ale nie sú súčasťou jeho hierarchického stromu. Väčšina z týchto súborov neobsahuje logiku projektu. Niektoré z nich vytvára automaticky aplikácia systému MAX+PLUS II, iné užívateľ. Príkladmi podporných súborov sú priraďovacie a konfiguračné súbory ( .acf), súbory symbolov ( .sym), súbory prehľadov ( .rpt) a testovacie vektorové súbory ( .vec).

Takže v hlavnom menu kliknite Súbor potom Nový a vyberte položku Grafický Editor súbor A OK obr.6. Otvorí sa okno grafického editora. Ďalej uložme náš projekt pod názvom schechický. gdf do nášho katalógu C:\ALTERA_WORK\ ak to chcete urobiť, kliknite Súbor potom Uložiť Ako A OK. Prepojme názov súboru so súborom projektu, v hlavnom menu kliknite Súbor potom Projekt a ďalej Set Projekt do Aktuálne Súbor alebo namiesto toho môžete stlačiť tlačidlá súčasne Ctrl+ Shift+ J. Nastavíme typ mikroobvodu, ktorý bude v projekte použitý. Ak to chcete urobiť, stlačte tlačidlo v hlavnom menu Priradiť potom Zariadenie.

V zobrazenom okne v riadku Zariadenie Rodina vyberte sériu MAX3000 A. A v okne Zariadenia EPM3064ALC44-4 a OK. Ak neviete, koľko miesta zaberie váš projekt, potom Zariadenia lepšie nainštalovať AUTOMATICKY, kompilátor sám vyberie typ mikroobvodu.

Obr

Pracovná knižnica obsahuje prvky rôznych typov:

1). Logické primitíva (nachádzajú sa v priečinku c:\maxplus2\max2lib\prim\) prvky ako napr. a, alebo, ani atď. s rôznym počtom vstupov.

2). Analógy diskrétnej logiky 74. série sú analógmi 155. série (umiestnené v priečinku c:\maxplus2\max2lib\mf\).

3). Parametrizované logické funkcie, ktoré vám umožňujú vytvárať projekty digitálnych zariadení akejkoľvek zložitosti (umiestnené v priečinku c:\maxplus2\max2lib\mega_lpm\).

Vytvorme si adresár, do ktorého umiestníme vlastnú knižnicu komponentov C:\ALTERA_WORK\Altera_Lib a pripojte ho k projektu. Ak to chcete urobiť, stlačte tlačidlo v hlavnom menu možnosti potom PoužívateľKnižnice a von oknom Adresárnázov vstúpme na cestu c:\altera_work\altera_lib potom OK. Existujú dva spôsoby, ako umiestniť symbol na obrazovku, klikneme pravým tlačidlom myši na miesto, kam chceme prvok umiestniť, a v zobrazenom okne vyberieme ponuku Zadajte Symbol v okne Symbolnázov v zobrazenom okne zadajte názov prvku a kliknite OK. Alebo vyberte požadovanú knižnicu v okne SymbolKnižnice dialógové okno ZadajteSymbol a dvojitým kliknutím ľavým tlačidlom myši ho otvorte. Potom rovnakým spôsobom vyberte požadovaný prvok v okne SymbolSúbor. Ak je projekt malý a ste spokojní so všetkými prvkami v knižnici, týmto spôsobom nainštalujeme všetky potrebné prvky a spojíme ich kolíky pomocou vodičov. Ak to chcete urobiť, v grafickom editore vľavo sú ikony, keď na ne kliknete, môžete získať priame spojenie, čiary umiestnené v pravom uhle, sektory a kruhy, ak je čiara zvýraznená červenou farbou, môžete dať naň adresu pripojenia a nevytvárať samotné pripojenie. Vstupné a výstupné obvody sa kreslia výberom z knižnice prvkov vstup A výkon( v prípade potreby im priradíme meno). Ak chcete vykresliť logickú jednotku a nulu, zadajte vcc alebo gnd. A ak potrebujete vlastný symbol, musíte otvoriť nové okno grafického editora a nakresliť diagram komponentu Fig7, pomenovať ho a uložiť ho do knižnice c:\altera_work\altera_lib. Odkaz na súbor projektu a skompilujte kliknutím ctrl+L. Ak nie sú žiadne chyby, môžete skontrolovať činnosť obvodu pomocou simulátora.

Obr

Aby sme to urobili, otvoríme Tvar vlny Editor, uložte súbor pod rovnakým názvom. Na prvom riadku pod Názov: kliknite pravým tlačidlom myši a vyberte ponuku ZadajteuzlyodSNF v zobrazenom okne kliknite na tlačidlo Zoznam v okne DostupnéUzly &skupiny objavia sa všetky vstupy a výstupy nášho obvodu. Vyberieme potrebné (v tomto prípade IN A VON) A stlač tlačidlo => vybrané znaky sa skopírujú v pravom okne. Kliknite OK. V editore si môžete pozrieť oscilogram Obr.8. Pod menom Hodnota Môcť nastavte počiatočný stav vstupného signálu, kliknite ľavým tlačidlom myši na riadku vľavo sa v editore zobrazia ikony logickej 1 a 0, kliknutím na ikonu priradíme stav vstupu. Môžete zadať časovo premenný signál resp Zštát. Čas ukončenia oscilogramu je možné zadať v menu Súbor potom KoniecČas. Časové pečiatky sa nastavujú cez menu možnosti potom Grig Veľkosť.

Ak chcete zobraziť stav oscilogramu v priebehu času, spustite Simulátor stláčanie tlačidiel Ctrl+Shift+L. Oscilogram je možné vidieť na obr.9. Ak sme s výsledným modelom súčiastky spokojní, nakreslíme obrázok symbolu. Ak to chcete urobiť, otvorte editor symbolov, v hlavnom menu kliknite na Súbor potom Nový a vyberte položku SymbolEditor súbor A OK obr.6. Kliknutím ľavým tlačidlom myši nakreslíme obrys symbolu tak, že najskôr v ikone vyberieme kresliaci nástroj vľavo.

Dvakrát kliknite ľavým tlačidlom myši otvorte menu ZadajtePinstub vľavo v okne označujeme typ výstupu vstup alebo výstup ja/ OTyp. V okne PlnýPinstub názov Zadajte názov výstupu (v našom prípade IN vchod VON VÝCHOD). Veľkosti všetkých čiar a štítkov je možné meniť a presúvať kliknutím ľavým tlačidlom myši na presúvaný prvok. Súbor musí byť uložený pod rovnakým názvom ako súbor grafického editora v priečinku našej knižnice.

Po zatvorení všetkých pomocných okien môžeme do súboru projektu zadať symbol.

Uvažujme o praktickom zapojení trojmiestneho počítadla s dynamickou indikáciou Obr.10. Zdroj je namontovaný na čipe D 2 typu LM 317 a poskytuje napätie potrebné pre D 1.

OBR. 10

Výstupný prúd výbojov indikátora môže byť pri zapnutých všetkých indikátoroch cca 80 mA, preto sú výboje indikátora spínané tranzistormi VT 1-VT 3. Pre experimentálny model bol zvolený vnútorný obvod generátora, ktorého vonkajšie obvody sú odpory R 16, R 18, C 2, ale v V pracovnej schéme je lepšie urobiť generátor externý. Podľa autora FPGA nefungujú veľmi dobre s kapacitnou záťažou. Na pripojenie k programátoru je potrebný konektor X1.

Uvažujme o vnútornej štruktúre projektu Obr.11. Všetky komponenty boli vytvorené nanovo pomocou vyššie uvedenej metódy a uložené vo vlastnej knižnici komponentov.

OBR. 11

Komponenty na diagrame 0_3r_commutator– ide o trojmiestny spínač, ktorý postupne prepína číslice indikátora a tiež vydáva riadiace úrovne do multiplexerov 0_3 a_ alebo. Multiplexory spájajú desiatkové počítadlá v závislosti od zobrazenej číslice 0_2 b_10 d_ počítadlo Komu binárnesedemsegmentový dekodér 0_ bcd _7 seg . Názvy komponentov obsahujú predložku 0 _ ktoré označujeme ako prvok vlastnej knižnice. Na diagrame v projekte MAX+PLUS II sa dvojitým kliknutím ľavého tlačidla myši na komponente otvorí grafický editor a uvidíme diagram prvku. Obrázok 12 zobrazuje prepínač, ktorého obvod pozostáva zo štandardných knižničných primitív. názov NIE znamená invertor, DFFD spúšť, A2 - element A s dvoma vchodmi. Obrázok 13 ukazuje vnútorný diagram binárne desiatkové počítadlo. Obrázok 14 znázorňuje multiplexor. A ryža 15 binárnesedemsegmentový dekodér. Nižšie je uvedený zoznam niektorých megafunkcií štandardnej knižnice.

OBR. 12

OBR. 13

OBRÁZOK 14

Logické brány (Brány):

prvok lpm_and – AND

lpm_inv – prvok NOT (invertor)

lpm_bustri – trojstavová zbernica

lpm_mux - multiplexer

lpm_clshift - logický posun

lpm_or – prvok OR

lpm_constant - konštanta

lpm_xor – exkluzívny prvok OR

lpm_decode - dekodér

mux – multiplexor

busmux - multiplexer

OBRÁZOK 15

Aritmetické komponenty:

deliť* — deliteľ

lpm_compare - porovnávač

lpm_abs – absolútna hodnota

lpm_counter - počítadlo

lpm_add_sub – sčítačka/odčítač

lpm_divide — deliteľ

lpm_mult — multiplikátor

Pamäťové prvky:

altdpram* - dvojportová pamäť RAM

lpm_latch – register zámkov

lpm_shiftreg – posuvný register

dcfifo* — Dual-Clock FIFO

lpm_ram_dp - dvojportová pamäť RAM

scfifo* — Single-Clock FIFO

lpm_ram_dq – RAM so samostatnými vstupnými a výstupnými portami

csdpram – cyklicky zdieľaný duálny port

lpm_ram_io - RAM so spoločným vstupným a výstupným portom

lpm_ff — spúšťač

lpm_rom - ROM

lpm_fifo — Single-Clock FIFO

lpm_dff* — D – klopný obvod a posuvný register

lpm_fifo_dc — Dual-Clock FIFO

lpm_tff* – T-spúšťač

Ďalšie vlastnosti:

clklock - PLL (Phase-Locked Loop)

pll – pulzný okrajový detektor

ntsc – generátor videosignálu NTSC

Po vytvorení všetkých komponentov, nakreslení všeobecného diagramu projektu a vykonaní všetkých spojení je potrebné projekt uložiť a skompilovať. Ak nie sú žiadne chyby, musíte ísť do Tvar vlny Editor a ako sa to posudzovalo Vyššie sa uistite, že projekt funguje správne Obr.16.

OBRÁZOK 16

Obvod zapojený kompilátorom automaticky priraďuje vstupné a výstupné kolíky; Editor pôdorysu stlačením tlačidla. V tom istom editore môžete účel nôh ľubovoľne meniť. Ak to chcete urobiť, kliknite na tlačidlo a myšou potiahnite názvy kolíkov zobrazených v okne NepriradenýUzly a kolíky, na zodpovedajúce čísla pinov FPGA a potom znova skompilujte projekt. Po tomto budú všetky zmeny vykonané vo vnútornej štruktúre projektu, t.j. nezahŕňa pridanie alebo odstránenie kolíkov nezmení priradenie kolíkov.

Potom pripojíme obvod Fig10 cez konektor X1 k programátoru a programátor k počítaču (všetky tieto postupy robíme s vypnutým počítačom) a napájame obvod. Otvorenie okna Programátor a stlačte tlačidlo Program. Po načítaní programu sa obvod prepne do prevádzkového režimu. Táto metóda vám umožňuje zmeniť vnútorný obvod zariadenia v závislosti od meniacich sa úloh bez toho, aby ste zmenili dosku s plošnými spojmi.

Napriek zjavnej zložitosti učenia sa softvérového prostredia MAX+PLUS II budete môcť robiť projekty oveľa rýchlejšie, pretože navrhovanie a ladenie na počítači poskytuje viac informácií ako vytváranie obvodu na doske a ďalšie skúmanie pomocou osciloskopu. Ako už bolo uvedené, získané výsledky možno úspešne použiť pri výrobe konštrukcií založených na sérii 155-555.

Čakali ste na znamenie? Tu je!

Dlhé roky som váhal, či začať s programovaním FPGA, pretože to bolo náročné, drahé a bolestivé (ako sa mi zdalo). Ale je dobré mať priateľov, ktorí vám pomôžu urobiť prvý krok. A teraz nerozumiem jednej veci - PREČO SOM TAK DLHO ČAKALA?

Teraz vám pomôžem urobiť prvý krok aj ja!

Prečo to potrebujem?

Nebaví vás neustále čítať dokumenty na MK alebo držať v hlave kopu informácií. Všetko ste prepísali v asm, ale rýchlosť stále nestačí. K MK ste pripojili dve externé zariadenia, pripojíte tretie, ale vyčerpali ste prerušenia, tie moduly, ktoré už fungovali, prestávajú fungovať. Vezmeš si iný MK, výkonnejší z tej istej rady, ale zase manuály, vlajkové registre, bity... peklo. Zmeníte platformu: prejdete na inú MK a zahodíte svoje znalosti z predchádzajúcej platformy. Bez ohľadu na to, čo robíte, je to ťažké. Nachádzate populárnu platformu, v ktorej si môžete jednoducho poskladať projekt z komponentov, no napriek tomu nemôžete preskočiť hardvérové ​​obmedzenia tohto MK... Niekde na okraji vášho vedomia sa občas vynorí myšlienka, že na FPGA toto určite by to fungovalo rýchlo a paralelne, čo je to „presne ten problém, ktorý treba vyriešiť, prosím“, ale som príliš starý/hlúpy/zaneprázdnený/atď., aby som to mohol/začať robiť.

Chcete konečne voľne dýchať? Pokračujte!

Radosť z vývoja na FPGA

Mal som ťažký deň v práci. Z jednej práce som prišiel do druhej, potom na dačo, večer som robil úlohy, úlohy, potom rodinný film a až o 23:00 som bol úplne voľný! Povedať, že som bol unavený, neznamená nič. Ale v tomto stave som si sadol k notebooku s pevným cieľom: vyrobiť 440 Hz generátor štvorcových vĺn. Prešlo 20 minút a už som to počul v slúchadlách. Neveril som vlastným ušiam! Trvalo mi ďalších 15 minút, kým som urobil PWM a zmenil hlasitosť. V tom čase som mal dosku FPGA len asi týždeň a predtým som prečítal len pár kníh o Verilog.

V ten večer som si uvedomil: TU JE TO! Toto je platforma, kde môžem rýchlo a ľahko premeniť svoje myšlienky na skutočne fungujúci hardvér!

prečo je to tak?

Popíšem výhody, ktoré má štúdium a používanie FPGA, hoci ich už každý pozná:
  • Univerzálnosť vedomostí- pri zmene modelu MK je potrebné prečítať si dokumentáciu. Pri zmene výrobcu MK si musíte prečítať dokumentáciu. Musíte neustále čítať dokumenty, neustále mať v hlave veľa informácií. Pri vývoji na FPGA, ak poznáte Verilog alebo VHDL, môžete nielen naprogramovať ľubovoľné FPGA z radu jedného výrobcu, ale ak chcete, aj prejsť na iného (Altera, Xilinx). Síce sa vyskytnú chvíle pri zvládnutí odlišného vývojového prostredia a jemných hardvérových problémov, samotná podstata prístupu k navrhovaniu zariadení v HDL sa tým nezmení.
  • Od nápadu k hardvéru- ak vám pri vývoji projektu chýba jeden mikrokontrolér, musíte si vybrať iný. V zásade môžete urobiť predpoklady o tom, či sa tento MK s projektom vyrovná alebo nie. Alebo je tam konkrétny MK a snažíš sa tam napasovať projekt. Najčastejšie je to tak. Trochu mi to pripomína prístup môjho starého otca, ktorý si z toho, čo má v kôlni, robí rebrík. Hoci si môžete navrhnúť schodisko, kúpte si dosky, ktoré budú pasovať... Od nápadu k hardvéru, a nie naopak.
  • Jednoduché použitie vývoja iných ľudí- Môžete si vziať modul niekoho iného a použiť ho vo svojom projekte. Z kódu môžete pochopiť, ako to funguje. Aj keď je to pre Xilinx a robíte to pod altera. Niekedy to nedopadne dobre, ale je to jednoduchšie ako napríklad pridávanie binárnych knižníc do projektu C++/Qt
  • Blokovať nezávislosť. Bloky v HDL sú ako čisté funkcie v jazyku. Spoliehajte sa len na vstupné signály. Vyvinutý a odladený modul bude naďalej správne fungovať bez ohľadu na to, ako projekt rastie. Nič zvonku neovplyvní správnu činnosť zvnútra. A vo všeobecnosti môžete zabudnúť, ako to funguje - je to čierna skrinka. Navyše bloky fungujú paralelný.

Problém výberu

Existuje veľa otázok o tom, čo si vybrať: Altera/Xilinx, Verilog/VHDL, akú ladiacu dosku si vziať. Ale najprv to.

Výrobca

vybral som si Altera. prečo? No a takto sme sa s kamarátkou rozhodli, aj keď názov Xilinx je pre mňa krajší. ALE. Ak si teraz nemôžete vybrať, urobím to za vás. Potrebujete Altera! prečo? Neviem. Teraz je dôležitejšie urobiť krok: rozhodnúť sa. Vybral som si Altera a doteraz neľutujem.



Jazyk

Vezmime si to Verilog - pretože... No chápeš.

Vývojová rada

Najviac času zabral výber vývojovej dosky. Je jasné, že dosky sa líšia osadeným FPGA čipom. A FPGA čipy sa od seba líšia počtom prvkov. Nie je však vôbec jasné, koľko z nich bude potrebných pre vaše testovacie projekty. Väčšinu času som preto strávil hľadaním najrôznejších projektov FPGA, aby som zistil, koľko spotrebúvajú zdroje FPGA.

V rodine Altera si za rozumné peniaze môžeme kúpiť dosky s CPLD MAX II s 240, 570 a 1270 prvkami, alebo staršie FPGA čipy ako Cyclone 1, 2, 3, 4 až s 10 000 a viac článkami. Ako si vybrať?

Aj na základe 240 článkov robí projekt Mars Rover len obrovské množstvo projektov. Dôrazne vám odporúčam, aby ste si ho prečítali, aby ste získali približnú predstavu o zložitosti projektov, ktoré sa zmestia do 240 buniek. Na druhej strane existujú projekty, ktoré sú kompletne naprogramované pre hardvérovú kópiu konkrétneho PC, vrátane procesora a všetkej logiky okolo neho (NES, Speccy, Orion, YuT-88 atď.). To už vyžaduje päť, desať alebo viac tisíc buniek. Navyše tieto dosky obsahujú ďalšie externé zariadenia.

Preto by som odporučil vziať niečo medzi 240 až 10 000 bunkami, pričom uprednostnite väčšie v závislosti od dostupných finančných prostriedkov. Na doske na ladenie nie sú extra bunky veľkým problémom, ale ak ich nie je dosť, nemôžete s tým nič robiť. Potom, keď je zariadenie odladené, bude jasné, koľko buniek je potrebných, kúpte si potrebné množstvo, bez zbytočného „bodykitu“, lacnejšie a nechajte ho v hotovom zariadení.

Čo skutočne odlišuje MAX od Cyclones, okrem počtu buniek, je:
1) Séria MAX nemá vo vnútri PLL. Každá vývojová doska má oscilátor, zvyčajne 50 MHz. To bude stačiť pre väčšinu projektov. Celá synchronizácia sa uskutoční vydelením 50 MHz nejakou hodnotou. Alebo môžete vziať externý generátor a napájať ho na samostatný vstup FPGA. Čo ak potrebujete frekvenciu vyššiu ako 50 MHz? Nepodarilo sa mi okamžite nájsť oscilátory nad 50 MHz. Ale tu prichádza na pomoc PLL, ktorý je zabudovaný do Cyclones. Na ňom môžete znásobiť frekvenciu napríklad až na 100 MHz.
2) Séria Cyclone má vstavané hardvérové ​​multiplikačné jednotky. Ich počet závisí od konkrétneho modelu - tu si stále môžete „pozrieť pokyny“ a zistiť, koľko. Ak plánujete urobiť nejaký druh DSP, budú sa hodiť: ušetria bunky a zvýšia rýchlosť. Na druhej strane, ak neexistujú žiadne multiplikátory, môžu byť syntetizované, ale malé FPGA na to nemusí mať dostatok zdrojov.

Vo všetkých ostatných ohľadoch mám kritérium „vhodnosť/nevhodnosť“. Ladenie na doske, ktorá je zjavne väčšia, ako je potrebné, s následným naplnením minimom potrebným na to.

Koľko peňazí je potrebných?


Programátor
Verím, že nemám čas vo veľkom spájkovať programátorov.

300 rubľov. Mám to svoje na eBay, vyzerá to takto:

Vývojová rada
Výber je široký, závisí od množstva peňazí.

Prvá úroveň 350 - 550 rubľov. Ide o dosky na báze MAX II (alebo buniek). Môže byť vhodný na prvotné zoznámenie a ďalšiu integráciu do koncových zariadení. Doska má generátor, pár tlačidiel, pár LED diód a zvyšných 80 pinov podľa vlastného uváženia.

pohonná jednotka
Je to must have, ale nie je to vždy zahrnuté. Budete potrebovať 5V napájací zdroj a prúd 2A.

Priemerná úroveň od 900 do 1500 rubľov. Ide o dosky Cyclone 1, 2, 3, 4 líšiace sa najmä počtom článkov.
Sú označené asi takto:
E.P. 2 C 5 T144 - Cyklón 2 približne 5k buniek
E.P. 4 C.E. 6 E22C8N - Cyklón 4 približne 6k buniek
E.P. 2 C 8 Q208C8N - Cyklón 2 približne 8k buniek

Môžete si všimnúť, že cyklón 3 môže mať viac buniek ako cyklón 4.

Tu je niekoľko možností:

835 rubľov.
Minimálna systémová doska ALTERA FPGA CycloneII EP2C5T144 pre dobré učenie

880 rubľov
Altera CycloneII EP2C5T144 FPGA Mini Development Learn Core Board E081

1265 rubľov
EP2C8 EP2C8Q208C8N ALTERA Cyclone II FPGA Hodnotenie vývojová základná doska

Pokročilé dosky . Ide o dosky, na ktorých sú osadené prídavné moduly (UTP, USB, AUDIO), konektory (SD, VGA), tlačidlá, spínače, LED diódy, sedemsegmentové indikátory atď. Alebo môže existovať základná doska a na ňu môžu byť samostatne pripevnené rozširujúce dosky.

Mám nasledovnú pracovnú zostavu - doska + rozširovacia doska:
Altrea EP4CE10E22 FPGA jadrová doska + doska zariadenia USB/zvuk/ethernet/SD karta/VGA
2760 rubľov

Tu je hlavná doska. Má 2 LED diódy, 2 tlačidlá, 4 spínače, sedemsegmentový indikátor a RAM čip.

Rozširujúca doska. Obsahuje SD, VGA, ako aj USB radiče (High Speed ​​​​USB2.0 Chip: CY7C68013A), AUDIO (Zvuková karta až 96kHz/32bit ADC/DAC: WM8731S), UTP (100M Ethernet rozhranie: DM9000A):

Tieto dosky sú jednoducho zasunuté do seba, ale stále to mám v šuplíku. Pre svoje remeslá mám dosku na krájanie, ku ktorej sa pripájam pomocou kábla, ktorý je súčasťou súpravy. Súčasťou je aj 5V napájací zdroj.

Pokračovanie v téme:
Zmiešaný

Pomerne často v poslednej dobe veľa ľudí namiesto výroby napríklad osciloskopu z počítača radšej jednoducho kúpi digitálny USB osciloskop. Po prechádzke však...