De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

PROM = niet altijd ideaal

Verwante presentaties


Presentatie over: "PROM = niet altijd ideaal"— Transcript van de presentatie:

1 PROM = niet altijd ideaal
PROM blijkt niet ideaal te zijn als de te realiseren functie(s) niet alle ingangsvariabelen omvat(ten) Daarom: andere oplossingen gewenst ! Het probleem bij de PROM situeert zich in de vaste, volledig uitgedecodeerde AND-matrix (adresdecoder) Indien deze AND-matrix nu ook programmeerbaar zou zijn, dan kan het probleem misschien opgelost zijn ! Deze oplossingsmethode is gerealiseerd is de PLA : PLA = Programmable Logic Array

2 PROM => PLA PLA PROGRAMMEERBAAR VAST
vaste AND-matrix, programmeerbare OR-matrix programmeerbare AND-matrix, programmeerbare OR-matrix VAST PROGRAMMEERBAAR

3 PLA = Programmable Logic Array
programmeerbare AND-matrix, programmeerbare OR-matrix C C’ B B’ A A’ Fusable links Fusable links = “opblaasbare zekeringen”. Eens doorgebrand zijn deze permanent open. PROGRAMMEERBAAR

4 PLA = Programmable Logic Array
Zeer flexibele bouwsteen: niet alleen de OR-matrix is programmeerbaar, maar ook de AND-matrix is nu volledig programmeerbaar we kunnen dus voor elke individuele minterm zelf bepalen welke variabele er wèl en welke er nièt deel van uitmaakt Voorbeeld: De functies worden samengesteld door het programmeren van het OR-vlak : Om de afzonderlijke mintermen samen te stellen, gaan we in het AND-vlak een aantal zekeringen doorblazen. ( X = intacte zekering) F G H J F G H J F G H J F G H J F G H J

5 PLA = Programmable Logic Array
Zeer flexibele bouwsteen: volledig programmeerbare AND-matrix en OR-matrix Goed idee, maar … er is meer interne logica nodig om beide arrays program-meerbaar te maken hierdoor wordt de logica trager en de component duurder PLA is nooit echt doorgebroken in de praktijk

6 PAL = Programmable Array Logic
Andere basisstructuur: om opnieuw tot een werkbare component met toch de nodige flexibiliteit te komen, past men de configuratie van de PLA aan zodat we eigenlijk komen tot de omgekeerde ROM-configuratie: men houdt de AND-matrix volledig programmeerbaar, terwijl de OR-matrix vast wordt deze nieuwe component krijgt de naam PAL = Programmable Array Logic

7 Vergelijkend overzicht:
PAL: programmeerbare AND, vaste OR PROM: vaste AND, programmeerbare OR PLA: programmeerbare AND, programmeerbare OR

8 PAL : voorbeeld van realisatie van 2 functies
x betekent verbinding aanwezig (zekering is niet doorgeblazen) DC D’C’ F1 = DC + D’C’ + BA’ + B’A BA’ B’A DA CB’ F2 = DA + CB’ + D’C’BA D’C’BA niet-gebruikte minterm: alle zekeringen mogen intact blijven X vereenvoudigde notatie

9 Eenvoudigste PAL : PAL10H8
UCC 10 ingangen IN1 8 (actief hoge) uitgangen OUT1 elke uitgang wordt gevormd als de logische som van (slechts) twee mintermen, die kunnen samengesteld worden uit de tien ingangen (en hun inverse) elke uitgang IN2 OUT2 IN3 OUT3 IN4 OUT4 IN5 OUT5 geheel is ondergebracht in een 20-pins IC-behuizing : 10 ingangen + 8 uitgangen + Ucc + GND IN6 OUT6 IN7 OUT7 IN8 OUT8 IN9 GND IN10

10 Naamgeving : PAL10H8 10 ingangen 8 uitgangen
OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 UCC 10 ingangen 8 uitgangen Uitgangen zijn actief HOOG GND

11 Varianten op de PAL10H8 PAL10H8 = 10 ingangen + 8 (actief hoge) uitgangen Varianten met meer ingangen en dus minder uitgangen: PAL12H6 = 12 ingangen + 6 (actief hoge) uitgangen PAL14H4 = 14 ingangen + 4 (actief hoge) uitgangen PAL16H2 = 16 ingangen + 2 (actief hoge) uitgangen blijven in een 20-pins behuizing zitten interne structuur wijzigt wel: per uitgang zijn er twee AND-poorten elke PAL-ingang komt gewoon en geïnverteerd terecht op elke AND-poort; als er P ingangen zijn, heeft elke AND-poort 2*P ingangen PAL10H8 heeft 16 AND-poorten met elk 20 ingangen, PAL16H2 heeft 4 AND-poorten met elk 32 ingangen

