Programmerbar logisk enhet

En programmerbar logisk enhet ( ofte forkortet som PLD ), i digital elektronikk , er en programmerbar integrert krets som er mye brukt i digitale kretser . I motsetning til en logisk port , som implementerer en forhåndsdefinert og ikke-modifiserbar logisk funksjon, er en PLD på produksjonstidspunktet ikke konfigurert til å utføre en spesifikk logisk funksjon, og derfor må den, før den kan brukes i en krets, være programmert.

Historie

Denne typen enhet ble utviklet i andre halvdel av 1960-tallet , med utviklingen ved Harris Semiconductors laboratorier av en "konfigurerbar diodearray". I 1970 skapte Texas Instrument den første integrerte kretsen basert utelukkende på ROAM ( Read Only Associative Memory ) og skapte begrepet PLA (Programmable Logic Array). Nesten i samme periode introduserte Harris PROM ( Programmable Read Only Memory ) på markedet som, i tillegg til å være skrivebeskyttede minner, fant bruk i realiseringen av enkle tilstandsmaskiner eller adressedekodere. I 1973 produserte National Semiconductor en forenklet versjon av PLA-komponenter, kalt DM7575 / DM8575, med bare 14 innganger og 8 utganger og ingen innebygde minneelementer. Ytterligere fremskritt ble gjort i 1978, med introduksjonen på markedet av de første PAL (Programmable Array Logic)-komponentene av Monolithic Memories, Inc. som brukte programmeringsspråket, kalt PALASM (PALA ASseMbler), lik FORTRAN , men med en enkel syntaks som gjorde det mulig å beskrive komplekse logiske funksjoner.

Funksjoner

Programmeringsspråkene som brukes

Det er vanligvis vanskelig og upraktisk å skrive koden for å programmere PLD-ene for hånd, og derfor brukes spesielle datamaskiner og programvare, kalt logiske kompilatorer , som ligner på de klassiske kompilatorene som genererer kjørbare programmer fra kildefiler . Når det gjelder PLDer, kalles kildespråkene hardware description languages ​​(HDL). For eksempel er ABEL -språket egnet for logikk med lav kompleksitet, Verilog og VHDL er egnet for mer komplekse applikasjoner.

Lagre konfigurasjonen

En PLD inneholder både logikk- og minnekomponenter , som inneholder konfigurasjonsinformasjon. Minner kan være av følgende type:

Silisiumantisikringer brukes i PAL-er og lages ved å påføre en spenning mellom to punkter i det indre silisiumlaget på brikken. De har dette navnet fordi de fungerer på motsatt måte av sikringer , som i utgangspunktet leder og bryter når feilstrømmen går.

SRAM-er og RAM-er er flyktige minner, så programmering går tapt når den slås av og må lastes inn på nytt når den startes på nytt, vanligvis automatisk, av en dedikert del av kretsen. Flash-minner er ikke-flyktige, det vil si at de beholder data selv når kretsen er av og kan enkelt slettes og omprogrammeres. En EPROM-celle er basert på MOS - transistorer som kan settes i PÅ-tilstand ved å permanent begrense elektriske ladninger i portterminalen . Programmering gjøres ved hjelp av en enhet kalt PAL-programmerer . Ladningene forblir lagret i mange år, og kan fjernes ved å utsette brikken for høyintensitets ultrafiolett stråling som sendes ut av en EPROM viskelærlampe.

Forholdet til bruk av ROM

Før introduksjonen av PLD-er ble ROM -komponenter brukt til å implementere enhver kombinatorisk logikk fra et gitt sett med innganger. En ROM med m innganger (som tilsvarer adresser ) og n utganger (som tilsvarer data ) kan inneholde ord på n bit. La oss nå forestille oss at inngangene ikke består av en m bit adresse, men i stedet for m uavhengige logiske signaler. Teoretisk er det flere mulige boolske funksjoner til disse m signalene, men strukturen til ROM tillater å definere bare n av disse funksjonene på utgangsterminalene. ROM-en blir med andre ord ekvivalent med n separate logiske kretser, som hver utfører en gitt kombinatorisk funksjon av de m inngangene. Fordelen med å bruke en ROM på denne måten består i det faktum at hver mulig funksjon av de m inngangene kan knyttes til hver av de n utgangene, for å skape en kombinasjonslogikkkrets med maksimal fleksibilitet.

PROM-er (programmerbare ROM-er), EPROM -er ( slettbare PROM- er med ultrafiolette stråler ) og EEPROM -er (elektrisk slettbare PROM-er) kan konfigureres og programmeres ved hjelp av lett tilgjengelig utstyr, uten behov for spesiell maskinvare eller programvareenheter . Generelt kan det skilles mellom logiske enheter som bare kan programmeres én eller flere ganger eller som kan omprogrammeres. Disse enhetene har imidlertid, i lys av deres generiske logikk rettet mot spesifikk programmering, en rekke begrensninger:

