12. hét: Kombinációs hálózatok megvalósítása LSI/MSI áramkörökkel (PAL, PLA, PROM, CPLD), VLSI (FPGA) áramkörökkel és memóriával.

Hasonló dokumentumok
Számítógép Architektúrák (MIKNB113A)

Előadó: Nagy István (A65)

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Rendszertervezés FPGA eszközökkel

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

FPGA áramkörök alkalmazásainak vizsgálata

elektronikus adattárolást memóriacím

7.hét: A sorrendi hálózatok elemei II.

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

Mikrorendszerek tervezése

PLA és FPLA áramkörök

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt : FPGA-alapú beágyazott rendszerek tervezése

A Xilinx FPGA-k. A programozható logikákr. Az FPGA fejlesztés s menete. BMF KVK MAI, Molnár Zsolt, 2008.

Számítógép felépítése

Digitális Rendszerek és Számítógép Architektúrák

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt

Pannon Egyetem, MIK-VIRT, Veszprém. Dr. Vörösházi Zsolt

Beágyazott Rendszerek és Programozható Logikai Eszközök (Villamosmérnök BSc)

Digitális Rendszerek és Számítógép Architektúrák (Levelező BSc)

PAL és GAL áramkörök. Programozható logikai áramkörök. Előadó: Nagy István

Memóriák. Digitális Rendszerek és Számítógép Architektúrák 2011

DIGITÁLIS TECHNIKA. Szabó Tamás Dr. Lovassy Rita - Tompos Péter. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar LABÓRATÓRIUMI ÚTMUTATÓ

Témakiírások 2014/15. őszi félévben

1. Kombinációs hálózatok mérési gyakorlatai

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Bepillantás a gépházba

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

Digitális Rendszerek és Számítógép Architektúrák

Kombinációs hálózatok Adatszelektorok, multiplexer

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Digitális áramkörök és rendszerek alkalmazása az űrben 3.

DIGITÁLIS TECHNIKA I

8.3. AZ ASIC TESZTELÉSE

Dr. Kincses Zoltán, Dr. Vörösházi Zsolt: FPGA-alapú beágyazott rendszerek tervezése

DIGITÁLIS TECHNIKA feladatgyűjtemény

Digitális rendszerek tervezése FPGA áramkörökkel

A számítógép egységei

Integrált áramkörök/5 ASIC áramkörök

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Digitális technika (VIMIAA02) Laboratórium 4

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok

PAL és s GAL áramkörök

Digitális technika (VIMIAA02) Laboratórium 4

Szűrő architektúrák FPGA realizációjának vizsgálata

Digitális eszközök típusai

Számítógép Architektúrák (MIKNB113A)

Dr. Oniga István DIGITÁLIS TECHNIKA

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Szekvenciális hálózatok és automaták

Digitális rendszerek tervezése FPGA áramkörökkel

VIII. BERENDEZÉSORIENTÁLT DIGITÁLIS INTEGRÁLT ÁRAMKÖRÖK (ASIC)

Máté: Számítógép architektúrák

A mikroprocesszor felépítése és működése

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István Egytemi docens

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

LOGSYS LOGSYS KINTEX-7 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ április 3. Verzió

DIGITÁLIS TECHNIKA I

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK

5. Hét Sorrendi hálózatok

DIGITÁLIS ADATTÁRAK (MEMÓRIÁK)

Nagy Gergely április 4.

Dr. Vörösházi Zsolt: Beágyazott rendszerek fejlesztése (FPGA) A felsőfokú informatikai oktatás minőségének fejlesztése, modernizációja

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

Funkcionális áramkörök vizsgálata

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

Elvonatkoztatási szintek a digitális rendszertervezésben

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Digitális rendszerek tervezése FPGA áramkörökkel

Fábián Zoltán Hálózatok elmélet

A PET-adatgy informatikai háttereh. Nagy Ferenc Elektronikai osztály, ATOMKI

Programozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016

Számítógépek felépítése

Újrakonfigurálható eszközök

Kombinációs hálózatok és sorrendi hálózatok realizálása félvezető kapuáramkörökkel

Számítógépek felépítése

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

PROGRAMOZHATÓ LOGIKAI ESZKÖZÖK. Elıadó: Dr. Oniga István Egytemi docens

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Hobbi Elektronika. A digitális elektronika alapjai: További logikai műveletek

Számítógép fajtái. 1) személyi számítógép ( PC, Apple Macintosh) - asztali (desktop) - hordozható (laptop, notebook, palmtop)

DIGITÁLIS TECHNIKA II Dr. Lovassy Rita Dr. Pődör Bálint MEMÓRIÁK

DIGITÁLIS TECHNIKA II Dr. Lovassy Rita Dr. Pődör Bálint

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

Digitális technika (VIMIAA02) Laboratórium 3

Digitális rendszerek. Mikroarchitektúra szintje

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Máté: Számítógép architektúrák

Hobbi Elektronika. A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök

Digitális technika (VIMIAA02) Laboratórium 3

Joint Test Action Group (JTAG)

Előadó: Dr. Oniga István DIGITÁLIS TECHNIKA 3

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Átírás:

