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

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

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

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

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

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

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

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

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

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

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.

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

5. Hét Sorrendi hálózatok

elektronikus adattárolást memóriacím

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

Rendszertervezés FPGA eszközökkel

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

PAL és s GAL áramkörök

VEZÉRLŐEGYSÉGEK. Tartalom

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

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

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

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

Digitális rendszerek. Mikroarchitektúra szintje

Elvonatkoztatási szintek a digitális rendszertervezésben

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

Digitális technika (VIMIAA02) Laboratórium 4

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

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

A fealdatot két részre osztjuk: adatstruktúrára és vezérlőre

DIGITÁLIS TECHNIKA I

Digitális technika (VIMIAA02) Laboratórium 4

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

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

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Ó

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

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

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

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Joint Test Action Group (JTAG)

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

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

Újrakonfigurálható eszközök

Összeadás BCD számokkal

SZORGALMI FELADAT. 17. Oktober

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

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

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

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

Számítógép architektúra

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

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

10. Digitális tároló áramkörök

Dr. Oniga István DIGITÁLIS TECHNIKA 8

A/D és D/A konverterek vezérlése számítógéppel

PLA és FPLA áramkörök

Bevezetés az informatikába

Bevezetés az informatikába

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

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 technika (VIMIAA01) Laboratórium 4

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

Feszültségszintek. a) Ha egy esemény bekövetkezik akkor az értéke 1 b) Ha nem következik be akkor az értéke 0

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

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

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

Digitális technika VIMIAA02

XI. DIGITÁLIS RENDSZEREK FIZIKAI MEGVALÓSÍTÁSÁNAK KÉRDÉSEI Ebben a fejezetben a digitális rendszerek analóg viselkedésével kapcsolatos témákat

Digitális technika VIMIAA02

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

8.3. AZ ASIC TESZTELÉSE

I+K technológiák. Beágyazott rendszerek Dr. Aradi Szilárd

DIGITÁLIS TECHNIKA II

Jelfeldolgozás a közlekedésben

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

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

Irányítástechnika Elıadás. A logikai hálózatok építıelemei

Véges állapotú gépek (FSM) tervezése

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

Programozható logikai vezérlő

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

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

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

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

6. hét: A sorrendi hálózatok elemei és tervezése

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

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

A PLÁ k programozhatóságát biztosító eszközök

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

Nagy Gergely április 4.

Bepillantás a gépházba

Véges állapotú gépek (FSM) tervezése

Áramkörök elmélete és számítása Elektromos és biológiai áramkörök. 3. heti gyakorlat anyaga. Összeállította:

Alapkapuk és alkalmazásaik

Digitális technika (VIMIAA02) Laboratórium 1

2. Elméleti összefoglaló

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

Digitális technika (VIMIAA02) Laboratórium 1

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Átírás:

PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Digitális Rendszerek és Számítógép Architektúrák (Levelező BSc) 4. előadás: Szekvenciális Hálózatok: Vezérlő egységek, Programozható alkatrészek Előadó: Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu

Jegyzetek, segédanyagok: Könyvfejezetek: http://www.virt.uni-pannon.hu Oktatás Tantárgyak Digitális Rendszerek és Számítógép Architektúrák (BSc Levelező) (chapter05.pdf) Fóliák, óravázlatok.ppt (.pdf) Feltöltésük folyamatosan 2

Vezérlő egységek általánosan A számítógép vezérlési funkcióit ellátó szekvenciális egység. Feladata: az operatív tárban lévő gépi kódú utasítások értelmezése, részműveletekre bontása, és a szekvenciális (sorrendi) hálózat egyes funkcionális részeinek vezérlése (vezérlőjel- és cím-generálás) Vezérlő egység tervezési lépései: megfelelő technológia, és rendszerkomponensek kiválasztása komponensek összekapcsolása a működési sorrendnek megfelelően RTL leírás alkalmazása az akciók ill. adatátvitel pontos leírására adatút (data-path) megtervezése (legfontosabb!) kívánt vezérlő jelek azonosítása, meghatározása 3

