FPGA hebben soms enkele miljoenen gates. Maar wat houd dat nou precies in? Zijn dit het aantal and, or of flipflops? Ook heb ik ergens gelezen dat elke gate uit 4 transistoren bestaat?

Weet iemand hier iets meer over?

groeten

Nou, de gate capaciteit kan behoorlijk varieeren wat je in de FPGA plaatst. Afhankelijk van de functie wordt er zoveel gates toebedeeld aan die functies. Het is iets ook wat vaak aan marketing onderhevig is. Zelf vertrouw ik dat dus niet.

Een ander veel gebruikte meet methode is het aantal Cells, een cell is een 4 input lookup table, met een flipflopje. De lookup table kan iedere logische functie doen die 4 ingangen nodig heeft. Bij xilinx en altera meestal gelijk.

Bij xilinx alleen kunnen de lookup tables ook zo worden geschakeld als geheugentjes wat bij altera niet kan. Ook daar moet je daar rekening mee houden als je ontwerp veel kleine buffertjes of fifo's gebruikt.

Als je wil gaan kijken in wat voor FPGA je ontwerp past, kun je het met de tools van de verkoper (altera of xilinx) zelf kijken wat er nodig is.

Er is een FPGA(genaamd Spartan van Xilinx) die heeft 1862 logic cells. bedoel je dat? Al heeft deze 40.000 gates...

Op 29 november 2005 14:40:50 schreef Mitchell S:
Er is een FPGA(genaamd Spartan van Xilinx) die heeft 1862 logic cells. bedoel je dat? Al heeft deze 40.000 gates...

Dat is een XCS40 toch?

Ja inderdaad, het is het aantal kolommen maal het aantal rijen maal het aantal cellen per groepje (bij spartans noemen ze het CLB's).

Je komt dan niet aan het getal uit, want xilinx rekent 2,375 cellen per CLB. Dat komt omdat er nog een 3 input lookup table in zit, deze wordt wel zelden gebruikt. Ik reken voor spartan en spartanXL gewoon 2 maal het aantal CLB's is het aantal cellen.

Xilinx:
Bij Virtex en Spartan 2 serie is het weer 4 cellen per "slice" (weer een andere naam). Daar is de organisatie ook weer anders.
De Virtex 2 en spartan 3 serie heb ik nog niet naar gekeken, maar krijg binnenkort een spartan 3E ontwikkelkitje binnen.
De Virtex 4 is weer helemaal anders.

Altera:
Bij de FLEX10K zitten er 8 van die cellen per LAB, maar dan hebben ze nog extra's zoals de EAB blokken (speciaal soort blok met macrocellen) en een geheugen blokken.
De rest van altera heb ik niet zoveel kaas van gegeten, kijk bij twijfel in de datasheets.

Als je meer info wilt hoe die gate counts worden berekend. Heb een application note van xilinx gevonden, altera heeft vast zoiets ook ergens liggen, google er eens naar.
http://direct.xilinx.com/bvdocs/appnotes/xapp059.pdf

Ze hebben het wel over oude chips, de XC4000E / XC4000XL serie. Maar er zijn nog zwermen mensen die de PIC16F84 gebruiken ;)

Bedankt voor de info. Kan ik zeker zeer goed gebruiken. Maar de PIC16F84 is toch een microprocessor?

Op 29 november 2005 15:42:07 schreef Mitchell S:
Bedankt voor de info. Kan ik zeker zeer goed gebruiken. Maar de PIC16F84 is toch een microprocessor?

Jaja, was als een vergelijking dat die dingen oud zijn, zat beetje in mezelf te praten :P

Op 29 november 2005 15:42:07 schreef Mitchell S:
Bedankt voor de info. Kan ik zeker zeer goed gebruiken. Maar de PIC16F84 is toch een microprocessor?

microcontroller ;).

Op 29 november 2005 14:01:10 schreef Squant:

Bij xilinx alleen kunnen de lookup tables ook zo worden geschakeld als geheugentjes wat bij altera niet kan. Ook daar moet je daar rekening mee houden als je ontwerp veel kleine buffertjes of fifo's gebruikt.

toch wel. MAX II, Stratix en cyclones kunnen dat allemaal. in Cyclones en Stratix kan je zelfs multiport memories maken ( 3 en 4 poorten , ideaal als scratchpad voor een parallel processor ) iets wat xilinx dan weer niet (rechtstreeks, ze kunnen het emuleren maar tis traag) kan.