Pannon Egyetem Villamosmérnöki és Információs Tanszék Digitális Áramkörök (Villamosmérnök BSc / Mechatronikai mérnök MSc) 12. hét: Kombinációs hálózatok megvalósítása LSI/MSI áramkörökkel (PAL, PLA, PROM, CPLD), VLSI (FPGA) áramkörökkel és memóriával. Előadó: Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu

Kapcsolódó jegyzet, segédanyag: http://www.virt.uni-pannon.hu Oktatás Tantárgyak Digitális Áramkörök (Villamosmérnök BSc / Mechatronikai mérnök BSc/MSc). Fóliák, óravázlatok (.ppt) Feltöltésük folyamatosan 2

Kombinációs hálózatok / szekvenciális hálózatok (LSI/MSI): Korábban: Memóriák: RAM, ROM nagy memóriatömbök alkalmazása K.H.-ban Programozható logikai áramkörök alkalmazása K.H., illetve S.H. felépítésére: PAL (Programmable AND Logic) PLA (Programmable Logic Array) PROM (Programmable OR Read Only memory) GAL (Generic Array Logic) PLD / CPLD (Complex Programmable Gate Array) FPGA (Field Programmabla Gate Array) 3

Programozható logikai eszközök (PLD-k) 4

Állapotgép FSM tervezés tulajdonságai Két kombinációs logikai hálózatból és egy regiszterből áll Tervezés során az állapot-átmeneteket vesszük figyelembe, DE Hibavalószínűség nagy, Szimulációs eszközök (CAD Tools) hiánya, Hibák lehetségesek a prototípus fejlesztése során is, Könnyen konfigurálható / flexibilis eszközök szükségesek mindezek használunk programozható alkatrészeket Inputs Combinational Logic Status Register Decode Logic Outputs 5

Field Programmable Logic Sequencer (FPLS) Logikai sorrendvezérlő Egy vezérlő egység Next-State logikai blokkjának megvalósítása a tervező, gyártó feladata. Általában változó logikát használnak a függvények megvalósításánál. A felhasználó által programozható logikai sorrendvezérlő (Field Programmable Logic Sequencer) programozható alkatrészekből építhető fel, amelyek a következőkben részletesen ismertetésre kerülnek. 6

Field Programmable Logic Sequencer (FPLS) Logikai sorrendvezérlő Serial In Clock Működése: Inputs 16 AND Array OR Array REG 8 Outputs - Normál (D-FF), - Debug (Shift Reg.) REG 6 Serial Out A logikai sorrendvezérlőnek 16 külső bemeneti vonala van, 1 RESET és 1 kimenetengedélyező vonala, ill. 8 kimeneti vonala. A regiszterek egy-egy állapotot tárolnak, amelyek az órajel hatására a kimenetre íródnak, vagy a 6 belső, visszacsatoló vonalon keresztül visszacsatolódnak. A Next-State ill. a kimeneti szintek meghatározásánál programozható AND/OR tömböket használnak. 7

Tervezési módszerek Digitális logikai áramkörök tervezési módszerei Részben egyedi Egyedi Programozható logikai eszközök Kapu áramkörök (Gate Arrays) Szabványos cellák (Standard Cell) Teljesen egyedi (Full Custom) Programozható kapu-áramkörök FPGA Makrocellás PLA, PAL, GAL, CPLD, * PLD-k helyettesíthetnek akár kombinációs hálózatot (hasonlóan egy memória elemhez). 8

PLD Programozható logikai eszközök A Programozható logikai áramköröket (PLD: Programmable Logic Devices) általánosan a kombinációs logikai hálózatok és sorrendi hálózatok tervezésére használhatjuk. Napjainkban ezek VLSI (Very-Large Scaling Integrated IC ) típusú alkatrészek: Több tíz-millió logikai kaput, vagy tranzisztort jelenthet Azonban míg a hagyományos kombinációs logikai hálózatok dedikált összeköttetésekkel, illetve kötött funkcióval (kimeneti függvény) rendelkeznek, addig a programozható logikai eszközökben pontosan ezek változtathatók, az alábbi lehetséges módokon: 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 megváltoztatható (ilyenek pl. a korai PAL, PLA eszközök), Többször, akár tetszőleges módon programozható logikai eszközök = újrakonfigurálható (ilyenek pl. a korábbi GAL, vagy a mai modern CPLD, FPGA eszközök) 9

Programozható logikai eszközök (PLD-k) két fő típusa: 1.) Makrocellás PLD-k: (Programmable Logic Devices): PLA PAL GAL PROM EPLD, CPLD 2.) FPGA (Field Programmable Gate Array): Programozható Gate Array áramkörök XILINX (Spartan, Virtex, Kintex, Artix) ~ 50%! Altera (Stratix, Arria, Cyclone), ~30% Actel (főleg űrkutatásban alkalmazott) Lattice sorozatok QuickLogic További kisebb gyártók termékei 10

Programmable Logic Array (PLA) Mindkét része (AND, OR) programozható Bármely kombinációja az AND / OR-nak előállítható Mintermek OR kapcsolata (DNF) Programozható kapcsolók a horizontális/ vertikális vonalak metszésében Q n Kimeneteken D tárolók! (visszacsat. a bemenetekre) A B C D Programozható ÉS tömb Programozható VAGY tömb Q0 Q1 Q2 Q3 11