Adatút (Data-path) tervezés szempontjai Gazdaságosság (költség) Interfész szükséglet (protokollok) Sebesség (S) Felület (A) Energia (disszipált teljesítmény) (P, D) Dinamikai tartomány (számrendszerek) Rugalmasság (többcélúság) Kezelhetőség (probléma, hiba során) Környezet (pl. ipari v. irodai használat?) 4

Vezérlő egységek fajtái: I. Huzalozott (klasszikus) módszerek (pl. korábban RISC architektúrák): Mealy-modell, Moore-modell. II. Mikroprogramozott módszerek (reguláris vezérlési szerkezettel pl. CISC architektúrák): Horizontális mikrokódos vezérlő, Vertikális mikrokódos vezérlő. III. Programozható logikai eszközök (PLD): Maszk-programozható: PLA, PAL, PROM, CPLD, Újrakonfigurálható (szoftveresen): FPGA (nem tárgyaljuk!) 5

Ismétlés:Kombinációs hálózatok (K.H.) Kombinációs logikai hálózatról beszélünk: ha a mindenkori kimeneti kombinációk értéke csupán a bemeneti kombinációk pillanatnyi értékétől függ (tároló kapacitás, vagy memória nélküli hálózatok). Inputs Combinational Logic Outputs 6

Sorrendi hálózatok: (S.H.) Sorrendi (szekvenciális) logikai hálózatról beszélünk: ha a mindenkori kimeneti kombinációt, nemcsak a pillanatnyi bemeneti kombinációk, hanem a korábban fennállt bementi kombinációk és azok sorrendje is befolyásolja. (A szekunder /másodlagos kombinációk segítségével az ilyen hálózatok képessé válnak arra, hogy az ugyanolyan bemeneti kombinációkhoz más-más kimeneti kombinációt szolgáltassanak, attól függően, hogy a bemeneti kombináció fellépésekor, milyen értékű a szekunder kombináció, pl. a State Register tartalma) Vezérlő egységek alapjául szolgáló hálózat! Inputs Combinational Logic Outputs State reg 7

Időzítő vezérlő egység: Az időzítő (ütemező - Timing) határozza meg a vezérlő jelek előállításának sorrendjét. Egy időzítő-vezérlő (TAC) egység általános feladata az egyes funkciók megvalósítását végző áramköri elemek (pl. ALU, memória elemek) összehangolt működésének biztosítása. Az időzítő-vezérlő áramkörök szekvenciális rendszerek mivel az áramköri egységek tevékenységének egymáshoz viszonyított időbeli sorrendiségét biztosítják melyek az aktuális kimenet értékét a bemenet, és az állapotok függvényében határozzák meg. 8

Az időzítő-vezérlő lehet: huzalozott: áramkörökkel, dedikált összeköttetésekkel fizikailag megvalósított (Mealy, Moore, MUX-os modellek alapján, illetve programozható PLD-k), vagy Pl: korai RISC architektúrák mikroprogramozott: az adatútvonal (data-path) vezérlési pontjait Memóriából (ROM) kiolvasott vertikális- vagy horizontális-mikrokódú utasításokkal állítják be. Pl: CISC architektúrák 9

I. Klasszikus vezérlési módszerek: Huzalozott vezérlő egységek 10

1.) Mealy-modell A sorrendi hálózatok egyik alapmodellje. Késleltetés: a kimeneten az eredmény véges időn belül jelenik meg! Korábbi értékek visszacsatolódnak a bemenetre: kimenetek nemcsak a bemenetek pillanatnyi értékétől, hanem a korábbi állapotoktól is függenek. Problémák merülhetnek fel az állapotok és bemenetek közötti szinkronizáció hiánya miatt (változó hosszúságú kimenetet - dekódolás). Ezért alkalmazzuk legtöbb esetben a második, Moore-féle automata modellt. Három halmaza van: (Visszacsatolni az állapotregisztert a késleltetés miatt kell) X a bemenetek, Z a kimenetek, Y az állapotok halmaza. Két leképezési szabály a halmazok között: (Xn,Yn)Yn+1 : következő állapot fgv. (Xn,Yn) Zn : kimeneti fgv. X1 X2 X3 Xn Y(n) Combinational Logic Y(n+1) Z1 Z2 Z3 Zn State Reg. 11

