Újrakonfigurálható eszközök 1. CPLD komplex programozható logikai eszközök 1
Tartalom Újrakonffigurálható eszközök: PAL, PLA, CPLD, FPGA Az ALTERA MAXII EPM240 CPLD bemutatása A C-M240 fejlesztői kártya Az USB Blaster profigramozó eszköz Az ALTERA Qartus Prime Lite fejlesztői környezet Új Qartus projekt létrehozása Áramkörtervezés hafigyományos rajzjelekkel Áramkörtervezés Verilog nyelven Áramkörtervezés VHDL nyelven 2
Újrakonfigurálható eszközök Anfigol mefignevezés: Profigrammable Lofigic Devices. A kombinációs lofigikai hálózatok és sorrendi hálózatok tervezésére használjuk. A hafigyományos lofigikai IC-k dedikált összekötetésekkel, illetve kötöt funkcióval (kimeneti füfigfigvény) rendelkeznek. A profigramozható lofigikai eszközökben ezek változtathatók: A felhasználó által egyszer programozható/konfigurálható logikai eszközök (OTP::: One Time Programmable), amelynél a gyártás során nem definiált funkció egyszer még megváltoztatható (ilyenek pl. a korai PAL, PLA eszközök) Többször, akár tetszőleges módon programozható (újrakonfigurálható) logikai eszközök (ilyenek pl. a korábbi GAL, vagy a mai modern CPLD és FPGA eszközök) CPLD Complex Programmable Logic Device FPGA Field Programmable Gate Array 3
PAL, PLA, CPLD, FPGA és FPGA 4
ALTERA MAX II CPLD család Az EPM240C100T5N CPLD IC az ALTERA (újabban Intel) MAX II termékcsaládba tartozik. Főbb jellemzői:240 db. lofigikai elem, kis fofigyasztású, olcsó CPLD 50 MHz órajel, max. 3,3 V tápfesz és jelszint, busz-barát kiés bemenetek, Schmit-trifigfigeres bemenet, JTAG újrakonffigurálhatósáfig (tipikusan 100-szor), 8kbit felhasználói FLASH memória (UFM). Logikai tömb (LAB) 10 logikai elemből áll EPM240 6x4x10 db logikai elem (LE) 5 Konfigurációs flash (CFM) UFM
Egy logikai elem felépítése LUT: Look up table (keresőtábla) A regiszter konfigurálható D, T, JK, vagy SR módba. 6
A logikai elemek működési módjai Az ALTERA MAX II lofigikai elemei kétféle módban működhetnek: Normál mód (általános logikai alkalmazásokhoz, kombinációs hálózatokhoz) Dinamikus aritmetikai mód (összeadó, számláló, akkumulátor, komparátor) Normál mód: 1 db 4-bemenetű LUT (Lookup Table) 7
A logikai elemek működési módjai Dinamikus aritmetikai mód: 4 db 2-bemenetű LUT 8
A Carry Select lánc használata A Carry-select lánc segítségével gyors átvitelképzés valósítható meg. 9
Az I/O modulok felépítése 10
A C-M240 fejlesztői kártya Gyártó: Shenzhen 21EDA Electronic Technology CPLD: Altera MAX II EPM240T100C5N Órajel: 50 MHz VDD: 3,3 V Perifériák: 8-digit kijelző, 8 LED, 4 +1 nyomógomb, 1 csipogó 11
C_M240 kapcsolási rajz I. 12
C_M240 kapcsolási rajz II. 3,3 V 3,3 V-os feszültségstabilizátor (5 V-os bemenet, kapcsolóval) EPM240T100C5N ALTERA MAX II 50 MHz oszcillátor 13
USB Blaster programletöltő Sok változata van, a lefigolcsóbb utánzat csupán efigy PIC18F14K50 mikrovezérlőből áll. Windowsos meghajtóprogramja a Qartus telepítési könyvtárában, nálam például az Altera\17.0\quartus\ drivers\usb-blaster mappában található. 14
Qartus Prime Lite fejlesztői környezet Az Intel (korábban ALTERA) Qartus Prime intefigrált fejlesztői környezete mindent tartalmaz, ami az FPGA/CPLD fejlesztésekhez szükséfiges (beleértve a szimulációt is). A Qartus Prime Lite infigyenes, de csökkentet tudású kiadás (a kiadások összehasonlít táblázata it található.) Letöltési link: htp://dl.altera.com/?edition=lite Az általunk használt EPM240 eszközhöz az alábbi komponensekre lesz szükséfig: Qartus Prime (free) ModelSim-Intel FPGA Edition MAX II, MAX V device support 15
Letöltések Windows vagy Linux kiadás válaszható Ezt a három szoftvert töltsük le! 16
A telepítés menete Töltsük le a Qartus Prime profigramot és a telepíteni kívánt kiefigészítő szofvereket (esetünkben a ModelSim-Intel FPGA Edition) efigy ideifiglenes könyvtárba! Töltsük le az eszköztámofigató kiefigészítést (esetünkben a MAX II, MAX V device support-ot) ufigyanabba a könyvtárba, ahová a Qartus Prime telepítőjét letöltötük! Indítsuk el a QartusLiteSetup-17.0.0.595-windows.exe állományt! Minden kiefigészítő szofver komponens is automatikusan telepítve lesz, amelyeket ufigyanabba a könyvtárba töltötünk le, ahová a Qartus Prime telepítőjét letöltötük. 17
Az első lépések A nyitó képernyőkép 18
Új projekt létrehozása Indítsuk el a File > New Project Wizard menüpont aktiválásával az új projektet konffiguráló tündért! Hozzuk létre és adjuk mefig az új projekt munkakönyvtárát! Adjunk nevet a projektnek, majd katintsunk a Next figombra! 19
Új projekt konfigurálása Válasszuk az Empty project (üres projekt) opciót! Katintsunk a Finish figombra! Katintsunk kétszer a Next figombra (átlépjük az Add Files lapot)! Válasszuk ki a MAX II családot! Válasszuk a Specifc device opciót! Válasszuk ki az EPM240T100C5 eszközt! 20
Áramkörtervezési lehetőségek A Qartus Prime háromféle tervezési módot támogat: Kapcsolási rajz Verilog HDL Példa: Egyszerű kombinációs logika VHDL Verilog: module LED_NOT_KEY ( A, F ); input KEY_IN; output LED_OUT; assign LED_OUT = ~KEY_IN; endmodule A következőkben ezeket a lehetőségeket vesszük sorraa VHDL: entity LED_NOT_KEY is port ( key_in : in std_logic ; led_out : out std_logic ); end LED_NOT_KEY; architecture key_led_arch of LED_NOT_KEY is begin led_out <= not key_in; end architecture; 21
Áramkörtervezés diagramszerkesztővel Hozzunk létre efigy kapcsolási rajzot a File > New > Block diagram/schematic fle menüpont kiválasztásával! A rajzeszközök felhasználásával szerkesszük mefig az alábbi kapcsolást! A kétszeres invertálás azért kell, mert a nyomófigombok és a LED-ek is nefigatív lofigika szerint vannak bekötve (alacsony szint az aktív jel). Ha készen van a rajz, mentsük el az (foppy ikonra katintva)! Kapuáramkörök I/O kivezetések Összekötés 22
A nem használt kivezetések konfigurálása Mielőt tovább lépnénk, mefig kell adni, hofigy a nem használt kivezetések milyen üzemmódba lefigyenek beállítva. Az alapértelmezet alacsony szintű kimenetre állítás esetén a C-M240 kártyán mindent bekapcsolunk (a sípolót is!). Ehelyet állítsuk a nem használt kivezetéseket bemenetnek (As input tristated)! Ehhez aktiváljuk az Assignments > Device menüpontot, majd a felbukkanó ablakban katintsunk a Device and pin options figombra! A felbukkanó újabb ablakban válasszuk ki az Unused Pins katefigóriát és állítsuk be az As input tri-stated opciót! Zárjuk be a felbukkanó ablakokat az OK figombra katintva! 23
Kivezetések hozzárendelése A hozzárendelés célja, hofigy mefigadjuk: a KEY_IN és a LED_OUT csomópontok mely kivezetésekhez csatlakozzanak. A 8 db LED katódjai rendre az 51 58 sorszámú kivezetésekhez kapcsolódnak, a kivezetés alacsony szintre húzásával figyújthatók ki. Mi most az 58. kivezetéshez tartozó LED-et fofigjuk használni. A K4 K1 nyomófigombok rendre a 26 29 sorszámú kivezetésekhez kapcsolódnak, s lenyomáskor alacsony szintre húzzák a mefigfelelő lábat. A hozzárendelések előt indítsunk efigy fordítást (lejátszás figomb), vafigy a Processing > Start > Start Analysis & Elaboration menüpontot aktiváljuk! A kivezetések hozzárendelését az Assignment Editor vafigy a Pin Planner szerkesztővel véfigezhetjük el. 24
Az Assignment Editor használata Aktiváljuk az Assignments > Assignment Editor menüpontot! A felbukkanó ablakban katintsunk a List figombra, majd dupla katintással, vafigy a > figombbal másoljuk át a jobboldali ablakba a KEY_IN és LED_OUT elemeket! Zárjuk be a felbukkanó ablakot az OK figombbal! Katintsunk az új ablak baloldalán a <<new>> dobozra! Katintsunk duplán az új sor To mezőjére, majd az ot mefigjelenő Node fnder ikonra (ne a lefigördítő nyílra)! 25
Az Assignment Editor használata Töltsük ki a táblázat Assignment Name és Value celláit az alábbiak szerint, majd mentsük el a hozzárendeléseket a foppy ikonra katintva, vafigy a File > Save menüpontot aktiválva! Fordítsuk le a projektet a lejátszás figombra katintva, vafigy a Processing > Start Compilation menüpontot aktiválva! 26
A konfigurációs kód letöltése Sikeres fordítás után a Tools > Progammer menüpont aktiválásával indítsuk el a letöltő profigramot! A felbukkanó ablakban ellenőrizzük, illetve szükséfig esetén véfigezzük el a beállításokat! A Hardver Setup figombnál az USB Blaster eszköz lefigyen beállítva! Véfigül katintsunk a Start figombra és várjuk mefig, amífig befejeződik az írás! Az ablak alsó felében az EPM240T100 eszköz lefigyen kiválasztva! A File rovatban az output_fles/project01.pof állomány neve látszódjon, s jelöljük be a Profigram/Conffigure és ízlés szerint a Verify oszlopban is a jelölőnéfigyzeteket (ezekben lefigyen pipa)! 27
A konfigurációs kód letöltése 28
Áramkörtervezés Verilog nyelven A project02 projekt létrehozása és beállítása hasonlóan történik, mint az előzőekben, csak áramköri rajz létrehozása helyet a File > New menüben efigy Verilog HDL hardverleíró (szövefiges) állományt hozunk létre. A modul neve mefig kell, hofigy efigyezzen azzal a névvel, amit a Top level Entity kapot a projekt létrehozásakor! A változatossáfig kedvéért most a PIN_26-ra kötöt K4 nyomófigombot és a PIN_51-re kötöt LED-et használjuk. 29
Áramkörtervezés VHDL nyelven A project03 projekt létrehozása efigy VHDL hardverleíró állományt hoztunk létre. A KEY_LED entitás neve mefigefigyezik azzal a névvel, amit a Top level Entity kapot a projekt létrehozásakor! Az első projekthez hasonlóan most is a PIN_29-re kötöt K1 nyomófigombot és a PIN_58-re kötöt LED-et használjuk. 30
Felhasznált irodalom ALTERA: MAX II Device Handbook Véfigh János: Bevezetés a Verilog hardverleíró nyelvbe Véfigh János: Sefigédeszközök az Altera DE2 tanulói készlethez Véfigh János: Bevezetés a Qartus II V13 fejlesztő rendszerbe 31