PLA 1970-ben, a TI (Texas Instruments) által kifejlesztett eszköz mindkét részhálózata (ÉS, illetve VAGY tömb) programozható összeköttetéseket tartalmazott, amelyek segítségével tetszőleges mintermek tetszőleges VAGY kapcsolata előállítható (DNF alakot), ezáltal bármilyen kombinációs logikai hálózat realizálható volt (természetesen adott bemenet, ill. kimenet szám mellett). A programozható ÉS / VAGY tömbökben úgynevezett programozható kapcsolók vannak elhelyezve a horizontális/ vertikális vonalak metszéspontjában. Amennyiben a Qn kimenet(ek)re tárolókat kötünk (pl. egyszerű D tárolót), majd pedig visszacsatoljuk a programozható logikai hálózat bemenete(i)re akár egy sorrendi hálózati viselkedést is meghatározhatunk. 12

Programozásuk (Fuse) biztosítékok segítségével Az összeköttetés mátrix metszéspontjaiban akár kis biztosítékok (fuse) helyezkednek el. Gyárilag pl. logikai 1 -est definiál, tehát vezetőképes. Ha valamilyen spec. programozó eszközzel, a küszöbnél nagyobb feszültséget kapcsolunk rá, átégethető, tehát szigetelővé (nem-vezető) válik, és logikai 0 -át fog reprezentálni. A biztosíték átégetése, csak egyszer lehetséges, utána már csak a programozott állapotot fogja tárolni (OTP One time programmable IC). 13

Példa: PLA tervezése Realizálja a következő függvényeket: X = C + A B + A B Y = C D E + A C D W Z = C D E + B C D E + B D = A C D + B D + C D E + C D E Tehát 5 bemenete (A,B,C,D,E) és 4 kimenete (X,Y,W,Z) van. Rajzoljuk fel a kapcsolást is! 14

Programmable AND Logic (PAL) A B C D Egy programozható rész - AND / míg az OR fix Véges kombinációja áll elő az AND / OR kapcsolatoknak Metszéspontokban kevesebb kapcsoló szükséges Gyorsabb, mint a PLA Q n kimeneteken D tárolók (visszacsatolódhatnak a bemenetekre) Programozható ÉS tömb Rögzített/Fix VAGY tömb Q0 Q1 Q2 Q3 15

PAL Elsőként, 1978-ban az MMI (Monolithic Memories Inc.) jelent meg ilyen programozható eszközökkel, majd pedig későbbi jogutódja a Lattice Semiconductor, illetve az AMD a 80 -as évek végén. A PAL hálózatban a programozható részt az ÉS tömb jelenti, míg az VAGY tömb fix/rögzített. Így a tetszőleges mintermeknek csak egy véges kombinációja (VAGY) állítható elő: a lehetséges kimeneti függvények variálhatóságból veszítünk, cserébe viszont a VAGY részek dedikált útvonalainak jelterjedési sebessége nagyobb, míg az eszköz mérete kisebb és ezáltal olcsóbb is lesz. Ezáltal a metszéspontokban kevesebb kapcsoló szükséges ( gyorsabb, mint a PLA). Hasonlóan a PLA-khoz, amennyiben a Qn kimenet(ek)re tárolókat kötünk (pl. egyszerű D tárolót), majd pedig visszacsatoljuk a programozható PAL logikai hálózat bemenete(i)re akár sorrendi hálózati viselkedést is könnyen valósíthatunk. 16

Programmable Read Only Memory (PROM) Egy programozható rész - OR / míg az AND fix (valamilyen elrendezés szerint) Véges kombinációja áll elő az AND / OR kapcsolatoknak Metszéspontokban kevesebb kapcsoló szükséges Gyorsabb, mint a PLA Q n kimeneteken D tárolók! (visszacsatolódhatnak a bemenetekre) x: programozható : fix/rögzített 17

GAL (Generic Array Logic): Általános tömb logika 1985-ben a Lattice Semiconductor fejlesztette ki elsőként, amely a PAL-nak egy továbbfejlesztett változatát képviseli. Ugyanolyan belső struktúrával rendelkezik, mint egy PAL áramkör, azonban többször programozható: tehát törölhető és újraprogramozható eszköz. EEPROM technológiát (lebegő-gate) alkalmaz. Később a National Semiconductor, és AMD is megjelent saját GAL sorozataival a piacon. 18

CPLD CPLD (Comlex Programmable Logic Devices): Komplex-programozható Logikai eszközök Valójában átmenetet képeznek a kis/közepes integráltsági fokú makrocellás PLD-k GAL/PAL áramkörei, illetve a nagy integráltsági fokú FPGA kapu-áramkörök között. A GAL/PAL áramköröktől architekturálisan annyiban különbözik, hogy ki lett bővítve: nem egy-, hanem több logikai cellamátrixot tartalmaz, amelyek konfigurálható blokkok reguláris struktúrájában vannak elrendezve. A mai modern FPGA áramköröktől viszont az különbözteti meg felépítésben, hogy nem tartalmaz dedikált erőforrásokat (pl. szorzók, memória blokkok). a legnagyobb gyártók, amelyek jelenleg is aktív szereplői a CPLD-k piacának a következők: Xilinx, Altera, Lattice Semiconductor, Atmel stb. 19

