Forum: FPGA, VHDL & Co. Multiplizierer


von Sebastian (Gast)


Lesenswert?

Hallo,

der xc3s50 besitzt 4 Multiplizierer. Im Datenblatt XAPP467 steht dazu
allerhand drin. Aus den Timing Spezifikations (Seite 2) werde ich nicht
schlau. Wie viele Taktzyklen braucht den jetzt der Multiplizierer für
die Multiplikation von zwei 12 Bit Werten benötigt?

Ein DSP macht so was in einem Zyklus. Der FPGA auch?

Danke für Eure Unterstützung,
Sebastian

von Sebastian (Gast)


Lesenswert?

So ich habe mal schnell einen 18x18 Multipliziere simuliert. Die
Simulation sagt:

Mit einer positiven Flanke ist die Multiplikation erledigt. Kaum zu
glauben. Toll...

Sebastian

von FPGAküchle (Gast)


Lesenswert?

Hm, FPGA sind nicht uC, bei FPGA ist die taktfrequenz variabel,
entsheident ist die Durchlaufzeit, daraus folgt die max. taktfrequenz.
Also ein Multiplizier wird z.B. in 5 ns durchlaufen, also ein takt bei
200 MHz, zwei multipl in 10 ns, auch ein takt, aber bei 100 MHz.

bei FPGA's gibt man einen takt vor und die Tools verraten dann wie
hoch der takt gewählt werden kann.

Über den daumen gepeilt wurde ich einen Spartan3 Multiplizierer 100
-150 MhZ zutrauen.

von TheMason (Gast)


Lesenswert?

@sebastian

also rein therotisch können die multiplizierer (also ein 18x18
multiplizierer) mit max 270MHz laufen. dann hast du aber noch nichts an
logik drum-herum (und die "zieht" den takt ja erst in den "keller")
ich habe mir mal für meine audio basteleien einen iir-filter gebaut.
der besteht aus statemachine, ein paar register, einen 32x32 bit
multiplizierer (wird von ise aus 4 18x18 multiplizierern
zusammengebaut) und einen 32bit-addierer. das ganze läuft nicht
schneller als 100MHz.
da ist wohl anscheinend finito.
hoffe ich konnte dir weiterhelfen

gruß
rene

von Jürgen Schuhmacher (Gast)


Lesenswert?

Für einen Loop inkl kompletter IO (also auch Daten rein und raus ) sind
100MHz sogar recht viel. Die Frequenzbetrachtung ist aber nicht
unbedingt die der Punkt: Man sollte sich schon an der Laufzeit
orientieren und diese beim Aufbau komplexer verketterter Kombinatorik
beachten / optimieren.

Welchen Datendurchsatz man letzlich hat, hängt ja von der gesamten
Kette ab. Mit pipeline-Architekturen schafft man im günstigsten Fall
immer eine Dateneinspeisung je Takt. Da man nicht beliebig viel
Kombinatorik zwischen zwei synchrone Stufen einbauen kann, muss man die
rechenintensiven Zwischenschritte gfs kaskadieren, um eine möglichst
hohe Betriebsfrequenz des FPGA zu ermöglichen. Die Stufen führen zu
Latenzen und damit zu reduzierter Frequenz. Für die Signalbearbeitung
in Echtzeit ist dies meist von größerer Bedeutung: Selbst wenn ein FPGA
auf 50MHz läuft, führt eine Latenz von 50 Zyklen von in2out zu effektiv
einer Verzögerung, die einer Abtastfrequenz der Daten von 1MHz
entspricht. Sollen Daten ohne wesentliche Phasenverschiebung
bereitgestellt werden, so müsste man die Forderung erheben, daß die
Latenz im %-Bereich liegt. Da kommt man mit einem 20MHz-Takt beim FPGA
und weniger Latenz oft besser hin.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.