2.) Moore-modell A kimenetek közvetlenül csak a pillanatnyi állapottól függenek (bemenettől függetlenek v. közvetve függenek). Tehát a kimenetet nem a bemenetekhez, hanem az állapotoknak megfelelően szinkronizáljuk. Három halmaza van: X a bemenetek, Input Next-State Present-State Output Z a kimenetek, Y az állapotok halmaza. Két leképezési szabályok (Xn,Yn)Yn+1 : köv. állapot fgv. (Yn) Zn : kimeneti fgv. X1 X2 X3 Combinational Logic Y(n+1) Y(n) Decode State Reg. Logic Z1 Z2 Z3 Xn Zn Y(n) 12

II. Mikrokódos vezérlők reguláris vezérlési struktúrák 13

Ismétlés: Vezérlő egységek Általánosságban: a vezérlő egység feladata a memóriában lévő gépi kódú program utasításainak értelmezése (decode), részműveletekre bontása, és ezek alapján az egyes funkcionális egységek vezérlése (a vezérlőjelek megfelelő sorrendben történő előállítása). 14

Klasszikus vs. reguláris módszer Eddig a klasszikus, késleltetéses módszereket tárgyaltuk (huzalozott és shift-regiszteres példákkal). A rendszer tervezésekor, miután a feladat elvégzéséhez szükséges vezérlőjeleket definiáltuk, meg kell határozni a kiválasztásuk sorrendjét, és egyéb specifikus információkat (rendszer ismeret, tervezési technikák, viselkedési leírások pl.vhdl). Vezérlő egység: Kombinációs hálózat (hard-wired = huzalozott), vagy FSM: véges állapotú automata alapú. Wilkes (1951): A komplex, többcímű (operandusú), illetve vezérlési szerkezeteket reguláris módszerrel lehet gyorsítani, egyszerűsíteni: nevezetesen gyors memória elemeket kell használni az utasítássorozatok tárolásánál. Ugyan a klasszikus módszernél használt állapotgépekkel (FSM) modellezik a reguláris vezérlő egység működését, majd ezt a modellt transzformálják át mikrokódos memóriát (ami nem azonos az operatív memóriával!) használva. Az adatútvonal vezérlési pontjait memóriából (ROM) kiolvasott vertikális- vagy horizontális-mikrokódú utasításokkal állítják be! 15

Reguláris módszer: mikrokódos vezérlés tulajdonságai Mikrokód: gépi kódú utasításokat (IR) legalacsonyabb szintű áramköri (hw) utasítások sorozatára leképező köztes kód Szerepe: értelmezés (interpreter / translator) a fenti két szint között: A gépi kódú utasítások változtatásának lehetősége (RISC, CISC), anélkül hogy a HW változna Mai rendszerek olvasható mikrokódját gyors memóriában (általában ROM), vagy PLD-ben tárolják (írható esetben RAM, vagy Flash is lehet) Alkalmazás: CPU, GPU, lemezvezérlők, NPU (network processor unit) leképezés 16

Mikroprogram = mikroutasítások sorozata Példa: Tipikus mikroprogram (~RTL-szintű utasítás szekvenciák sorozata): 1. Load Reg[1] to the "A" side of the ALU 2. Load Reg[7] to the "B" side of the ALU 3. Select the ALU to perform 2's-comp addition 4. Select the ALU's carry input to zero 5. Store the result value in Reg[8] 6. Update the "condition codes" with the ALU status flags ("Negative", "Zero", "Overflow", and "Carry") 7. Microjump (MicroPC) for the next microinstruction 17

