FPGA: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
EmausBot (arutelu | kaastöö)
P r2.7.2+) (Robot: muudetud hu:Field-programmable gate array
PResümee puudub
1. rida:
{{keeletoimeta}}
[[Pilt:Altera StratixIVGX FPGA.jpg|thumb|300px|Altera Stratix IV GX FPGA]]
'''FPGA''' (''field-programmable gate array'', e.k.ehk väliprogrammeritav väravamassiiv) on [[mikroskeem]], mis on disainitud nii, et selle täpse konfiguratsiooni[[konfiguratsioon]]i määrab selle kasutaja, mitte tootja. FPGA konfiguratsioon määratakse tavaliselt [[riistvara kirjeldamise keel|riistvara kirjeldamise keelega]] (i.k. ''hardware description language'' - HDL), mis on sarnane keelele, millega kirjeldatakse [[rakendus-spetsiifiline mikroskeem|rakendus-spetsiifilisi mikroskeeme]] (''application-specific integrated circuit'' - ASIC). FPGA suudab esitada igat loogilist funktsiooni, mida rakendus-spetsiifiline mikroskeem võib esitada.<ref>{{Cite book |last1=Wiśniewski |first1=Remigiusz |title=Synthesis of compositional microprogram control units for programmable devices |year=2009 |publisher=University of Zielona Góra |location=Zielona Góra |isbn=978-83-7481-293-1 |pages=153}}</ref>
 
FPGA koosneb programmeeritavatest loogikakomponentidest, mida kutsutakse loogikaplokkideks, ja seadistatavatest vaheühendustest, mille abil saab loogikaplokke ühendada. Loogika plokke saab panna tegema keerulisi funktsioone aga ka lihtsaid loogilisi tehteid nagu näiteks [[AND]] ja [[XOR]]. Tihti on FPGA igas loogikaplokis ka mäluelemendid, mis võivad olla lihtsad [[Triger|flipp-floppid]] või keerulisemad mäluüksused.<ref name="FPGA">[http://www.eecg.toronto.edu/~vaughn/challenge/fpga_arch.html FPGA Architecture for the Challenge]</ref>
 
Lisaks digitaalsetele funktsioonidele on mõnel FPGA-l võimalused ka [[analoogelektroonika]] jaoks. Enamasti saab programaatiliselt muuta kiibi jalal oleva signaali muutumise kiirust ja väljundvoolu tugevust. Teiseks on suhteliselt tavalised analoogsignaali võrdlejad. Eksisteerivad ka mõned seadmed, milles on olemas nii [[Analoog-digitaalmuundur|analoog-digitaalmuundurid]] kui ka [[Digitaal-analoogmuundur|digitaal-analoogmuundurid]], mis lubavad FPGA-l käituda nagu [[Süsteemikiip|süsteemikiip]].<ref>Mike Thompson, EETimes [http://www.eetimes.com/showArticle.jhtml?articleID=200000777 Mixed-signal FPGAs provide GREEN POWER]</ref>
 
==Ajalugu==
FPGA kasvas välja [[programmeeritav püsimälu|programmeeritavatest püsimäludest]] (PROM) ja [[programmeeritav loogikaseade|programmeeritavatest loogikaseadmetest]] (PLD). Neid mõlemaid sai programmeerida, aga [[loogikavärav]]ate-vahelised ühendused jäid samaks.<ref name="history">[http://www.fpgacentral.com/docs/fpga-tutorial/history-programmable-logic ''History of the programmable logic'']</ref>
 
Ameerika Ühendriikide Merepinna Sõjandusdepartemang (i.k. '''Naval Surface Warfare Department''') rahastas hilistel 1980ndatel Steve Casselman-i poolt juhitud eksperimenti, mille eesmärgiks oli luua arvuti, mis juurutaks 600&nbsp;000 taasprogrammeeritavat [[loogikavärav]]at. Casselmanil see õnnestus ja sellega seonduv patent anti välja 1992. aastal.
 
Mõned teedrajavad kontseptsioonid ja tehnoloogiad programmeeritavate loogikaväravate ja loogikaplokkide kohta leiduvad patentides, mis anti 1985. aastal David W. Page'ile ja LuVerne R. Petersonile.
 
'''[[Xilinx]]'''-i kaasasutajad Ross Freeman ja Bernard Vonderschmitt leiutasid 1985. aastal esimese kommertsiaalse FPGA - '''XC2064'''.<ref>Peter Clarke, EE Times, "[http://www.eetimes.com/story/OEG20010622S0091 Xilinx, ASIC Vendors Talk Licensing]."</ref> XC2064-l olid programmeeritavad väravad ja programmeeritavad vaheühendused. See oli uue tehnoloogia ja turu algus.<ref name="four">Funding Universe. “[http://www.fundinguniverse.com/company-histories/Xilinx-Inc-Company-History.html Xilinx, Inc.]”</ref> XC2064-l oli 64 seadistatavat loogikaplokki, millel oli kaks 3 sisendiga [[otsingutabel|otsingutabelit]]it.<ref name="clive">Clive Maxfield, Programmable Logic DesignLine, "[http://www.pldesignline.com/products/187203173 Xilinx unveil revolutionary 65nm FPGA architecture: the Virtex-5 family].</ref>
 
[[Xilinx]] jätkas konkurentideta ja kasvas kiirelt kuni 1990ndate keskpaigani, millal konkurendid kanda kinnitasid. 1993. aastaks oli '''Actel'''-i käes 18% kogu FPGA-de turust.<ref name="four"/>
 
1990ndad oli FPGA-de jaoks kiire kasvu periood nii keerukuse kui ka tootmismahtude poolest. Üheksakümnendate alguses kasutati FPGA-sid peamiselt telekommunikatsioonis ja võrgusides. Kümnendi lõpuks leidsid FPGA-d tee tööstuslikesse rakendustesse.<ref name="book">Clive Maxfield, raamat "[http://books.google.com/books?id=dnuwr2xOFpUC&pg=PA4&lpg=PA4&dq=FPGA+Market+growth+1990s&source=web&ots=YjFedB35Vp&sig=EH8y56Cih9iNLEqYXkZ63iO46K4&hl=en&sa=X&oi=book_result&resnum=4&ct=result The Design Warrior's Guide to FPGAs]". Kirjastas Elsevier, 2004. ISBN 0750676043, 9780750676045.</ref>
51. rida:
 
==Rakendused==
FPGA rakenduste seas on [[Signaalitöötlus|signaalitöötlus]], tarkvaraline raadio, [[rakendus-spetsiifiline mikroskeem|rakendus-spetsiifilise mikroskeemi]] prototüüpimine, [[pilditöötlus]], [[kõnetuvastus]], [[krüptograafia]], [[bioinformaatika]], arvutiriistvara [[emuleerimine]], [[raadioastronoomia]] ja kasvav hulk igasugu muid rakendusi.
 
FPGA-d alustasid pakkudes alternatiivi [[kompleksne programmeeritav loogikaseade|komplekssetele loogikaseadmetele]]. Nende ülesandeks oli teiste laialdaselt levinud skeemide kokkuühendamine. Kui FPGA-de võimalused kasvasid, hakkasid nad järjest rohkem ülesandeid täitma. Tänapäeval on mõned kohe päris [[süsteemikiip|süsteemikiibi]] rollis.<ref>[http://www.bdti.com/articles/info_eet0207fpga.htm FPGA/DSP Blend Tackles Telecom Apps]</ref><ref>Mark LaPedus, EETimes [http://www.eetimes.com/showArticle.jhtml?articleID=197001881 Xilinx aims 65-nm FPGAs at DSP applications]</ref>
 
FPGA-d leiavad eriti kasutust just seal, kus osatakse ära kasutada nende arhitektuuri poolt pakutavat paralleelsust. Üheks selliseks alaks on koodimurdmine ja krüptograafiliste algoritmide lahendamine jõumeetodil.
62. rida:
 
==Arhitektuur==
Kõige levinum FPGA arhitektuur<ref name="FPGA" /> koosneb '''loogikaplokkide massiivist''' (sõltuvalt tootjast kutsutakse seda kas seadistavaks loogikaplokiks (CLB) või loogika-massiiviplokkiks (LAB)), sisend/väljund jalgadest ning vaheühendustest. Üldiselt on kõigil ühendustel sama [[ribalaius]].
 
Rakenduse mikroskeem peab olema FPGA-le tõlgendatud adekvaatsete ressurssidega. Kui CBL/<ABBR TITLE="loogika-massiivplokkide">LAB-de</ABBR> ja sisendite/väljundite arvu saab kergesti tuletada konkreetsest disainist, siis ühendusradade arv võib isegi sama palju loogikat sisaldavate skeemide puhul märgatavalt varieeruda. Kuna kasutamata ühendusrajad lisavad hinda, aga mitte tulemust, siis üritavad FPGA-de tootjad pakkuda just piisavalt radasid, et oleks võimalik enamikke disaine, mis sobivad loogika elementide arvu poolest, ühendada. Need arvud on saadud hinnangute, mis on tuletatud Rent-i reeglist, või olemasolevate disainidega eksperimenteerimise abil.
 
Üldiselt koosneb loogikaplokk (CLB või LAB) mõnest '''loogikarakust'''. Tüüpiline loogikarakk koosneb 4 sisendiga [[otsingutabel|otsingutabelist]], [[täisliitja]]st ja D-tüüpi [[Triger|flip-flopist]] nagu all näidatud. Otsingutabel on joonisel jagatud kaheks 3 sisendiga otsingutabeliks. Tavarežiimis on need läbi vasakul oleva [[Multipleksor|multipleksorimultipleksor]]i kombineeritud üheks 4 sisendiga otsingutabeliks. Aritmeetikarežiimis söödetakse nende väljundid liitjale. Režiimi saab valida keskmise multipleksori programmeerimise abil. Väljund võib olla sünkroonne või asünkroonne sõltuvalt joonisel paremal asuva multipleksori programmeerimisest. Praktikas kasutatakse tervet või osa täisliitjast otsingutabeli funktsioonina, et ruumi säästa.<ref>http://www.altera.com/literature/hb/cyc2/cyc2_cii51002.pdf</ref><ref>http://www.altera.com/literature/hb/stratix-iv/stx4_5v1_01.pdf</ref><ref>http://www.xilinx.com/support/documentation/user_guides/ug070.pdf</ref>
 
[[Pilt:FPGA cell example.png|400px|thumb|center|Lihtsustatud näidis loogikarakust]]
97. rida:
Kasutades seejärel mõnda abiprogrammi genereeritakse elektriliste ühenduste nimekiri. Järgnevalt saab selle ühenduste nimekirja konkreetse FPGA peale kaardistada. Selle jaoks on tavaliselt FPGA tootja poolt valmistatud kinnine tarkvara. Kasutaja vaatab tulemuse üle erinevate valideerimismeetoditega, mis võivad näidata nii ajastuse analüüsi kui ka süsteemi simulatsiooni.
 
Kui disainimise ja valideerimise protsess on lõppenud, genereeritakse FPGA tootja tarkvara poolt binaarfail, mille abil seadistatakse lõpuks FPGA. Seadistamiseks kasutatakse [[jadaühendus|jadaühendust]]t või välist mäluseadet.
 
Kõige tavalisemad HDL-id on '''VHDL''' ja '''Verilog'''. Kuid HDL-id on tavaliselt suhteliselt keerulised ja seda võrreldakse oma raskusastme poolest [[Assemblerkeel|assemblerkeelega]].
 
Selleks, et lihtsustada komplekssete süsteemide disainimist FPGA-del, on loodud teeke, mis sisaldavad keerulisi funktsioone ja skeeme, mis on testitud ja optimiseeritud. Inglise keeles on nende nimetus tihtipeale "IP cores" ja nad on saadaval FPGA-de tootjate ja kolmandate osapoolte käest. Enamasti on need tasulised ja kinniste litsentsidega, kuid mõned on ka [[avatud lähtekoodilähtekood]]i ja [[vaba litsentsigalitsents]]iga.
 
==Vaata ka==