Complex Programmable Logic Device (CPLD) 1 Logikai Blokkon belül: ~ PAL / PLA (K.H.) Regiszterek (D-FF) I/O Blokkok Programozható összeköttetések (PI: Programmable Interconnection) Teljes (Full-crossbar), vagy Részleges összeköttetés hálózat I/O Logikai blokk Logikai blokk Logikai blokk Programozható összeköttetés hálózat Logikai blokk Logikai blokk Logikai blokk I/O 20

CPLD (folyt) A CPLD-kben található Logikai Blokk-ok (=makrocellák): egyrészt logikai kapuk tömbjeit tartalmazzák (hasonlóan a PAL/GAL áramkörök felépítéséhez DNF alak), másrészt regisztereket (D-tárolókból) tartalmaznak a logikai tömbök által előállított kimenetek átmeneti tárolásához, valamint multiplexereket, mellyel a programozható összeköttetés hálózatra, vagy I/O blokkok celláihoz lehet továbbítani a belső Logikai Blokkok által előállított kimeneti értékeket. Ezáltal nemcsak logikai kombinációs hálózatokat, hanem akár sorrendi hálózatokat is egyszerűen megvalósíthatunk CPLD-k segítségével A CPLD-kben található Programozható összeköttetés hálózat teljes összeköttetést (mindenki-mindekivel), vagy részleges összeköttetést (valamilyen struktúra szerint, pl. bemenetet kimenettel, főként régi CPLD típusok esetén) biztosít az egyes blokkok között. Kikapcsoláskor a CPLD konfigurációs memóriája megtartja értékét (non-volatile típus), ezért nem kell egy külső pl. ROM memóriát használni az inicializációs minták tárolásához, bekapcsoláskor ezek automatikusan betöltésre kerülnek. A CPLD-ket közkedvelten alkalmazzák különböző interfészek jeleinek összekapcsolásához (glue-logic), amennyiben a jeleken átalakításra is szükség van, továbbá áraik az FPGA-k árainál jóval kedvezőbbek 21

FPGA Field Programmable Gate Array) = Felhasználó által tetszőlegesen/többször programozható kapuáramkörök architekturálisan tükrözik mind a PAL, ill. CPLD felépítését, komplexitásban pedig a CPLD-ket is felülmúlják. Nagy, illetve nagyon-nagy integráltsági fokkal rendelkezik: ~10.000 - ~100.000.000!! ekvivalens logikai kaput is tartalmazhat gyártótól, és sorozattól függően. Ekvivalens tranzisztorszám a létező legnagyobb Xilinx Virtex-7 2000T FPGA esetén már meghaladja a ~6.5 milliárdot (2012)! 22

FPGA: általános erőforrások LB/CLB: Konfigurálható Logikai Blokkok, amelyekben LUT-ok (Look-up-table) segítségével realizálhatók például tetszőleges, több bemenetű (ált. 4 vagy 6), egy-kimenetű logikai függvények. Ezek a kimeneti értékek szükség esetén egyegy D flip-flopban tárolhatók el; továbbá multiplexereket, egyszerű logikai kapukat, és összeköttetéseket is tartalmaznak. IOB: I/O Blokkok, amelyek a belső programozható logika és a külvilág között teremtenek kapcsolatot. Programozható I/O blokkok kb. 30 ipari szabványt támogatnak (pl. LVDS, LVCMOS, LVTTL, SSTL stb.). PI: az FPGA belső komponensei között a programozható összeköttetés hálózat teremt kapcsolatot (lokális, globális és regionális útvonalak segítségével, melyeket konfigurálható kapcsolók állítanak be) DCM: Digitális órajel menedzselő áramkör, amely képes a külső bejövő órajelből tetszőleges fázisú és frekvenciájú belső órajel(ek) előállítására DCM IOB IOB IOB IOB IOB IOB IOB IOB DCM IOB IOB IOB IOB IOB IOB IOB IOB LB LB LB LB LB LB LB LB PI Programozható összeköttetés hálózat LB LB LB LB LB LB LB LB IOB IOB IOB IOB IOB IOB IOB IOB DCM IOB IOB IOB IOB IOB IOB IOB IOB DCM 23

FPGA dedikált erőforrások Dedikált erőforrások a következők (amelyek az FPGA típusoktól és komplexitásuktól függően nagy mértékben változhat): BRAM: egy/két portos Blokk-RAM memóriák, melyek nagy mennyiségű (~ 100Kbyte akár ~ 10Mbyte) adat/utasítás tárolását teszik lehetővé MULT / vagy DSP Blokkok: beágyazott szorzó áramköröket jelentenek, amelyek segítségével hagyományos szorzási műveletet, vagy a DSP blokk esetén akár bonyolultabb DSP MAC (szorzás-akkumulálás), valamint aritmetikai (kivonás) és logikai műveleteket is végrehajthatunk nagy sebességgel Beágyazott/Beágyazható processzor(ok): Tetszés szerint konfigurálható / beágyazható ún. szoft-processzor mag(ok) Példa: Xilinx PicoBlaze, Xilinx MicroBlaze, Altera Nios II stb. Fixen beágyazott, ún. hard-processzor mag(ok) Példa: IBM PowerPC 405/450 (Xilinx Virtex 2 Pro, Virtex-4 FXT, Virtex-5 FXT), ARM Cortex A9 (Xilinx Zynq, illetve Altera Cyclone V, Stratix V, Arria V) stb. 24

