FPGA

 

En af tidens mest hotte kredstyper kaldes Field Programmable Gate Array. Typen er p? kort tid blevet absolut dominerende indenfor digital hardware. Specielt sammen med programmeringssproget VHDL giver det mulighed for fleksible og effektive l?sninger med h?j densitet.

Hvad der is?r g?r typen effektiv og nyskabende, er dens indgangskredsl?b. I grupper, ofte 4 og 4, f?res indgangssignalerne, som adressebit og via en passende dekoder, til en lille statisk RAM (EPROM-typer https://www.okreplicawatch.com/ er p? vej), som er 1 bit bred og med en dybde svarende til antallet af indgange i 2 potens, alts? 16, hvis gruppest?rrelsen er 4. Dette kaldes for en Look Up Table eller kort LUT. Ved passende programmering af RAM'en kan man nu f? alle logiske funktioner (inklusive nogle stykker, som ikke har noget navn) i det samme kredsl?b.

Udgangen fra LUT'en (eller rettere LUT'erne, da der gerne er flere) f?res til yderligere kredsl?b, som er forskellig for de forskellige fabrikater, men der er altid en eller flere flip-flopper. Der er desuden kredsl?b, som muligg?r sammenkobling af LUT'er p? tv?rs og andre hj?lpekredsl?b.

Et antal af disse kredsl?b sidder i en matrix, der i en lille kreds (Xilinx XC3S200) har 24 r?kker og 20 s?jler alts? i alt 480 positioner. 

Imellem de enkelte positioner er et stort antal ledere af forskellig l?ngde. De korte g?r fra en position til nabopositionen, de mellemlange r?kker over et antal positioner og de lange g?r fra kant til kant. Hertil kommer, at et s?t g?r vandret og et andet lodret. I mange af krydsene mellem de vandrette og lodrette ledere sidder switse, som tillader at sammenkoble alle input og output fra de forskellige positioner og man kan s?ledes forme sm? og store kredsl?b.

Selve den fysiske kreds er udstyret med et antal I/O-ben, der normalt alle er ens og bidirektionelle. Hvert ben f?res til et kredsl?b, som supporterer et stort antal (ofte mere end 20) I/O-standarder og derefter ind i det tidligere n?vnte ledersystem. Det betyder at enhver fysisk indgang kan kobles til enhver LUT og udgange ogs? frit kan v?lges.

Som det fremg?r, skal der programmeres et meget stort antal kredsl?b (LUT'er, omskiftere, I/O etc.) f?r kredsen kan virke. Dette g?res med et antal konfigurationsbit. Den tidligere n?vnte XC3S200 skal s?ledes tilf?res godt en megabit.

Denne konfigurering kan ske p? forskellig vis. En m?de er at anvende en mikroprocessor, en anden er at anvende en speciel programmeringsstyrekreds, men nogle FPGA'er kan selv styre programmeringen og skal blot tilsluttes en (speciel) EPROM. N?r str?mforsyningen tilsluttes, bliver konfigureringsbittene automatisk indl?st og kredsen er parat til at arbejde.

Nogle kan endda ?ndre konfiguration, medens de arbejder. P? denne m?de kan en MP3-afspiller blive til en mobiltelefon og vende tilbage til MP3-afspiller n?r samtalen er slut.

Alt denne programmering skal selvf?lgelig styres og her kommer VHDL lige tilpas. Det er et hardware-n?rt sprog, som muligg?r b?de at arbejde signal for signal og mere overordnet. Desuden er det nemt at genanvende tidligere udviklede og afpr?vede kredsl?b, ligesom det er nemt at g? til en st?rre kreds. Sidst, men ikke mindst er der effektive simulationsv?rkt?jer, s? hardwaren kan testes "p? skrivebordet" og dermed forbedre muligheden for succes hos kunden.

Hvor meget kan der v?re i en FPGA? Det afh?nger selvf?lgelig af typen, men ogs? af, hvor effektivt VHDL programmet er skrevet. Som et eksempel kan n?vnes, at en komplet Z-80 CPU fylder godt halvdelen af ovenn?vnte XC3S200. Der er alts? rigelig plads til en UART og noget paralleloutput samtidig.

 

Links til FPGA-producenter:

                                                    www.altera.com
  
                                                 www.latticesemi.com
  
                                                 www.xilinx.com