Over die Gates : dat is equivalente AND gates. een fliflop bijvoorbeeld telt voro 6 of 8 , een lookuptabel voor 4 of zoiets. je kan de definitie vinden in de datasheet. Als FPGA designer ben je met de Gatecount niks.

De dingen die belangrijk zijn als FPGA designer:
hoeveel flipflops heb ik ?
hoeveel IO banken heb ik ?
hoeveel clocktree's

en eventueel andere design specifiek zaken zoal embedded memory , cpu , PLL en dergelijk

EGC ( equivalent gate count ) is alleen belangrijk voor mensen die later een echte chip willen gaan maken van dat design ( geen FGPA programmeren maar hem laten omzetten naar 'hard' silicium )
het geeft je een idee van de oppervlakte die je nodig gaat hebben om hem te layouten. als wij een chip compilen dan krijgen we uit de synthesizer een gatecount. dat getal kunnen we gebruiken om een fpga te selecteren om ons prototype mee te bouwen.

nu moet je dat ook met een flinke korrel zout nemen hoor. de verhouding is nu ongeveer 1:3 1 asic gate heeft ongeveer 3 fpga gates nodig om betrouwbaar te kunnen mappen. de boel is historisch gegroeid. tot voro een 15 tal jaar waren digitale bibliotheken voor chip layout ( hard silicium ) alleen maar 2 en 3 poort and / or xor . flipflops en dergelijke waren niet of nauwelijks aanwezig als blok. ze werden gemaakt gelijk ze nodig waren. ieder blok nam precies evenveel ruimte in op het silicium , zodoende kan je ze netes in rijen en kolommen plaatsen en er de routing tussin kegelen.

dus met die gatecount wist je al direct hoe groot ( vierkante millimeter) die chip zou worden.

De fpga boeren probeerden mense te overtuigen om geen asic te laten maken maar hem zelf te 'programmeren' ( al is dat niet de juiste term ) vandaar dat ze ook uitpakten met gatecoutn nummers. Ah menheer heeft een chip waar 10.000 gates in zitten : kijk dat past perfect in deze.

Maar wat zijn nou precies die gates? Wat moet ik me daarbij voorstellen?

Enne...allemaal super bedankt voor de info. Ik kan deze info zeker goed gebruiken.

Op 29 november 2005 16:55:08 schreef Mitchell S:
Maar wat zijn nou precies die gates? Wat moet ik me daarbij voorstellen?

Enne...allemaal super bedankt voor de info. Ik kan deze info zeker goed gebruiken.

een gate is gewoon een logische port zoals een and or nor xor xnor not

ok. Maar soms zie ik staan:

een fpga heeft 1862 logic cells en 40.000 gates. Wat bedoelen ze dan met die logic cells?

En wat houd dit in?
1 Logic Cell = 4-input Look-Up Table + Flip-Flop

[Bericht gewijzigd door Mitchell S op ]

Op 29 november 2005 17:05:29 schreef Mitchell S:
ok. Maar soms zie ik staan:

een fpga heeft 1862 logic cells en 40.000 gates. Wat bedoelen ze dan met die logic cells?

En wat houd dit in?
1 Logic Cell = 4-input Look-Up Table + Flip-Flop

Een logic Cell is gewoon zo een 4 input tabel waarin je allerlei logische functies kan uitdrukken, met een flipflop.

grabbel eens de datasheet van zeg maar iets als een MAX7000 familie www.altera.com
daar staat een compleet hoofdstuk ( 4 of 5 bladzijden ) over hoe het in elkaar steekt bij CPLD.

download ook de datasheet van de FLEX10K familie. daar vind je hetzelfde maar nu uitgelegd voor een FPGA.

en begrijpelijk uitleggen ... tjah ik dacht dat het vrij duidelijk was wat ik hier allemaal gepost heb. blijkbaar niet.

Ja, sorry.

Ik ben nog maar een beginner met digitale systemen. Ik heb dit vak pas 6 weken gehad op school, en wil mezelf daarin vergaan verdiepen. vandaar dat ik eerste een paar essentiele basisbegrippen wil begrijpen. Daarna wil ik me dan verder gaan verdiepen.

Dus jou advies is vooral de datasheet eens grondig te doorspitten?

[Bericht gewijzigd door Mitchell S op ]