igitalteknik F4 Programmerbara logikkretsar igitalteknik F4 bild
En programmerbar krets... In Programmerbar krets Kombinatorisk eller sekventiell funktion Ut Innehållet i den programmerbara kretsen är en "råvara" som kan programmeras till önskad funktion. Hur ser ett sådant innehåll ut? igitalteknik F4 bild 2
Ett minne... Tvådimensionell array med ettor och nollor Raderna kallas ord; index kallas adress En enskild etta/nolla kallas bit ntalet ettor/nollor på en rad kallas ordlängd dressen är insignal, utpekat ord är utsignal +5V +5V +5V +5V Intern organisation: n 2 - ec i j ord = ord = n- dress Bitkolonner igitalteknik F4 bild 3
En kombinatorisk funktion i ROM: F = ' B' + B' ' + B' F = ' B' + ' B ' + B F2 = ' B' ' + ' B' + B' ' F3 = ' B + B' ' + B ' dress B F F F 2 F 3 ROM: 8 ord a 4 bitar Ordinnehåll B F F F 2 F 3 adress utsignaler igitalteknik F4 bild 4
Minnet Ett minne omfattar samtidigt alla rader i funktionstabellen Konsekvenser: Vi har inget för att minimera funktionen. (en tar alltid lika stor plats) etta är slöseri med kiselyta. Slutsats: Vi behöver en teknik som utnyttjar minimering... igitalteknik F4 bild 5
PL och PL Förtillverkade "byggblock" uppbyggda med N/OR-grindar (eller NOR, NN). Programmeras genom att göra alternativt bryta kopplingar mellan grindarna. Blockdiagram för en programmerbar array på N/OR-form: Insignaler rray med N-grindar Produkttermer rray med OR-grindar Utsignaler igitalteknik F4 bild 6
PL och PL en bärande iden: elade produkttermer Kopplingstabell Exempel: F = + B' ' F = ' + B F2 = B' ' + B F3 = B' + Produkt term B B B - - In B - - - - F F Ut F 2 F 3 elade termer igitalteknik F4 bild 7
PL och PL B Utgångsläget: lla möjliga kopplingar är tillgängliga före programmeringen. F F F2 F3 igitalteknik F4 bild 8
PL och PL B Programmering: Vid programmeringen "bränns" de icke önskade kopplingarna bort. B B' ' B'' Obs: Vissa strukturer programmeras genom att tillverka kopplingar i stället för att "bränna" dem. F F F2 F3 igitalteknik F4 bild 9
PL och PL lternativ representation för strukturer med många ingångar: För att slippa rita alla ledningar används ofta följande notation: Exempel: F = B + ' B' F = ' + ' igitalteknik F4 bild
PL och PL Exempel: Multipla funktioner av, B, : F = B F2 = + B + F3 = B F4 = + B + F5 = xor B xor F6 = xnor B xnor B B B B B B B B B B F F2 F3 F4 F5 F6 igitalteknik F4 bild
PL och PL Skillnaderna mellan PL (Programmable rray Logic) och PL (Programmable Logic rray): PL-konceptet: Fasta kopplingar mellan N- och OR-planen begränsar topologin i OR-arrayen PL: En given kolonn i OR-arrayen har bara tillgång till en delmängd av de möjliga produkttermerna PL-konceptet: programmerbar kopplingsmatris mellan N- och OR-planen igitalteknik F4 bild 2
Exempel: B W Y Z PL och PL B B K-diagram för W B B B K-diagram för B Minimerade Funktioner: W = + B + B = B ' Y = B + Z = 'B'' + B + ' + B' ' B K-diagram för Y B K-diagram för Z igitalteknik F4 bild 3
PL och PL Exempel: en programmerade PL:en Fyra produkttermer per OR-grind B igitalteknik F4 bild 4
PL och PL en alternativa lösningen: 4 I-kapslar i stället för PL/PL-kapsel B B B 2 2 \ \ 3 2 W B \ \ B \ \ \B \ 3 5 3 4 4 Z B \ B 2 Y : 744 sex st inverterare 2,5: 74 fyra st 2-input NN 3: 74 tre st 3-input NN 4: 742 två st 4-input NN igitalteknik F4 bild 5
Ett exempel till... = = + 2 = 2 + 2 2 = 2 + 2 = 2 + 2 Z = +. 2. 2 8. 2 9. 2 6. 2 7. 24. 25. 2 32. 33. not used 4. 4. 2 2 8 9 6 7 24 25 32 33 4 4 H8 PL: insignaler, 8 utsignaler, 2 produkttermer per OR-grind: 2 3 4 5 8 9 2 3 6 7 2 2 24 25 28 29 3 3 2 2 Z igitalteknik F4 bild 6
Ett exempel till... 2 3 4 5 8 9 2 3 6 7 2 2 24 25 28 29 3 3 2 2 2 3 4 5 6 7 8 9 PLH8 N Gate rray 2 9 8 7 6 5 4 3 2 2 Z 2 8 9 6 7 24 25 32 33 2 2 4 4 Z igitalteknik F4 bild 7
Mer avancerade PL-arkitekturer: PL-arkitektur med klockat register Exempel: en del av en automat: 2 = 2 + 2 : LK Three-stateutgång OE 2 2 2 + 2 2 2+ 2+ 2+ 2 + 2 2 2 Återkoppling av registerinnehåll (2) igitalteknik F4 bild 8
vancerade arkitekturer LK OE PL med programmerbar polaritet på utgången - OR-PL Fördelen med OR-PL: Paritetes- och aritmetiska operationer B B B B B B B B B B B B igitalteknik F4 bild 9
OR PL: FIRST FUSE NUMBER 2 3 INREMEN T 4 8 2 6 2 24 28 32 36 4 44 4 8 2 6 2 24 28 32 36 Två komponenter... 23 22 2 FIRST FUSE NUMBER S 2 3 INREMEN T 32 64 96 28 6 92 224 256 288 32 352 384 46 448 48 PL med register: 4 8 2 6 2 24 28 9 8 4 48 52 56 6 2 52 544 576 68 64 672 74 736 7 5 4 6 64 68 72 76 9 768 8 832 864 896 928 96 992 6 8 84 88 92 8 5 24 56 88 7 2 52 84 5 96 4 8 7 6 26 248 8 2 6 2 24 6 7 28 32 344 376 48 44 472 54 4 9 28 32 36 4 5 8 536 568 6 632 664 696 728 76 3 44 48 52 56 3 INREMEN T 4 8 2 6 2 24 28 32 36 NOTE: FUSE NUMBER = FIRST FUSE NUMBER + INREMENT 4 9 792 824 856 888 92 952 984 26 2 igitalteknik F4 bild 2
... och en till: P22V PL - klarar ett stort antal produkttermer per utsignal. INREMENT 294 FIRST FUSE NUMBERS 44 88 32 76 22 264 38 352 396 4 8 2 6 2 24 28 32 36 4 SYNHRONOUS RESET (TO LL REGISTERS) R SP R P 589 588 23 2948 2992 336 38 324 368 322 3256 33 3344 3388 3432 3476 352 3564 368 OUTPUT LOGI MROEL L P - 588 R - 589 8 44 6 2 484 528 572 66 66 74 748 792 836 88 924 OUTPUT LOGI MROELL P - 58 R - 58 22 3652 3696 374 3784 3828 3872 396 396 44 448 492 436 48 4224 4268 OUTPUT LOGI MROEL L P - 582 R - 582 7 3 968 2 56 44 88 232 276 32 364 48 452 496 54 584 628 672 76 76 84 848 892 936 98 224 268 22 OUTPUT LOGI MROELL P - 582 R - 583 OUTPUT LOGI MROELL P - 584 R - 585 2 2 7 8 432 4356 44 4444 4488 4532 4576 462 4664 478 4752 4796 484 4884 4928 4972 56 56 54 548 592 5236 528 5324 OUTPUT LOGI MROEL L P - 5822 R - 5823 OUTPUT LOGI MROEL L P - 5824 R - 5825 6 5 4 9 256 5368 22 2244 2288 2332 2376 242 2464 258 2552 2596 264 2684 2728 2772 286 286 OUTPUT LOGI MROELL P - 586 R - 587 9 542 5456 55 5544 5588 5632 5676 572 5764 OUTPUT LOGI MROEL L P - 5826 R - 5827 4 SYNHRONOUS PRESET (TO LL REGISTERS) 3 5 INREMEN T 4 8 2 6 2 24 28 32 36 4 igitalteknik F4 bild 2
Mer omfattande komponenter Problem: N-OR strukturer är relativt begränsade då de t ex inte kan dela produkttermer mellan OR-funktionerna. Lösning: et finns ett antal metoder att bygga grindarrayer och kopplingsnät för att binda samman dessa. Beteckningar: PL - Programmable logic device FPG - Field-programmable gate array Några representativa lösningar: ltera Multiple rray Matrix (M) ctel PG ilinx logical cell array igitalteknik F4 bild 22
lteras Multiple rray Matrix (M) EPM528: 8 fasta insignaler 52 I/O-anslutningar 8 Logic array blocks (LBs) 6 Macroceller/LB 32 Expanders/LB LB LB H Logic rray Blocks (LB) (lika med macroceller) Globalt kopplingsnät: Programmerbar kopplingsmatris LB B LB LB P I LB G LB F LB E igitalteknik F4 bild 23
LB-arkitekturen Macrocell RRY I/O Block I/O Pad Macrocell P-Termer I N P U T S P I Expander Product Term RRY I/O Pad Expander P-Termer Expandertermerna delas av alla macroceller i ett LB igitalteknik F4 bild 24
En macrocell (8-48 st/lb) lk lock mux N- rray Output mux P Invert ontrol Reg clr Feedback mux Programmable or T flip flop igitalteknik F4 bild 25
Kopplingsnätet (PI) PI - Programmable Interconnect rray - används för att förmedla utsignaler från macrocellerna mellan de olika LB-enheterna. - detta medger programmering av mycket komplexa funktioner igitalteknik F4 bild 26
ctel Programable Gate rrays Rader med logikblock, 8 ingångar, en utgång Vippor byggs upp med korskopplade grindar Kopplingsvägar mellan logikblocken nti-fuse Technology: I/O Buffers, Programming and Test Logic I/O Buffers, Programming and Test Logic nvänd "antisäkringar" för att bygga upp I/O Buffers, Programming and Test Logic långa ledningar av korta segment. Logikblock Kopplingsvägar I/O Buffers, Programming and Test Logic igitalteknik F4 bild 27
ctel logikmoduler Grundmodulen är en modifierad 4: Multiplexer: Exempel: Implementation of S-R Latch SO S S R "" 2: MU "" 2: MU 2: MU Y 2: MU 2 3 2: MU "" 2: MU SOB S igitalteknik F4 bild 28
ctel kopplingsnät Logikblock Horisontell ledningsbana nti-fuse Vertikal ledningsbana igitalteknik F4 bild 29
ctel routing kryss markerar en "anti-fuse" minimerar kopplingsarbetet för tidskritiska kretsar de flesta kopplingar sker i 2-3 steg Logikblock Insignal Utsignal från logikblock Logikblock Insignal igitalteknik F4 bild 3
ilinx logic cell array IOB IOB IOB IOB Bygger på MOS minnesteknologi: programmeras vid användningen! IOB lla programmerbara elemen är anslutna via seriella skiftregister Programmeras genom att skifta in en sträng med :or och :or vid start IOB LB Kopplingsgator LB Generell arkitektur: Logikblock (LBs) 64-24 st IO-Block (IOBs) Kopplingsgator IOB IOB LB LB igitalteknik F4 bild 3
Ett LB Res IN B omb. funct. generator F Mux R E Mux E lk 2 G Mux Mux R E Mux Y lk en igitalteknik F4 bild 32
Exempel: 4-bit binär adderare 3 B3 2 B2 B B in Metod : Heladderare, 4 LB fördröjer carry out LB LB LB LB out S3 2 S2 S S 3 B32 B2 B Bin Metod 2: 2 st tvåbitars adderare (3 LBs per styck) ger 2 LBs för att generera carry out LB out S3 S2 LB 2 S S igitalteknik F4 bild 33
ilinx kopplingsnät Kopplingstyper irekt anslutning: Mellan näraliggande LB:er Switchmatriskoppling Mellan godtyckliga LB:er Global Long Line och Horizontal/Vertical Long Lines Mellan godtyckliga LB:er vid höga tidskrav irect onnections Horizontal Long Line Horizontal Long Line I E B LB K Y E R I E B LB2 K Y E R Switch Matrix I E B LB K Y E R I E B LB3 K Y E R Vertical Long Lines Global Long Line igitalteknik F4 bild 34
igitalteknik F4 bild 35 ilinx exempel Funktionerna bör placeras så att användningen av direkta kopplingar maximeras... TS Y I B K E R E Y I B K E R E Y I B K E R E Y I B K E R E Y I B K E R E Y I B K E R E F F ST H H TS TS TL TL TS TS TL TS
Begränsningar Kopplingsmatriserna tar stort utrymme och innebär en väsentlig begränsning Generella logikblock innebär i många fall slöseri med både tid och plats men är ett mindre problem än kopplingsnäten Snabb tillverkning av kretsar uppväger ofta dessa begränsningar, i synnerhet i prototyptillverkning små serier igitalteknik F4 bild 36
Några alternativ... Problem: Vi vill fylla en en- eller tvådimensionell matris med standardkretsar som kan användas för att realisera kombinatoriska kretsar: Vad skall finnas i logikblocken??? igitalteknik F4 bild 37
Endimensionell array: Skapa en modul med följande funktion: Z = Y Y2 Y Y Z Kretsen programmeras till en av de nio tillgängliga kombinationerna: = Y2 + Y Y2 + Y Y2 Krav för funktion: Vi måste kunna skapa N, OR och invertera N: Z = Y och Z = Y OR: = Y2 + Y och = Y2 + Y Inverterare: Z = Y för Y = och = Y2 + Y för Y = och Y2 = igitalteknik F4 bild 38
Endimensionell array: Funktionen ƒ = 23 + 23 2 2 3 2 3 2 3 2 2 3 2 3 Y Z Y Z Y Z Y Z Y Z Y Z Y2 Y2 Y2 Y2 Y2 Y2 ƒ Z = Y = Y2 Z = Y Z = = Y2 = Y2+Y Z = Y = Y2 Z = Y Z = = Y2 = Y2+Y igitalteknik F4 bild 39
Tvådimensionell array: Skapa en modul med följande funktion: Krav för funktion: Vi måste kunna skapa N, OR och invertera Y Z N: = Y OR: Z = Y + Y (Exor duger för att göra OR på mintermer där högst en är ett!) Z = Y + Y (Halvadderare!) = Y Inverterare: Z = för Y = och Z = Y för = igitalteknik F4 bild 4
Tvådimensionell array: 3 Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Samtliga mintermer bildas i de åtta kolonnerna 2 Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Bilda (E)OR av de mintermer som ingår i funktionen Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z ƒ igitalteknik F4 bild 4
Tvådimensionell array Hur gick det till? 3 Y Z 3 Y Z 3 Y Z 3 2 3 Y Z 2 + 3 3 Y Z 3 3 + 2 + 3 = 2 23 + 23 Y Z Y 3(2 + 3) = 23 Z ( + 23) + 23 = + 2 23 23( + 23) = 23 Y Z 23 Y Z 23 etc... igitalteknik F4 bild 42