Un circuit integrat logic programabil ( FPGA , dispozitiv logic programabil în engleză , PLD ) este o componentă electronică ( circuit integrat ) utilizată pentru a crea circuite electronice digitale configurabile . Spre deosebire de circuitele digitale convenționale , logica FPGA nu este determinată în timpul producției, ci este setată prin programare ( proiectare ). Pentru programare, se utilizează un programator și un IDE (mediu de depanare), care vă permit să setați structura dorită a unui dispozitiv digital sub forma unei scheme de circuit sau a unui program în limbaje speciale de descriere hardware ( Verilog , VHDL , AHDL ). , și altele). O alternativă la FPGA sunt:
Unii producători oferă procesoare software pentru FPGA-urile lor care pot fi modificate pentru o anumită sarcină și apoi încorporate în FPGA. Astfel:
FPGA este utilizat pe scară largă pentru a construi dispozitive digitale de diferite complexități și capacități , de exemplu:
În 1970, Texas Instruments (denumită în continuare „TI”) a dezvoltat circuite integrate mascate (adică programabile folosind o mască, programabile cu mască în engleză ) (denumite în continuare CI) bazate pe ROM asociativă (ROAM) de la IBM . Acest cip a fost numit TMS2000 și a fost programat prin alternarea straturilor de metal în timpul procesului de fabricație IC . TMS2000 avea până la 17 intrări și 18 ieșiri cu 8 flip-flop JK ca memorie. Pentru aceste dispozitive, TI a inventat termenul PLA . matrice logica programabila - matrice logica programabila.
PAL ( logica matrice programabilă ) este o matrice programabilă (matrice) de logică. În URSS, PLA și PLM nu diferă și au fost desemnate ca PLA ( matricea logică programabilă ) . Diferența dintre PLA și PLM este accesibilitatea programării structurii interne (matrici).
GAL ( logica generală a matricei ) sunt FPGA-uri care au o matrice AND programabilă și o matrice SAU fixă.
CPLD-urile ( eng. complex programmable logic device - complex programmable logic devices) conțin blocuri logice programabile relativ mari - macrocelule conectate la ieșiri externe și magistrale interne. Funcționalitatea CPLD este codificată în memoria nevolatilă , deci nu este nevoie să le reprogramați la pornire. Poate fi folosit pentru extinderea I/O lângă cipuri mari sau pentru preprocesarea semnalului (de exemplu , controler portul COM , USB , VGA ).
FPGA ( field-programmable gate array ) conțin blocuri de multiplicare-sumare, care sunt utilizate pe scară largă în procesarea semnalului (DSP, ing . procesare digitală a semnalului ), precum și elemente logice (de obicei bazate pe tabele de conversie - tabele de adevăr) și blocurile lor de comutare . FPGA-urile sunt de obicei utilizate pentru procesarea semnalului, au mai multe porți logice și sunt mai flexibile în arhitectură decât CPLD-urile. Programul pentru FPGA este stocat în memoria distribuită, care poate fi executată atât pe baza celulelor RAM statice volatile (astfel de microcircuite sunt produse, de exemplu, de Xilinx și Altera ) - în acest caz, programul nu este salvat când sursa de alimentare a microcircuitului este pierdută și pe baza celulelor de memorie flash nevolatile sau a jumperilor antifuzibil (astfel de microcircuite sunt fabricate de Actel și Lattice Semiconductor ) - în aceste cazuri, programul este salvat atunci când se întrerupe alimentarea. Dacă programul este stocat în memorie volatilă , atunci de fiecare dată când microcircuitul este pornit, acesta trebuie reconfigurat utilizând bootloader-ul, care poate fi, de asemenea, încorporat în FPGA-ul însuși. O alternativă la FPGA FPGA-urile sunt procesoarele de semnal digital mai lente. FPGA-urile sunt, de asemenea, utilizate ca acceleratoare universale de procesor în supercomputere (de exemplu, computerul Cray XD1 de la Cray , proiectul RASC de la Silicon Graphics ("SGI")).
Tehnologii de procesoare digitale | |||||||||
---|---|---|---|---|---|---|---|---|---|
Arhitectură | |||||||||
Arhitectura set de instrucțiuni | |||||||||
cuvânt mașină | |||||||||
Paralelism |
| ||||||||
Implementări | |||||||||
Componente | |||||||||
Gestionare a energiei |