12 Varianten op de PAL10H8 PAL10H8 = 10 ingangen + 8 (actief hoge) uitgangen Varianten met meer ingangen en dus minder uitgangen: PAL12H6 - PAL14H4 - PAL16H2 Uitgangen actief LAAG i.p.v. actief HOOG : PAL10L8 = 10 ingangen + 8 (actief lage) uitgangen PAL12L6 = 12 ingangen + 6 (actief lage) uitgangen PAL14L4 = 14 ingangen + 4 (actief lage) uitgangen PAL16L2 = 16 ingangen + 2 (actief lage) uitgangen uitgang = 2 AND-poorten + 1 NOR-poort

13 Beperkingen van de PAL10H8
Elke uitgang van de PAL10H8 is de som van slechts twee mintermen Wat als mijn functie moet opgebouwd worden met meer mintermen? Functies kunnen uitgebreid worden door een uitgang waarop een deelfunctie is gerealiseerd, uitwendig te gaan door-verbinden met een vrije ingang A F Voorbeeld: B C

14 Beperkingen van de PAL10H8
Elke uitgang van de PAL10H8 is de som van slechts twee mintermen Wat als mijn functie moet opgebouwd worden met meer mintermen? Functies kunnen uitgebreid worden door een uitgang waarop een deelfunctie is gerealiseerd, uitwendig te gaan door-verbinden met een vrije ingang De realisatie van zo’n deelfunctie slorpt echter een uitgangspin op, die nu niet meer voor iets anders kan gebruikt worden. Bovendien moet er uitwendig een doorverbinding gemaakt worden.  Er is zeker behoefte aan complexere PALs !

15 Een wat complexere PAL : PAL16L8
maximaal 16 ingangen maximaal 8 uitgangen uitgangen zijn actief LAAG elke uitgang elke uitgang wordt gevormd als de logische som van zeven mintermen hiermee kunnen dus rechtstreeks heel wat grotere sommen mee gemaakt worden Opgelet! het geheel is opnieuw ondergebracht in een 20-pins IC-behuizing 16 ingangen + 8 uitgangen + Ucc + GND vereisen toch minstens 26 pennen? speciale uitgangsstructuur !

16 PAL16L8 : structuur er zijn 10 vaste ingangen (geen 16)
OUT1 OUT2 er zijn slechts 2 vaste uitgangen de 6 overige pinnen kunnen als in-gang OF als uitgang gebruikt worden IO1 IO2 IO3 IO4 IO5 IO6 Om dit te realiseren wordt in deze uitgangs-lijnen een tri-state inverter aangebracht bevindt deze zich in de ENABLE-toestand dan wordt het signaal van de OF-poort geïnverteerd doorgegeven en gedraagt de pen zich als uitgang deze uitgang wordt intern ook teruggekoppeld naar de AND-matrix via de buffer/inverter en is op die manier bruikbaar voor uitbreiding (zonder dat we hiervoor extern een doorverbinding moeten maken) bevindt deze zich in de DISABLE-toestand dan wordt het signaal van de OF-poort NIET doorgegeven (open schakelaar) de pen kan nu als ingang gebruikt worden

17 PAL16L8 : structuur er zijn 10 vaste ingangen (geen 16)
OUT1 OUT2 er zijn slechts 2 vaste uitgangen de 6 overige pinnen kunnen als in-gang OF als uitgang gebruikt worden IO1 IO2 IO3 IO4 IO5 IO6 er zijn MAXIMAAL 8 uitgangen in dit geval kunnen we alleen de 10 vaste ingangspennen gebruiken om variabelen aan te sluiten eigenlijk hebben we nu een PAL10L8 er zijn MAXIMAAL 16 ingangen in dit geval kunnen we alleen de 2 vaste uitgangspennen gebruiken om functies te realiseren eigenlijk hebben we nu een PAL16L2

18 PAL16L8 : structuur 16*2 = 32 lijnen IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 IN9 IN10 Eigenlijk verwijst de 16 in de naam PAL16L8 naar het aantal mogelijke aansluitingen dat we (gewoon én ook nog eens geïnverteerd) hebben in de AND-matrix 64 * 32 = 2048 zekeringen OUT1 OUT2 IO1 IO2 IO3 IO4 IO5 IO6 Bij elk van de 8 mogelijke uitgangen horen telkens 8 AND-poorten. Deze 64 AND-poorten kunnen aan-gesloten worden op elk van deze 32 lijnen. In totaal zijn er hier dus 64 * 32 = 2048 zekeringen in de AND-matrix.