FSM megvalósítása Memóriával 1.rész 2. rész 1.rész: szabályozza az eszköz működését a megfelelő állapotok sorrendjében 2.rész: szabályozza az adatfolyamot a megfelelő vezérlőjelek beállításával (assertion) az adatúton (vezérlési pontokon) 18

FSM megvalósítása Memóriával (folyt) Address Selection: (mint új elem) a következő utasítás (Next State), és beállítani kívánt vezérlőjel (control signal assertion) címére mutat a memóriában (~ ld. MAR). A memória címet (memory address-t) külső bemenő jelek és a present state együttesen határozzák meg. E cím segítségével megkapjuk az adott vezérlő információ pontos helyét a memóriában, ill. ez az információ, mint új állapot betöltődik a generált vezérlőjeleket tároló (Control Signal Register). Next-State kiválasztásához szükséges logikai memória méretét az aktuális állapotok száma, az állapotdiagram komplexitása, és a bemenetek száma határozza meg. Control Signal generálásához szükséges logikai memória méretét a bemenetek száma, a függvény (vezérlő jel) komplexitása, és a vezérlőjelek száma határozza meg. 19

Általános Mikrokódos vezérlő 20

Általános Mikrokódos vezérlő felépítése Micro Instruction Register: a Present State (aktuális állapot) regisztert + a Control Signal regisztert egybeolvasztja (az adatút vezérlővonalainak beállítása / kiválasztása). Mikroutasítások sorrendjében generálódik a vezérlőjel! Microcode Memory: a Control Signal Assertion Logic vezérlőjel generálás/beállítás + Next-State kiválasztása (mikroprogram eltárolása) összevonása Microcode Address Generator: a vezérlő jelet az aktuális mikroutasítások lépéseiként sorban generálja, de címkiválasztási folyamat komplex. Sebesség a komplexitás rovására változhat! (komplexebb vezérlési funkciót alacsonyabb sebességgel képes csak generálni). A következő cím kiválasztása még az aktuálisan futó mikroutasítás végrehajtása alatt végbemegy! Számlálóként működik: egyik címről a másik címre inkrementálódik (mivel a mikroutasításokat tekintve szekvenciális rendszerről van szó). Kezdetben resetelni kell. 21

Általános Mikrokódos vezérlők tulajdonságai Egy gépi ciklus alatt egy mikroprogram fut le (amely mikroutasítások sorozatából áll). A műveleti kód (utasítás opcode része) a végrehajtandó mikroprogramot jelöli ki. A mikrokódú memória általában csak statikus módon olvasható gyárilag konfigurált ROM, ha írható is, akkor dinamikus mikroprogramozásról beszélünk. Ha a mikroprogram utasításai szigorúan szekvenciálisan futnak le, akkor a címüket egy egyszerű számláló inkrementálásával megkaphatjuk. Memóriából érkező bitek egyik része a következő cím kiválasztását (Sequence Information), míg a fennmaradó bitek az adatáramlást biztosítják. Mai gyors félvezető alapú memóriáknak köszönhetően kis mértékben lassabb, mint a huzalozott vezérlő egységek, mivel ekkor a memória elérési idejével (~ns) is számolni kell 22 (nem csak a visszacsatolt aktuális állapot késleltetésével.)

1.) Horizontális mikrokódos vezérlő Mindenegyes vezérlőjelhez saját vonalat rendelünk, ezáltal horizontálisan megnő a mikro- utasításregiszter kimeneteinek száma, (horizontálisan megnő a mikrokód). Minél több funkciót valósítunk meg a vezérlőjelekkel, annál szélesebb lesz a mikrokód. Ennek köszönhetően ez a leggyorsabb mikrokódos technika, mivel minden bit független egymástól ill. egy mikrokóddal többszörös (konkurens) utasítás is megadható. Pl: a megfelelő funkcionális egységeket (memória, ALU, regiszterek stb.) egyszerre tudjuk az órajellel aktiválni, ezáltal egy órajelciklus alatt az információ mindkét irányba átvihető. Növekszik a sebesség, mivel nincs szükség a vezérlőjelek dekódolását végző dekódoló logikára. Így minimálisra csökken a műveletek ciklusideje. Azonban nagyobb az erőforrás szükséglete, fogyasztása. 23