Xilinx FPGA családok Nagy teljesítmény Virtex (1998) 50K-1M gates, 0.22µm Virtex-E/EM (1999) 50K-4M gates, 0.18µm Virtex-II (1999) 40K-8M gates, 0.15µm Virtex-II Pro/X (2002) 50K-10M gates, 0.13µm Virtex-4 (2004) [LX, FX, SX] 50K-10M gates, 90nm Virtex-5 (2006) [LX, LXT, SXT] 65nm Virtex-5 FXT, TXT (2008) 65nm Virtex-6 LXT, SXT (2009) 40nm Alacsony költség Spartan-II (2000) 15K-200K gates, 0.22µm Spartan-IIE (2001) 50K-600K gates, 0.18µm Spartan-3 (2003) 50K-5M gates, 90nm Spartan-3E (2005) 100K-1.6M gates, 90nm Spartan-3AN (2006) 50K-1.4M gates, 90nm Spartan-3A - DSP (2006) 1.8M-3.4M gates, 90nm Spartan-6 LX, LXT (2009) 45nm Virtex-7 (2011) 28nm Kintex-7 (2011) 28nm Artix-7 (2011) 28nm http://www.xilinx.com 25

Pannon Egyetem - VIRT Tanszéken lévő fejlesztő kártyák Digilent ZyBo (Xilinx Zynq) Digilent Nexys-2 (Xilinx Spartan-3E) Digilent Atlys (Xilinx Spartan-6) Digilent Nexys-4 (Xilinx Artix-7) Xilinx Virtex-5 ML506 Virtex2-Pro (Xilinx Virtex2-Pro) RC203/RC200 (Xilinx Virtex-II) SW: Xilinx ISE Design Suite 14.x Xilinx Vivado 201x 26

Digilent Nexys-2 fejlesztő kártya Nexys 2 Xilinx Spartan-3E FPGA fejlesztő kártya Xilinx Spartan-3E FPGA, 500K / 1200K ekvivalens kapuval USB2 port (táp, konfiguráció, adat-transzfer egyben) Xilinx ISE/Webpack/EDK 16MB Micron PSDRAM 16MB Intel StrataFlash Flash Xilinx Platform Flash ROM 50MHz osszcillátor 75 FPGA I/O s (1 nagysebességű Hirose FX2 konnektor és 4 db 2x6 PMOD konnektor) GPIO: 8 LED, 4-jegyű 7- szegmenses kijelző, 4 nyomógomb, 8 kapcsoló VGA, PS/2, Soros port 27

Digilent Atlys fejlesztő kártya Atlys Xilinx Spartan-6 FPGA fejlesztő kártya Xilinx Spartan-6 LX45 FPGA 128Mbyte DDR2 16-bit (adatbusz) 10/100/1000 Ethernet PHY USB2 port (programozás és adatátvitel egyben) USB-UART and USB-HID port (egér/billentyű) 2 HDMI videó bemenet & 2 HDMI kimenet AC-97 Codec Real time power monitor 16Mbyte x4 SPI Flash (konfiguráció és adat tárolási célokra) 100MHz CMOS osszcillátor 48 I/O s (külső konektorokra) GPIO: 8 LED, 6 nyomógomb, 8 kapcsoló 1 PMOD, 1 VMOD csatlakozó 28

FPGA témájú tárgyak a Pannon Egyetemen VIRT tanszék (VEMIVI4144B) FPGA-alapú Beágyazott rendszerek (VEMIKN5143D) Tervezési módszerek programozható logikai eszközökkel 29

FPGA létjogosultsága? A mai modern FPGA-k a nagyfokú flexibilitásukkal, nagy számítási teljesítményükkel, és (ASIC = Alkalmazás Specifikus Áramkörökkel szemben) gyors prototípus-fejlesztési, ezáltal olcsó kihozatali (piacra kerülési) költségükkel igen jó alternatívát teremtenek a mikrovezérlős (uc), illetve DSP-alapú implementációk leváltására (pl. jelfeldolgozás, hálózati titkosítás, beágyazott rendszerek, stb. alkalmazásai területén). Fejlődésüket jól tükrözi a mikroprocesszorok és az FPGA/PLD áramköri technológia fejlődési üteme között fennálló hasonlóság a méretcsökkenésnek ( scalingdown ) - Gordon Moore-törvénynek megfelelően (1965!). 30

Nagy-teljesítményű Xilinx Virtex FPGA család erőforrásainak alakulása (1998-2012 időszakban) 31 * PhD dissertation Zs. Vörösházi

Pl. Spartan-3E architektúra Általános felépítés: MicroBlaze Soft-proc Core(s) 32