19 Uitgangspolariteit Bij de PAL16L8 zijn de uitgangen allemaal actief laag De AND-OR functie wordt immers gevolgd door een tri-state invertor Er bestaat ook een PAL16H8 met allemaal actief hoge uitgangen Hier wordt de AND-OR functie gevolgd door een tri-state buffer Het zou handig zijn indien we de polariteit per uitgang apart zelf zouden kunnen kiezen ! Dit is gerealiseerd in de PAL16P8 (P = Programmeerbare polariteit) Hiertoe wordt een EXOR bijgeplaatst achter de OR-poort Als de vrije ingang van de EXOR aan de massa ligt, geeft hij het signaal gewoon door Als de vrije ingang van de EXOR aan de plus ligt, geeft hij het signaal geïnverteerd door BUFFER INVERTOR

20 Sequentiële PAL De vorige PALs kunnen in principe alleen combinatorische functies realiseren er is hooguit de mogelijkheid om een LATCH-functie te verkrijgen via (externe of interne) terugkoppelingen naar de AND-matrix er zal ongetwijfeld behoefte zijn aan PALs met ingebouwde flipflops OUTPUT ENABLE CLK De PAL16R8 is een sequentiële PAL hiertoe is in elke uitgangslijn een D-flipflop opgenomen naast de CLK en OE zijn er 8 vaste ingangen en 8 vaste uitgangen (er zijn geen bidirectionele pennen aanwezig) (R = Registered) de clock-ingang is gemeenschappelijk voor alle D-flipflops en zit op pin 1 ideaal voor synchrone schakelingen (CTR, SRG) de output enable van de tri-state inverters is nu ook gemeenschappelijk en zit op pen 11 de uitgangen van de D-flipflops worden echter teruggekoppeld naar de AND-matrix daarom blijft men spreken van een PAL16R8 er zijn immer 16x2 verticale lijnen in het AND-vlak 16*2 = 32 lijnen

21 ‘Gemengde’ PAL CLK OE IO1 IO2 IO3 IO4 Het kan interessant zijn om een PAL te hebben die gedeeltelijk sequentieel en gedeeltelijk combinatorisch is IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 Q5 Q6 Q7 Q8 In de PAL16RP4 is dit gerealiseerd: er zijn 8 ‘zuivere’ ingangen er zijn 4 combinatorische uitgangen er zijn 4 sequentiële uitgangen (R) logische som van zeven mintermen programmeerbare polariteit (P) individuele output enable terugkoppeling naar AND-array ook bruikbaar als ingang logische som van acht mintermen programmeerbare polariteit (P) gemeenschappelijke output enable via één ingangspen D-flipflop in uitgangslijn met gemeen-schappelijke klok via één ingangspen flipflop-uitgang wordt teruggekoppeld naar AND-array

22 Asynchrone PAL De synchrone PAL biedt geen oplossing voor alle mogelijke problemen Daarom: PAL16RA8 R = Registered : 8 flipflops aanwezig A = Asynchroon : geen gemeenschappelijke klok klok van elke flipflop wordt gestuurd door een afzonderlijke minterm “MACROCELL” = uitgangsblok wordt behoorlijk complex bedoeling: grotere flexibiliteit details: op volgende dia

23 Macrocell PAL16RA8 Som wordt gevormd van (slechts) vier producttermen
Resultaat kan al dan niet geïnverteerd worden door de EXOR Voor een COMBINATORISCHE functie wordt dit resultaat via de multiplexer en tri-state invertor naar de uitgang doorgegeven, waarbij de flipflop onbenut blijft Voor een SEQUENTIËLE functie wordt het signaal van de EXOR ingeklokt in de D-flipflop en de multiplexer wordt nu zodanig geschakeld dat de Q-uitgang via de tri-state invertor naar de uitgang komt

24 PAL : samenvattend overzicht
Oorsprong introductie in 1978 door MMI = Monolithic Memories Inc MMI werd later opgekocht door AMD = Advanced Micro Devices ® geregistreerd handelsmerk Oorsprong : 1978, MMI, later AMD, ® Structuur : vaste OR, programmeerbare AND (zekeringen) Structuur programmeerbare AND-array, vaste OR-array Soorten : verschillend aantal in- en uitgangen polariteit van de uitgangen (actief HOOG, actief LAAG, programmeerbaar) terugkoppelingen van de uitgangen naar de AND-matrix flipflops verschillende snelheden : 5 ns … 20 ns … 50 ns Soorten : (uiteindelijk) honderden verschillende types programmeren gebeurt met programmeertoestel Evolutie naar universeel bruikbare component Evolutie we merken duidelijk een evolutie naar steeds complexere schakelingen er komen steeds meer programmeerbare eigenschappen dit leidt tot meer universeel bruikbare componenten principe: opblaasbare zekeringen daarom : bipolaire (TTL) uitvoering voordeel : hoge snelheid (tot tPD = 5 ns !) nadelen : hoge vermogendissipatie, slechts éénmalig programmeerbaar Hedendaagse varianten : PALCxx : CMOS-technologie (EPROM of OTP) PALCExx : E²PROM-technologie


Download ppt "PROM = niet altijd ideaal"

Verwante presentaties


Ads door Google