Horizontális mikrokódos vezérlő 24

2.) Vertikális mikrokódos vezérlő Nem a sebességen van a hangsúly, hanem hogy takarékoskodjon az erőforrásokkal (fogyasztás, mikrokódban a bitek számával), ezért is lassabb. Egyszerre csak a szükséges (korlátozott számú) biteket kezeljük, egymástól nem teljesen függetlenül, mivel közülük egyszerre csak az egyiket állítjuk be (dekódoljuk). A jeleket ezután dekódolni kell (több időt vesz igénybe). A kiválasztott biteket megpróbáljuk minimális számú vonalon keresztül továbbítani. A műveletek párhuzamos (konkurens) végrehajtása korlátozott. Dekódolás: log 2 (N) számú dekódolandó bit -> N bites kimeneti busz. Több mikroutasítás szükségeltetik így a mikrokódú memóriát vertikálisan meg kell növeli. 25

Vertikális mikrokódos vezérlő 26

III. Programozható logikai eszközök (PLD) 27

Á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 28

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. 29

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. 30

Tervezési módszerek * Fontos: Ezek a részek nem találhatóak meg a könyvben! 31

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 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 még 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) 32

Programozható logikai eszközök (PLD-k) két fő típusa: 1.) Makrocellás PLD-k: (Programmable Logic Devices): PLA, PAL, PROM, GAL, CPLD. 2.) FPGA (Field Programmable Gate Array): Programozható Gate Array áramkörök XILINX (Spartan, Virtex) > 50 % Altera, ~ 30 % Actel (főleg űrkutatásban alkalmazott) Lattice, Quicklogic, SiliconBlue, Achronix stb. sorozatok 33

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 34

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. 35

Programozásuk (pl. 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 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). 36

Példa: PLA tervezése Realizálja a következő függvényeket: X C A B A B Y C D E AC D W Z C D E B C D E B D AC 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! 37

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 38

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. 39

Programmable Read Only Memory (PROM) Egy programozható rész - OR / míg az AND fix (vmilyen struktúra 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 40

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 (lásd. lebegő-gate) alkalmaz. Később a National Semiconductor, és AMD is megjelent saját GAL sorozataival a piacon. 41

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. 42

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 43

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 44

Hogyan programozhatók a VLSI alkatrészek? Programozási technikák összeköttetésekre 45

Programozási technikák Mi van a programozható összeköttetések csomópontjaiban, illetve milyen módszerrel programozhatóak? a.) SRAM b.) MUX c.) Antifuse d.) Floating Gate e.) EPROM/EEPROM/Flash ns /? R C ps 46

Programozás = konfigurálás Konfigurálás (PLD/FPGA esetén) mielőtt az eszközt használni szeretnénk egy speciális (manapság általában JTAG szabványú) programozó segítségével fel kell programozni : le kell tölteni a konfigurációs állományt (bitfájl, vagy object fájl). A programozás a legtöbb PLD esetében a belső programozható összeköttetésének fizikai típusától függően azok beállításával történik. A programozható összeköttetésekben a következő lehetséges alkatrészek találhatóak: Biztosíték (Fuse): átégetésük után nem visszafordítható a programozási folyamat (OTP). Korábban a PAL eszközök népszerű kapcsoló elemeként használták. Antifuse technológia: (OTP), az antifuse-os kristályszerkezetű kapcsoló elem átolvasztása után egy nagyon stabilan működő összeköttetést kapunk, amely sajnos szintén nem visszafordítható folyamatot jelent. A technológia drága, az előállításához szükséges maszk-rétegek nagy száma miatt, nagyon jó zavarvédettség elérése érdekében használják (pl. űrkutatás). SRAM cella + tranzisztor: tetszőlegesen programozható (FPGA-k esetén legelterjedtebb kapcsolás-technológia), az SRAM-ban tárolt inicializáló értéktől függően vezéreli a tranzisztor gate-elektródáját SRAM cella + multiplexer: tetszőlegesen programozható az SRAM cellában tárolt értéktől függően (kiválasztó jel) vezérelhető a multiplexer Lebegő kapus tranzisztor (Floating Gate) technológia: elektromosan tetszőlegesen programozható, a mai EEPROM/Flash technológia alapja. 47