Spartan-3E FPGA építőelemei CLB: Konfigurálható Logikai blokkok Slice-L, mint Logika: LUT, D-FF, MUX, Carry Logika Slice-M, mint Memória: SRL-16x1, RAM-16x1 IOB: I/O blokkok MULT: 18x18 bites előjeles (2 s) szorzó(k) BRAM: konfigurálható 18 Kbites (~2 Kbyte + paritás) egy/két-portos memóri(ák) DCM: Digitális órajel menedzser blokkok Beágyazható processzor(ok): Csak szoft-processzor mag(ok) alakíthatóak ki Pl: Xilinx MicroBlaze, PicoBlaze, (esetleg külső független IP szellemi terméke integrálható) 33

Spartan-3E CLB tömb CLB: Konfigurálható Logikai Blokkok: fő logikai erőforrás, kombinációs és szekvenciális logikai hálózatok tervezésére 1 CLB = 4 Slice! *4= *2= *16= *4= *2= *16= Digilent Nexys-2 fejlesztőkártyán 34

Kombinációs hálózatok megvalósítása memóriákkal 35

1.) ROM: Read Only Memory Csak egyszer írható (általában a gyártó által), utána már csak olvasható memória. Kikapcsoláskor megőrzik tartalmukat! Szervezése a RAM-hoz hasonló (de itt nem kell Write/Read vonal) Fontos alkalmazásai: Firmware: elektronikai eszközök (pl. számítógép ROM-Bios funkcióinak tárolására) Kód konverter: pl. BCD generáló 7 szegmenses kijelzőre Logikai függvény generátor: tetszőleges logikai fgv. szintézisénél (előállításánál) ROM-ban tároljuk az igazságtáblázatot Programozható ROM fajtái: PROM*: egyszer programozható EPROM*: programozható, és UV-fénnyel törölhető EEPROM*: elektromosan programozható/törölhető (Flash) *Lásd: programozási módok 36

2.) RAM: Random Access Memory Véletlen hozzáférésű, írható és olvasható memória. Címzésnél: dekódoló és multiplexer áramköröket használunk Pl. 10 lábbal -> 1024 (1K) cellát tudunk megcímezni Jelölés: RAM celláinak száma (4096) / tároló kapacitás 4K. Példák: a.) 4K= 1K x 4 RAM tartalmaz: 1024 számú 4 bites szót (word) b.) 4K= 4K x 1 RAM tartalmaz: 4096 számú 1-bites szót (word) (de itt az 1 bit/szó szervezéssel lábszámot spórolunk!) 12+1 b.) Cím 12 bit 0 4095 a.) Cím 10 bit 0 1023 1 bites adatút (data-path) 4096 elemű (rekeszű) memória tömb 4 bites adatút (data-path) 1024 elemű (rekeszű) memória tömb 37

RAM: SRAM (Statikus) és DRAM (dinamikus) memória cellák felépítése: Word Line V DD Word Line n-mo s p-mo s p-mo s n-mo s Bit Line n-mo s n-mo s n-mo s C Bit Line Gnd SRAM: n-mos és p-mos (n és p csatornás tranzisztorokból épül fel) 2-2 db, + 2 db áteresztő tranzisztor (össz. CMOS tranzisztor) Bit Line Gnd DRAM: Tárolás: egy kis méretű C kondenzátor töltése és kisütése. 38

a.) SRAM tulajdonságai Az információ a tápfesz. alatt is megmarad, nem kell frissíteni. Megvalósítható bipoláris (0,1) SRAM cellával, nmos tranzisztorokkal, vagy CMOS tranzisztorokból (6 tranzisztor). Kisebb kapacitású, de gyorsabb a DRAM-nál, mivel tápfeszültség alatt sem kell frissíteni. SRAM esetén a ciklusidők T(R/W Cycle) T(Access Time) közel azonosak. Nagy a fogyasztása. Integritási sűrűsége 4x rosszabb. Tápfeszültség kikapcsolásával elveszti a tartalmát. Felhasználása: Cache memóriákban, digitális oszcillátorokban, logikai analizátorokban, operatív tárakban (memória), merevlemezek gyorsító pufferében, nyomtatók memóriájában. 39

b.) DRAM tulajdonságai Általában CMOS technológiával készülnek. A tápfeszültség alatt is frissíteni kell 2-10 ms-ként, mivel idővel elvesztik tartalmukat. Kicsi a fogyasztása Nagyobb kapacitású, mint az SRAM, de lassabb (frissítés!) A hozzáférési idő kétszer nagyobb a memória R/W ciklusidejénél: 2*T(R/W Cycle)=T(Access Time). Egyszerűbb felépítésű (1 tranzisztor + kondenzátor), szemben az SRAM-al. Integritási sűrűsége 4x nagyobb. (IRAM: az időzítő elektronika a DRAM-ra van integrálva). Itt lényegében a CS=Chip Select (korábban CE: Chip Enable!) jelet két részre osztották fel: RAS=sorkijelölő, és CAS=oszlopkijelölő komponensekre. Felhasználása: operatív memória (DDR-, DDR-II, DDR3- SDRAM) 40