Noen av de enklere EPROM-modellene, for eksempel 2716, brukes fortsatt noen ganger på denne måten i dag, spesielt av amatørdesignere ( "den fattige mannens PAL" , som de noen ganger spøkefullt refereres til).

Typer

Interessen for rekonfigurerbare systemer, det vil si for de kretsene som inneholder ulike standardfunksjoner som kan modifiseres av programmet som kjører på prosessoren, har en tendens til å øke i dag. Riktig utforming av denne typen enheter krever at designeren har en spesiell systemtilnærming og vil sannsynligvis bli ledsaget og tilrettelagt av tilgjengeligheten av nye programvareutviklingsverktøy.

PLD-er er allerede på markedet som inneholder en mikroprosessor som utfører de grunnleggende funksjonene (kalt kjerne ) som de programmerbare logikkene er kablet rundt. Denne konfigurasjonen lar designeren fokusere på de spesifikke funksjonene som skal legges til, uten å bekymre seg for arbeidet prosessoren må gjøre i bakgrunnen.

PLA

Det er den enkleste programmerbare logiske enheten, og den første som ble produsert industrielt på slutten av 1970-tallet. Strukturen til en PLA er basert på det faktum at enhver logisk funksjon kan beskrives ved summer av logiske produkter. En PLA er sammensatt av en inngangsmatrise av programmerbare OG logiske porter , forbundet med en serie programmerbare ELLER -er . Arkitekturen til en PLA inkluderer også tilbakemeldingslinjer fra utgangen til AND gate array, som kan brukes som ekstra innganger. De første PLA-enhetene som skal produseres implementerer rene kombinasjonskretser , senere har sekvensielle PLA-er utviklet , som har samme arkitektur som de forrige, men er utstyrt med flip-flops for signalsynkronisering.

PAL

PAL-ene er en videreutvikling av PLA-ene, og skiller seg hovedsakelig i umuligheten av å programmere serien med ELLER-porter. Disse enhetene har også, avhengig av modell, flere mer avanserte arkitektoniske løsninger enn forgjengeren.

LAG

Generic Array Logic , vanligvis forkortet til GAL, er en videreutvikling av Programmerbar Array Logic utviklet av Lattice Semiconductors. Disse logikkene har de samme egenskapene som PAL-er, med tillegg av programmerbare utgangsenheter kalt OLMC-er.

CPLD

Mens LAG-er bare er tilgjengelige i små størrelser, som inneholder tilsvarende noen hundre logiske porter, tillater CPLD-er mer komplekse logiske kretser. Disse enhetene inneholder tilsvarende mange PAL-er koblet sammen av programmerbare sammenkoblinger innkapslet i en enkelt integrert krets . CPLD-er kan utgjøre tusenvis, noen ganger til og med hundretusenvis av logiske porter.

Noen typer CPLD-er er programmert med PAL-programmereren , men denne metoden blir upraktisk når du trenger å koble til komponenter med hundrevis av pinner. En mye mer effektiv metode består i å lodde enhetene på en trykt krets og deretter sende dem, gjennom en PC, en strøm av data som, passende dekodet av de interne kretsene til CPLD-ene, gir dem den nødvendige konfigurasjonen for å utføre den ønskede logikken funksjoner.

Hver produsent har sitt eget navn som identifiserer denne programmeringsmodusen. For eksempel kaller Lattice Semiconductor det "in-system programmering" . I denne forbindelse pågår et standardiseringsprosjekt av JTAG ( Joint Test action Group ).

FPGA

Mens PAL-er utviklet seg til LAG-er og CPLD-er, dukket det opp en ny familie av enheter basert på gate-array- teknologi under navnet FPGA -er . Et eksempel er 82s100-modellen produsert av Signetics på slutten av 1970 -tallet . Disse enhetene bruker en logisk portmatrise som er veldig lik den til en vanlig portmatrise , men programmering gjøres av brukeren i stedet for på fabrikken.

Definisjonen av "felt programmerbar" (dvs. "programmerbar i feltet ") kan virke forvirrende, men begrepet " felt " betyr ganske enkelt i feltet "ut av fabrikken" , derfor på stedet der det brukes av sluttbrukeren . FPGA-er, som CPLD -er, programmeres etter å ha loddet dem til kretskortet. Konfigurasjonen deres er flyktig og må lastes på nytt ved hver omstart og hver gang en annen programmering kreves.

FPGA-er og CPLD-er er vanligvis likeverdige fra et ytelsessynspunkt. Valget kan avhenge av økonomiske hensyn eller designerens personlige erfaring.

Relaterte elementer

Andre prosjekter