Hallo,
ich habe bereits einige Erfahrung im Bereich Mikrocontroller gesammelt
und möchte mich nun ergänzend auch mit FPGAs und VHDL beschäftigen weil
mich dieses Thema sehr interessiert. Auf der Suche nach einem geeigneten
Experimentierboard bin ich auf zwei Modelle der Firma Digilent gestoßen,
die mir wegen ihrer Ausstattung und des günstigen Preises recht gut
gefallen. Und zwar die Modelle Nexys 2 (1200k Gate-Version) und das
Nexys 3, die beide vom Preis her annähernd identisch sind.
Als Einsteiger habe ich jedoch ein Problem, die beiden FPGA Modelle der
beiden Boards von ihrer Leistungsfähigkeit und ihren Möglichkeiten zu
vergleichen. Es handelt sich hierbei um die Xilinx Modelle
XC3S1200E/50MHz und XC6SLX16/100MHz. Wenn ich mir die Datenblätter
anschaue, habe ich schon irgendwie das Gefühl, dass diese beiden FPGAs
für recht unterschiedliche Zwecke geschaffen wurden aber das kann ich
als Einsteiger mit recht wenig Ahnung beurteilen.
Mir würde es sehr helfen, wenn mir jemand etwas bezüglich dieser beiden
FPGAs sagen könnte. Z.B. wo die Stärken und Schwächen dieser beiden
Modelle im direkten Vergleich liegen und für welche Einsatzzwecke sie
grundsätzlich gedacht sind. Mich würde auch interessieren, wie
umfangreich und vielseitig die inneren Logikblöcke im Vergleich sind
denn diese scheinen sich schon grundsätzlich vom Aufbau bei diesen
beiden Modellen zu unterscheiden. Ebenso zusätzliche Funktionalitäten,
wie z.B. Multiplizierer, RAM-Blöcke usw.
Ich habe schon hier im Forum mal ein wenig herumgestöbert aber nichts
gefunden, was mir bei dieser Entscheidung direkt weiterhelfen würde.
Vielen Dank schon mal für Eure Hilfe!
Beste Grüße,
Norbert
Norbert schrieb:> Wenn ich mir die Datenblätter anschaue, habe ich schon irgendwie das> Gefühl, dass diese beiden FPGAs für recht unterschiedliche Zwecke> geschaffen wurden aber das kann ich als Einsteiger mit recht wenig> Ahnung beurteilen.
Das eine FPGA ist alt (Ende letztes Jahrtausend), das andere neu (dieses
Jahrzehnt). Das ist der Hauptunterschied.
Wenn du heute einsteigst, dann nimm das S6 FPGA.
Hallo Lothar,
vielen Dank für den Hinweis. Ich habe mir schon sowas gedacht weil es
für die Spartan 3E Serie bereits einen Nachfolger gibt, nämlich die
Serie 3A.
Mal eine weitere Frage. Gibt es für FPGAs auch eine Art "nutzbares
Logik-Speichervolumen", ähnlich wie der Programmspeicher eines
Mikrocontrollers? Also z.B. um eine Aussage der Art zu machen, um den
VHDL-Code xy hineinzubekommen braucht man soundsoviel LUTs etc.?
Mir ist schon klar, dass die ausnutzbaren LUTs und weitere
Funktionsblöcke bei einem FPGA von der Art der Verwendung abhängen aber
sind die beiden oben genannten FPGAs von ihrem ausnutzbaren (also
programmierbaren) Gatter- und Funktionsblockvolumen ungefähr
vergleichbar? In den Datenblättern wird von "Equivalent Logic Cells"
gesprochen. Kann man diese Werte ungefähr vergleichen? Wie sieht es mit
den übrigen Funktionsblöcken aus? Bei der alten Serie 3E gibt es
Multiplizierer, in der neuen Serie 6 hat man DSP-Slices, die aus einem
Multiplizierer, einem Addierer und einem Akkumulator bestehen. Der
Aufbau der LUTs unterscheidet sich auch. Das macht einen Vergleich im
Bezug zu einem "ausnutzbaren Programmiervolumen" schwierig.
Auf jeden Fall schon mal vielen Dank für Deine Hilfe!
Norbert schrieb:> Mal eine weitere Frage. Gibt es für FPGAs auch eine Art "nutzbares> Logik-Speichervolumen", ähnlich wie der Programmspeicher eines> Mikrocontrollers?
Wenn die Logikressourcen im FPGA zu 80% genutzt werden, wird es immer
schwieriger das Timing und das Routing zuschaffen. Die 80% sind
natürlich nur eine Hausnummer...
> Also z.B. um eine Aussage der Art zu machen, um den> VHDL-Code xy hineinzubekommen braucht man soundsoviel LUTs etc.?
Dafür braucht man sehr viel Erfahrung. Auf jeden Fall korreliert die
Zeilenzahl nicht mit dem Logikvrebrauch. Es kommt immer darauf an, was
man beschreibt, wie man es beschreibt und wie geschickt der Synthesizer
die Beschreibung auf die FPGA-Architektur mappt.
> Mir ist schon klar, dass die ausnutzbaren LUTs und weitere> Funktionsblöcke bei einem FPGA von der Art der Verwendung abhängen aber> sind die beiden oben genannten FPGAs von ihrem ausnutzbaren (also> programmierbaren) Gatter- und Funktionsblockvolumen ungefähr> vergleichbar?
Ja.
> In den Datenblättern wird von "Equivalent Logic Cells"> gesprochen. Kann man diese Werte ungefähr vergleichen?
Nicht wirklich. Das sind Marketingzahlen.
> Wie sieht es mit> den übrigen Funktionsblöcken aus? Bei der alten Serie 3E gibt es> Multiplizierer, in der neuen Serie 6 hat man DSP-Slices, die aus einem> Multiplizierer, einem Addierer und einem Akkumulator bestehen. Der> Aufbau der LUTs unterscheidet sich auch. Das macht einen Vergleich im> Bezug zu einem "ausnutzbaren Programmiervolumen" schwierig.
Ja. Effektiv kannst Du nur ein bestimmtes Design hernehmen und einmal
für Chip X und einmach für Chip Y synthetisierung und gucken was
rauskommt.
Für das ZPU_Projekt wurde das mal gemacht (Spartan-3, -3E, -6 und
Virtex-5):
http://repo.or.cz/w/zpu.git/blob_plain/HEAD:/zpu/docs/zpu_arch.html#performance
Duke
Norbert schrieb:> In den Datenblättern wird von "Equivalent Logic Cells"> gesprochen. Kann man diese Werte ungefähr vergleichen?
Nein. Vergleichen kann man die Anzahl der Flipflops und die Anzahl der
LUTs (dazu natürlich irgendwelche Hardcores wie DSP, DLL, RAM...). Bei
den LUTS muss dann noch aufgepasst werden, ob es die "traditionellen"
4er oder die "neuen" 6er LUTs sind. Das wirkt sich bei größeren Designs
dann spürbar aus, und das ist in dem verlinkten Benchmark beim Schritt
vom S3 zum S6 deutlich zu sehen...
Aber: mach dir mal keine allzu großen Sorgen. Wenn du das S3 Board
kaufst und in 1 Jahr herausfindest, dass es zu klein ist, dann kannst du
es nahezu ohne Werverlust weiterveräussern. Naja, eine Wertminderung von
2..3€/Monat wirst du vielleicht haben...
Ich vermute Norbert möchte, dass wir ihm bei seiner Kaufentscheidung
helfen.
Also das Nexys3 hat Ethernet und USB-Host. Sonst ist es bis auf das FPGA
ziemlich gleich. Beide haben VGA, UART, PMOD IOs, Switches, LEDs,
Buttons und 7-Segment Anzeigen. Auch haben beide PSRAM, und Flash. Das
Nexys3 hat aber einen Flash Baustein zusätzlich.
Unterschied XC3S1200E/50MHz und XC6SLX16/100MHz:
Der Takt ist erstmal egal weil man sich den intern selber generieren
kann, eher interessant wäre die genauigkeit des Taktgebers, der auf dem
Nexys2 ist schon recht ordentlich.
Der XC6SLX16 enthält:
2278 Slices, das sind 9112 6-Input-LUTs und 18224 FlipFlops.
32 DSP48A1 Slices, das sind 32 18x18 Multiplizierer.
4 DCMs und 2 PLLs und 32 18kb BRAMs, das sind dann 72kBytes an BlockRAM.
Der XC3S1200E enthält:
2168x4 Slices, das sind (mit je 2 LUTs und 2 FFs) 17344 4-Input-Luts und
17344 FFs.
28 18x18 Multiplizierer und 28 18kb BRAMs, also 63kBytes an BRAM.
8 DCMs.
Also ich behaupte mal, dass sich die beiden Steinchen nicht soooo viel
nehmen, der Spartan6 aber deutlich neuer ist. Ich würde mich also für
das Nexys3 entscheiden.