Memória működése röviden Egy adott rekesz tartalmát úgy tudjuk kiolvasni, hogy a címbemenetekre (Address pins) adjuk annak sorszámát (bináris formában), amelyre az adatkimeneteken (DATA pins) a véges ún. hozzáférési idő (access time) elteltével megjelenik a rekeszben tárolt szám. *Arató könyvben ciklus időnek van definiálva, amelyet a szakirodalomban inkább tekintenek két egymást követő olvasási, vagy írási tranzakció között eltelt időnek Beírás hasonló módon történhet. Címek (A6 A0) 68 Adat (D3 D0) 41

Memória tulajdonságai A memória kapacitása a tárolható szavak számát jelöli. Ha n darab címvezetékünk van, a memória 2^n db rekeszt tartalmaz. A tárolás jellege alapján kétféle típust különböztetünk meg (később részletesen): RAM ROM Az egy rekeszben tárolható bitek száma adja a memória szóhosszúságát (word length). 42

Kombinációs hálózatok és a memóriák kapcsolata A K.H-ban egy adott bemeneti kombinációra az igazságtábla ugyanazon sorában feltüntetett kimeneti bináris kombináció a válasz. (Tehát beadunk egy bináris számot, amire válaszul egy másik bináris számot várunk a kimeneteken). A memóriák feladata is teljesen ugyanez: kiolvasáskor minden egyes cím megadásakor egy előzőleg betöltött adat jelenik meg. Vagyis ha egy memóriát egy vele azonos számú be-, és kimenettel rendelkező K.H. igazságtáblája szerint töltünk fel, akkor ez a memória helyettesítheti a kombinációs hálózatot. 43

K.H. Memória ekvivalencia n=4 m=2 44

A memóriaelemmel történő megvalósítás előnyei: könnyen átprogramozható, így a fejlesztési szakaszban nem kell újraépítenünk kapukból az egész áramkört, még apró változtatásnál sem, nem igényel függvény-egyszerűsítést (minimalizálást), nem fordulhat elő benne statikus és dinamikus hazárd (mivel nem kapukból és huzalozással építjük fel, hanem az igazságtábla alapján direkt módon határozzuk meg a beírandó adatokat!)!de itt is van/lehet funkcionális hazárd, amit pl. szinkronizációval szüntethetünk meg (nem szomszédos bemeneti címváltozásokra kimeneti adatváltozások) Erre megoldás az EN engedélyező/tiltó bemenet 45

A memóriaelemmel történő megvalósítás hátrányai: Egy memória-áramkör sokkal lassabb lehet, mint a logikai kapukból összeállított huzalozott / dedikált kombinációs hálózat (főleg ha több hierarchia szinten összekötött memória áramkörök késleltetését tekintjük), speciális időzítési feltételekkel fogadhat csak jeleket (pl. a címnek bizonyos ideig stabilnak kell maradnia, hogy előálljon a kimenet), míg a függvény-egyszerűsítéssel kapott megoldás esetleg csak néhány kapuból állna, addig a memóriába a teljes igazságtáblázatot be kell programozni (tárolni): n darab bemenethez mindenképp egy 2^n kapacitású memóriát kell választani (katalógus), a memóriaelem a legtöbb esetben drágább is. 46

Memória elem alkalmazása több kimenetű K.H. megvalósítására K.H Memória Bemeneti kombináció = címek Kimeneti kombináció = adat kimenetek EN/CS (Enable, más néven Chip Select) memória elem engedélyezése, vagy tiltása Huzalozott VAGY kapcsolat: akár több memória elem kimenete is összekapcsolható huzalozott módon. x 1 x 2 x n C 1 C 2 C n Memória elem EN/CS CLK D 1 D 2 D m F 1 F 2 F m 47

Memória: Huzalozott VAGY kapcsolatok Mindig csak egy memóriaelem bemenete engedélyezett egyszerre, a többié tiltott! EN i = 1 engedélyezés. EN j i = 0 tiltás Wired OR 48

K.H. megvalósítása memóriával lehetséges esetek 1.) megvalósítandó K.H. bemenete kevesebb, mint a memória címbemenete (nem használjuk a memória plusz cím bemeneteit, GND lekötés) 2.) megvalósítandó K.H. kimenete kevesebb, mint a memória adatkimenete (nem használjuk a memória plusz adat kimeneteit, GND lekötés) 3.) megvalósítandó K.H. kimenete több, mint a memória adatkimenete (több memória elem kell) 4.) megvalósítandó K.H. bemenete több, mint a memória címbemenete (több memória elem, és dekóder kell) 5.) megvalósítandó K.H. bemenete és kimenete is több, mint a memória címbemenete, ill. adatkimenete (több memória elem, és dekóder kell) 49

3.) K.H. megvalósítása memóriával Ha a megvalósítandó K.H. kimeneteinek száma több (pl. m+2), mint a memória adatkimeneteinek száma ( pl. m): Egyetlen memória elem nem elegendő! Bővíteni kell. E Mem Mem 50

