Nothing Special   »   [go: up one dir, main page]

Hopp til innhald

FPGA

Frå Wikipedia – det frie oppslagsverket
FPGA.

Ein Field Programmable Gate Array er ein integrert krins sett saman av mange logiske portar i ei matrise. Ein kan programmere koplingane mellom portane, og slik få krinsen til å utføre ei eller fleire oppgåver. I motsetning til ein ASIC kan ein FPGA omprogrammerast istaden for at krinsen må produserast på nytt kvar gang ein skal innføre nye oppgåver. Dette fører til at ein på ein enkel, kjapp og billeg måte kan produsere digitale krinsar i små mengder[1].

Det finst ulike slag programmeringsteknologiar for FPGA-krinsar, som antifuse-basert, SRAM-basert og flash-basert. Dei antifuse-baserte krinsar er dei som toler stråling best og vert difor mykje nytta i romfart og på andre omkverve der ein treng svært pålitande elektronikk. SRAM-baserte krinsar har normalt plass til meir logikk enn dei flash- og antifuse-baserte brikkene, men dei må omprogrammerast kvar gong spenninga vert slegen på og dei er meir utsette for sokalla mjukfeil eller enkelthendingar.

Kva som er dei minste byggjesteinane i FPGA-krinsane varierer frå produsent til produsent. Actel sine antifuse-baserte FPGA-krinsar nyttar til dømes multipleksarar som byggjesteinar medan Xilinx nyttar sokalla konfigurerbare logiske blokker (CLB) der kvar logisk blokk inneheld oppslagstabellar og mentelogikk. Historisk har det vore ei utvikling mot støtt større strukturar, sidan meir kompakt logikk gjev mindre ruting (ruting kan medføra eit vel så stort tilskot til forseinkingar som det transistorane gjer).

Ein SRAM-basert FPGA lyt programmerast kvar gong spenninga går på. Ein antifuse-basert eller flash-basert FPGA treng ein derimot berre å programmera ein gong.

Programmering

[endre | endre wikiteksten]

Funksjonen til ein FPGA vert ofte definert ved hjelp av eit maskinvareskildrande språk slik som VHDL[2] eller Verilog. Koden ein skriv i det maskinvareskildrande språket vert so omsett til teknologispesifikk konfigureringskode og overført til FPGA-en. FPGA-krinsar er eit omkverve der ombruk av kode har vunne fram. Vanlege funksjonsblokker som RAM, FIFO, PCI-grensesnitt, Ethernet-grensesnitt er som regel tilgjengelege frå FPGA-produsenten. Ogso heile prosessorar er tilgjengelege, anten som syntetiserande kjeldekode eller som ferdig konfigureringskode[3]. Det finst òg ein god del open kjeldekode; sjå til dømes OpenCore.[4]

Attåt tradisjonelle digitale FPGA-ar, er det dei siste åra byrja å koma sokalla blandasignal FPGA-ar. Desse inneheld både programmerande digital logikk og analoge funksjonar som AD/DA-omsetjing. Eit døme på ein slik FPGA er Fusion frå Actel.

Produsentar

[endre | endre wikiteksten]

Dei største FPGA-produsentane er Xilinx, Altera og Actel. Xilinx og Altera produserer hovudsakleg SRAM-baserte FPGA-krinsar medan Actel held seg til flash-baserte og antifuse-baserte krinsar.

  1. Maxfield, C., FPGAs: instant access, Newnes, 2008.
  2. Navabi, Z., VHDL analysis and modelling of digital systems, McGrawHill, 1993.
  3. Maxfield, C., FPGAs: world class designs, Newnes, 2009.
  4. OpenCore.org