a.) SRAM cellás Tulajdonságai: (pl Xilinx, Altera) végtelen sokszor újraprogramozható (statikus RAM) táp kikapcsolása után az SRAM elveszti tartalmát bekapcsoláskor (inicializáláskor) a programot be kell tölteni, fel kell programozni az SRAM cellára egy áteresztő tranzisztor van csatolva. A tranzisztor vagy kinyit (vezet), vagy lezár. Az SRAM értéke, ami egy bitet tárol ( 0 vagy 1 ) letölthető. Összeköttetéseket, vagy MUX-ok állását is eltárolja. 1 bit tárolása az SRAM-ban (min. 6 tranzisztorból áll) sok tranzisztor (standard CMOS), nagy méret, nagy disszipáció nem kell frissíteni az SRAM-ot nagy 0.5-2 kω átmeneti ellenállás nagy 10-20 femtof parazita kapacitás 48

b.) MUX - multiplexeres Tulajdonságai: az SRAM-ban tárolt 0 vagy 1 értéket használunk a Multiplexer bemeneti vonalának kiválasztásához. (Működése hasonló az SRAM celláéhoz.) /Bemenetek közül választ a szelektáló SRAM-beli érték segítségével és a kimenettel köti össze./ S=0/1 output 49

c.) Antifuse A tranzisztor Gate-jét amorf kristályos Si alkotja, amelyet relatíve nagy feszültség (kb 20-30V) hatására átkristályosítunk (átolvasztás), így vezetővé válik véglegesen. Pl. Texas Instruments, Actel, QuickLogic alkalmazza ezt a technológiát. Tulajdonságai: A dielektrikum átégetése irreverzibilis folyamat, nem lehet újraprogramozni csak egyetlen egyszer programozható (OTP) kis méreten disszipáció megvalósítható, kis kis átmeneti ellenállás 300 Ω kis parazita kapacitás 1.1-1.3 femtof előállításához sok maszkréteg szükséges, drága technológiát igényel Típusai ONO (Oxid-Nitrid-Oxid) Amorf Si 50

d.) Floating gate Két-gates tranzisztor**, melynek középső gate-je a lebegő gate, mely tárolja az információt. A másik külső gate fix (control, vagy érzékelő gate), biztosítja az írást/olvasást. Programozható összeköttetéseknél, csomópontokban is használatos. Tulajdonságai: Programozása/írás: control gate segítségével töltéseket viszünk fel a lebegő Gate-re, kinyit a tranzisztor többször törölhető (kis ablakon keresztül UV fénnyel) kikapcsoláskor is megőrzi tartalmát (non-volatile, akár 99 évig), töltések nem sülnek ki nagy 2-4 kω átmeneti ellenállás nagy 10-20 femtof parazita kapacitás PL. Intel, Actel, Lattice **Megj: 2012. Intel tri-gate 3D tranzisztora (22 nm) 51

e.) EPROM / EEPROM / Flash Tulajdonságai: Floating-gate technológiát alkalmazza! 10000x szer programozható Megőrzi tartalmát (Non-volatile) UV-fénnyel törölhető (EPROM) Elektromosan törölhető (EEPROM / Flash) Nagy felület Nagy átmeneti ellenállás, nagy parazita kapacitás További CMOS gyártási lépések (sok maszk réteg) szükségesek drága Pl: Altera (3000, 5000 - első sorozatai) 52