4.) K.H. megvalósítása memóriával Ha a megvalósítandó K.H. bemeneteinek száma (n+2) több, mint a memória cím-bemeneteinek száma (n): Egyetlen memória elem nem elegendő! Bővíteni. Mivel 2 n számú bináris kombináció helyett 2 n+2 -t kell tárolni (azaz 4*2 n ) Bővíteni: K átkódoló K.H. beépítése vezérli a memóriák E engedélyezését K 1 4 kimeneteken n-ből 1 kód (one-hot-code) x(n+1) x(n+2) K1 K2 K3 K4 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 2 3 4 51

4./a) Lehetséges megoldás: K.H. megvalósítása memóriával Ha a megvalósítandó K.H. bemeneteinek száma több (pl. n+2), mint a memória címbemeneteinek száma (pl. n): Megpróbálni a bemenetek számát egy előfeldolgozó logikai hálózattal (K.H.) csökkenteni, még a MEM címek kiadása előtti állapotban (amelyeket már egyetlen MEM is kezelni tud! DE! nem szisztematikus módszer melyik jeleket alakítsuk át? 52

5.) K.H. megvalósítása memóriával Ha a megvalósítandó K.H. bemeneteinek (n+2) és kimeneteinek száma (m+2) is több (tfh. 2-vel), mint a memória címbemeneteinek (n), és adatkimeneteinek száma (m): Egyetlen memória elem nem elegendő! Bővíteni. Előző 3.) és 4.) módszereket együttesen kell alkalmazni a bővítéshez. x(n+1) x(n+2) K1 K2 K3 K4 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 53

K.H. megvalósítása memóriával Megjegyzés: nincs akadálya annak, hogy a K átkódoló vagy elő-feldolgozó logikai hálózatot memóriával (tipikusan ROM-al) valósítsanak meg. De ekkor a több-szintű, sorba kapcsolt memória hálózat miatt csökkenhet a megvalósított hálózat működési sebessége (cím -> érvényes adat megjelenése a kimeneten stb.). 54

Példa 1.): A megadott Memória elem segítségével realizáljon egy K.H.-ot, ha adottak az alábbi függvényei: n= 4 1 1 2 3 4 n= 4 2 1 2 3 4 n 2 1 F (x, x, x, x ) = (0,1,4,15) i= 0 n 2 1 F (x, x, x, x ) = (0,1,8,9,11) i= 0 x 1 x 2 x 3 x 4 C 1 C 2 C 3 R/W Memória elem D 1 EN/CS CLK F 1 F 2 a.) Ha szükséges, adja meg a dekódoló logika ( K ) igazságtáblázatát is! b.) Adja meg pontosan a memória feltöltését is! 55

Példa 1. (folyt.): Mivel a Memória elem cím-bemeneteinek száma (n=3) 1-el kevesebb, illetve az adat-kimenetének száma (m=1) is 1-el kevesebb, mint a realizálandó K.H. bemeneteinek (n=4), ill. kimeneteinek (m=2) száma, ezért bővíteni kell: Több memória elem 1-1 memória elem kimenetenként Dekódoló logika K 2 n+1 = 2*2 n (1 2 dekóder), azaz K1, K2 engedélyezők x 1 x 2 x 3 C 1 C 2 Memória elem D 1 F 1 x 4 C 3 F 2 Összesen 4 db memória elem kell! R/W EN/CS CLK 56

x 1 C 1 Példa 1. Megoldás x 2 x 3 C 2 C 3 Memória elem M1 D 1 F1 EN/CS CLK a.) K: dekódoló logika x 1 x 2 C 1 C 2 Memória elem D 1 x(4) K1 K2 0 1 0 1 0 1 x 4 K 1->2 Dekódoló Logika K 1 K 2 x 3 x 1 x 2 C 3 C 1 C 2 EN/CS M2 Memória elem CLK D 1 F 2 K1: M1, M3 K2: M2, M4 x 3 C 3 EN/CS M3 CLK x 1 C 1 x 2 C 2 Memória elem D 1 x 3 C 3 M4 EN/CS CLK 57

b.) A memória elemek feltöltése n n= 4 1 1 2 3 4 = 2 1 F (x, x, x, x ) (0,1, 4,15) i= 0 n= 4 2 1 2 3 4 n 2 1 = F (x, x, x, x ) (0,1,8,9,11) Cím F1 Cím F2 MEM#1 0 1 MEM#3 0 1 1 1 1 1 2 0 2 0 3 0 3 0 4 1 4 0 5 0 5 0 6 0 6 0 7 0 7 0 i= 0 MEM#2 8 0 MEM#4 8 1 9 0 9 1 10 0 10 0 11 0 11 1 12 0 12 0 13 0 13 0 14 0 14 0 15 1 15 0 58

Példa 2.): A megadott Memória elem segítségével realizáljon egy K.H.-ot, ha adottak az alábbi függvényei: 5 1 1 5 5 2 1 5 n 2 1 F (x,.., x ) = (0,1,4,31) i= 0 n 2 1 F (x,...x ) = (0,1, 4,15,16,17, 21, 22) i= 0 x 1 x 2 x 3 x 4 x 5 C 1 C 2 C 3 R/W Memória elem EN/CS D 1 CLK F 1 F 2 a.) Ha szükséges, adja meg a dekódoló logika ( K ) igazságtáblázatát is! b.) Adja meg pontosan a memória feltöltését is! 59