Verdere uitbreiding van de GAL GAL = Generic Array Logic doordat de GAL-structuur zo universeel en toch zeer flexibel is, komen er slechts enkele verschillende types op de markt GAL16V8 vervangt bijna alle 20-pens PALs GAL20V8 vervangt bijna alle 24-pens PALs de iets ruimere GAL22V10 is uitgegroeid tot een zeer vaak gebruikte, zeer praktische basiscomponent voor grotere projecten kwamen nog op de markt : GAL26CV12 met 14 vaste ingangen en 12 in/uitgangen in dezelfde PLCC28-behuizing als de GAL22V10 worden nu alle pennen functioneel gebruikt (niet als isp-pennen) GAL6001 en GAL6002 10 vaste ingangen, 10 in/uitgangen en 8 ‘begraven’ uitgangen (niet verbonden met een uitgangspen - zie verder) nog steeds dezelfde PLCC28-behuizing, maar nu is er wat meer interne logica aanwezig
Uiteraard is er interesse in grotere PLD’s door de ontwikkelingen in de IC-fabricage technologie zou nu bv. een 8x hogere dichtheid mogelijk zijn men zou dus nu de GAL16V8 moeten kunnen ‘upscalen’ naar een GAL128V64 (zijnde 8x groter) deze GAL128V64 zou dus 64 ingangen, 64 macrocellen en 64 I/O pennen moeten hebben, uiteraard in een grotere behuizing
Verdere uitbreiding van de GAL : beperkt ! Probleem: bij de GAL16V8 moest elke minterm kunnen samengesteld worden uit 16 variabelen (8 vaste ingangen + 8 in/uitgangen) vermits elke variabele gewoon en geïnverteerd moet kunnen aangesloten worden, moet elke AND-poort in de AND-matrix van de GAL16V8 dus 16*2=32 ingangen hebben bij de GAL128V64 (zijnde 8x groter) zouden we 64 vaste ingangen + 64 in/uitgangen hebben elke AND-poort in de AND-matrix van de GAL128V64 zou dus maar liefst 128*2=256 ingangen moeten hebben !
Verdere uitbreiding van de GAL : beperkt ! Probleem: bij deze 8x upscaling moeten er dus 8 keer meer AND-poorten aanwezig zijn, maar deze moeten elk ook nog eens 8 keer groter zijn de oppervlakte van de 128V64 zou dus 64 keer groter zijn dan die van de 16V8, alhoewel er slechts 8 keer meer in- en/of uitgangen zijn om n keer meer logica te verkrijgen, hebben we dus n² meer chip area nodig deze oplossing is zeer kost-inefficiënt bovendien zou een AND256 minstens 8 keer trager zijn dan een AND32 omwille van capacitieve effecten, lekstromen, … technisch is deze upscaling dus toch niet zonder meer haalbaar daarnaast kan je je afvragen hoeveel functies er ook effectief gebruik zouden maken van alle (of een groot deel van de) 128 variabelen? is het bijgevolg wel nodig dat we al deze variabelen gaan aansluiten op al de aanwezige AND-poorten? neen, we bekijken een andere oplossing
Verdere uitbreiding van de GAL : de EPLD Oplossing: bij de 8x upscaling gaat men de inwendige opbouw van de GAL niet 8x lineair uitvergroten, maar wel 8x naast elkaar kopiëren er zijn nu ook 8 keer meer AND-poorten nodig, maar de poorten zelf blijven even groot (en even snel) elk blokje kan nu alleen maar functies opbouwen rond zijn ‘eigen’ variabelen men zal wel moeten gaan zorgen dat er toch intern (een beperkt aantal) signalen kunnen doorgegeven worden van het ene blokje naar het andere deze oplossingsmethode werd eerst gehanteerd door de firma Altera bij de introductie van hun EPLD’s EPLD = Erasable PLD deze waren gebaseerd op de (UV-wisbare) EPROM-technologie Algemeen spreekt men van CPLD = Complex PLD
CPLD : basisprincipe pins Een ‘Complex PLD’ is de samenvoeging van een aantal GAL-achtige blokken in één IC elk I/O-blok verzorgt de aansluiting met een aantal pennen van het IC om een grotere flexibiliteit te bekomen zorgt men ervoor dat een beperkt aantal signalen on-chip van het ene GAL-blokje worden doorgegeven naar het andere pins
CPLD : basisprincipe in detail Een eerste GAL-achtig blok samengesteld uit een aantal ‘macrocellen’ met het programmeerbare AND-vlak de OR-functie, EXOR voor eventuele inversie, flipflop, uitgangsmultiplexer en tri-state uitgangsbuffer een tweede GAL-achtig blok en tussen beide blokken een aantal programmeerbare verbindingen Praktische componenten : van 2 tot 100 GAL-achtige blokken in een CPLD vaak 16 macrocellen per blok som wordt samengesteld uit 5 à 20 mintermen
Nieuwe kenmerken buried macrocell Probleem: Indien in deze structuur een bepaalde pen als ingang wordt geselecteerd de tri-state uitgangsbuffer wordt hiervoor als open schakelaar gebruikt hierdoor kan de rest van de macrocell echter niet meer gebruikt worden! Om dit verlies te compenseren voorziet men soms een aantal macrocellen die NIET OP EEN UITGANGSPEN AANGE-SLOTEN zijn verder hebben ze dezelfde functionaliteit en interne aansluitmogelijkheden Omdat deze cel niet rechtstreeks aan de buitenkant te zien is, spreekt men van een ‘begraven cel’ of ‘buried macrocell’
Nieuwe kenmerken (2) Product Term Sharing Probleem: Oplossing: indien verschillende functies toch gebruik maken van dezelfde minterm, dan moet deze minterm telkens opnieuw gevormd worden met een andere AND-poort dit is eigenlijk een verkwisting van mogelijkheden er treden bovendien problemen op als er functies moeten samengesteld worden die méér mintermen nodig hebben dan er AND-poorten zijn voor de OR-poort Oplossing: men voorziet een aantal AND-poorten die niet rechtstreeks naar een OR-poort gaan, maar wel teruggekoppeld worden naar het AND-vlak op deze wijze kunnen deze (deel)producttermen in meerdere macrocellen gebruikt worden en kan een functie opgebouwd worden uit een groter aantal mintermen men noemt dit principe Product Term Sharing
Grootte van PLD’s : ‘logic capacity’ Om de grootte van een PLD aan te geven, hanteert men het begrip “equivalent gates” men berekent hoeveel NAND-poorten met 2 ingangen men nodig zou hebben om dezelfde schakeling op te bouwen één macrocell (OLMC) van de GAL22V10 komt bv. ruwweg overeen met zo’n 20 NAND-poorten de ‘logic capacity’ van de GAL22V10 is dus ca. 200 equivalent gates SPLD’s gaan tot zo’n 200 equivalent gates er kunnen zodoende 10 à 20 TTL-IC’s met hun beperkte inhoud (SSI = Small Scale Integration) vervangen worden door één SPLD CPLD’s gaan van 100+ tot 10.000+ equivalent gates let wel op: het aantal equivalente poorten is nooit exact te berekenen en is daarom vaak een (moeilijk te controleren) verkoopsargument ...
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA verscheen op de markt in 1983 gebaseerd op EPROM-technologie : Erasable Programmable ROM te programmeren met programmer wisbaar m.b.v. UV-licht daarom hanteerde Altera de naam EPLD deze reeks bevatte 4 componenten : EP330, EP610, EP910 en EP1810 de eerste drie zijn eigenlijk vervangers voor PAL en GAL pas vanaf de EP1810 komt de structuur van de Complex PLD duidelijk naar voor
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA : EP330, EP610, EP910, EP1810 de EP330 was de kleinste uit de reeks hij bezat slechts 8 macrocellen met de gekende structuur flipflop bruikbaar als SR-, D-, JK- of T-FF CLK kan globaal (synchroon) of lokaal (asynchroon) was eigenlijk bedoeld als vervanger voor de GAL16V8 en de meeste 20-pens PALs uit productie genomen in 1996
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA : EP330, EP610, EP910, EP1810 de EP610 was dubbel zo groot als de EP330 hij bezit 16 macrocellen (met de gekende structuur) deze 16 macrocellen zijn duidelijk opgedeeld in 2 blokken, met ieder hun eigen (globale) klokingang verder zijn er nog 4 ingangspennen (‘dedicated inputs’) verkrijgbaar als EPROM-versie (24-pins ceramische DIL-behuizing) beterkope OTP-versie (One Time Programmable) in 24p PlasticDIL of SOIC , 28p PLCC verkrijgbaar in verschillende ‘speed grades’ : van 35 tot 10 ns propagation delay
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA : EP330, EP610, EP910, EP1810 de EP910 bezit 24 macrocellen deze 24 macrocellen zijn opnieuw opgedeeld in 2 blokken, met ieder hun eigen (globale) klokingang verder zijn er nu 12 ingangspennen verkrijgbaar als EPROM-versie (40-pins ceramische DIL) OTP-versie (40p Plastic DIL of 44p PLCC) verkrijgbaar in ‘speed grades’ van 40 tot 12 ns propagation delay
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA : EP330, EP610, EP910, EP1810 de EP1810 bezit 48 macrocellen deze 48 macrocellen zijn verdeeld over 4 ‘kwadranten’ elk ‘kwadrant’ bezit 8 locale en 4 globale macrocellen bij de locale macrocellen kan er via de LOCAL BUS alleen feedback gebeuren naar andere macrocellen van hetzelfde kwadrant de globale macrocellen hebben ook nog een feedback-pad naar de global bus en kunnen dus bij elke andere macrocell aangesloten worden detailschema’s : lokale globale macrocell verkrijgbaar als EPROM-versie in 68p PGA OTP-versie in 68p PLCC
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA : EP330, EP610, EP910, EP1810 de EP1810 bezit vier kwadranten met elk 8 locale macrocellen
Eerste generatie EPLD’s ‘Classic’-reeks van ALTERA : EP330, EP610, EP910, EP1810 de EP1810 bezit vier kwadranten met elk 8 locale en 4 globale macrocellen
Tweede generatie EPLD’s ‘MAX’-reeks van ALTERA : Multiple Array matriX MAX5000 reeks (1988), MAX7000 reeks (1991), MAX9000 reeks (1993) aanvankelijk gebaseerd op EPROM-technologie (UV-erasable PROM), latere versies als E²PROM (Electrically Erasable PROM) maakt geen gebruik meer van local en/of global bus, maar wel van een Programmable Interconnection Array of Switch Matrix in de bus-structuur van de Classic-reeks was er voor elke uitgang een afzonderlijke draad naar de global en/of local bus bij de switch matrix of PIA (Programmable Interconnect Array) van de MAX-reeks is dat niet meer het geval men voorziet een bepaald aantal verbindingslijnen elke uitgang kàn hierop aangesloten worden alleen de uitgangen die ook effectief teruggekoppeld moeten worden, worden verbonden met een lijn in deze switch matrix
Altera MAX5000 reeks geïntroduceerd in 1988, uit productie in 1996 6 verschillende componenten EPM5016 en EPM5032: slechts één Logic Array Block (LAB) klein, maar snel EPM5064, 5128, 5130 en 5192: multi array matrix voor grotere ontwerpen LAB’s 1 1 4 8 12 macrocells 16 32 64 128 192 macrocells /LAB 16 32 16 16 16 expanders 32 64 128 256 384 user I/O pins 16 24 36 60 / 68 (84) 72 equiv. gates 300 600 1250 2500 3750 EPM5128 in detail
Altera EPM5128 8 ‘dedicated inputs’ 8 LAB’s ingangspennen die in elk blokje van de CPLD beschikbaar zijn 8 LAB’s LAB = Logic Array Block elke LAB groepeert 16 macrocellen en is zodoende te vergelijken met een GAL32V16 wordt in detail bekeken op volgend blad PIA = Programmable Interconnection Array de uitgangen van (de macrocellen in) elk LAB worden intern teruggekoppeld naar een aantal verbindingslijnen elke LAB kan hier ook weer signalen (eventueel afkomstigvan een andere LAB) van aftakken de PIA is zodanig opgebouwd dat de tijdsvertraging van een signaal steeds vast is of een signaal van LAB A nu naar een ingang van LAB B gaat of helemaal naar LAB E, de tijdsvertraging zal in beide gevallen hetzelfde zijn
Altera EPM5128 - LAB 8 LABs (Logic Array Blocks) in de EPM5128 In elke LAB zijn er 16 macrocellen (in detail op volgend blad) daarnaast zijn er nog ‘expanders’ binnen het LAB zijn deze volledig beschikbaar (via de LAB interconnect) naar andere LABs toe zijn de macrocell-uitgangen beschikbaar langs de PIA of Programmable Interconnect Array
Altera EPM5128 - macrocell In elke LAB (Logic Array Block) zijn er 16 macrocellen Elk van de acht LABs is zodoende te vergelijken met een GAL32V16
Altera EPM5128 - pennen 8 LABs met elk 16 macrocellen veronderstelt 128 in/uitgangen toch is de EPM5128 ondergebracht in een 68-pins behuizing in LAB A, D, E en H zijn er slechts 8 van de 16 macrocellen naar buiten gebracht in LAB B, C, F en G zijn er slechts 5 van de 16 macrocellen naar buiten gebracht in totaal zijn dus slechts 48 van de 128 macrocellen extern aansluitbaar de overige macrocellen kunnen enkel als ‘buried macrocell’ gebruikt worden dit is meestal geen nadeel, want er moeten vaak interne tellers, state-machines, decoders enz. gerealiseerd worden, die toch niet naar buiten moeten komen de EPM5130 heeft intern net dezelfde organisatie als de EPM5128, maar is ondergebracht in een 84-pens of een 100-pens behuizing bij de 84-pins behuizing zijn er van elk LAB 6 macrocellen naar buiten gebracht dus ook hier 48 van de 128 macrocellen extern bereikbaar bij de 100-pins behuizing zijn er van elk LAB 8 macrocellen naar buiten gebracht hier zijn er dus 64 van de 128 macrocellen extern bereikbaar
Altera MAX7000 reeks geïntroduceerd in 1991 EPROM technologie vervangen door EEPROM 7 verschillende componenten 600 tot 5000 usable gates 2 tot 16 LABs met telkens 16 macrocellen zeer snelle uitvoeringen: tot 5 ns propagation delay! MAX7000S subfamilie met ISP en JTAG boundary-scan test (vanaf 1996) MAX7000E subfamilie met uitgebreidere mogelijkheden 6 Output Enables, 2 Global Clocks, slew rate control, ... Feature 7032 7064 7096 7128 7160 7192 7256 Usable gates 600 1,250 1,800 2,500 3,200 3,750 5,000 Macrocells 32 64 96 128 160 192 256 LABs 2 4 6 8 10 12 16 Max User I/O 36 68 76 100 104 124 164 tPD (ns) 5 7.5 fcnt (MHz) 178.6 151.5 125
Altera MAX7000 block diagram
Altera MAX7000 macrocell
Altera MAX7000 expanders Shareable Expanders Parallel Expanders
Altera - verdere productfamilies FLEX 10K FLEX 8000 Pins Usable Gates MAX 9000 FLASHlogic MAX 7000 Classic MAX5000