Forum: FPGA, VHDL & Co. Geschwindigkeit Zynq7010


von Martin O. (ossi-2)


Lesenswert?

Ich realisiere digitale Filter mit dem Red Pitaya. Dabei werden 
verschiedene Einheiten des Zynq7010 gebraucht: LUT,CARRY4,DSP48,...
Gibt es irgendwo Infos darüber, wie schnell die einzelnen funktionellen 
Einheiten des FPGAs sind? Ich möchte damit im vorhinein abschätzen, ob 
ein Design realisierbar ist.

von Marius W. (mw1987)


Lesenswert?


von Martin O. (ossi-2)


Lesenswert?

Vielen Dank, das hilft mir schon mal weiter. Aber ich habe noch keine 
Info über die carry-chain CARRY4 gefunden, oder ist das in anderen 
Angaben versteckt?

von S. N. (higgns)


Lesenswert?

Ich denke nicht dass du dazu Informationen finden wirst. Am Ende des 
Routings wird dir Vivado dann sagen ob das Timing passt oder nicht.

Ich habe mir das ganze schon mal sehr genau zu Gemüte führen müssen. 
Meiner Erfahrung nach benötigt die Signalpropagation durch ein CARRY4 
im Mittel 50 ps (Kintex-7 Speedgrade -2).


Gruß

von Sigi (Gast)


Lesenswert?

Im og Datasheet findest du alle Daten,
schau mal unter CLB-Specs nach. Ausrechnen
für konkrette Fälle musst du es aber
selbst.

von Martin O. (ossi-2)


Lesenswert?

@Sigi: In Tabelle 62 finde ich keine Angaben über
die Signale CIN und COUT. Bin ich zu doof?

@S.N. Ist 50ps der delay von CIN nach COUT (über 4 Stufen hinweg)
oder der delay eines Summensignals durch den Block hindurch?

Wie würdet Ihr versuchen experimentell den Delay eines CARRY4
Blocks zu ermitteln?

von S. N. (higgns)


Lesenswert?

50 ps ist die Zeit von CO(3) bis CO(3) des nächsten CARRY4 in der Kette. 
Ich habe das damals im Rahmen einer TDC Implementierung gemacht.

Experimentell kannst du es herausfinden indem du eine lange Carrychain 
implementierst, mit einem bekannten Takt abtastest und dir anschaust wie 
weit eine Signalflanke in einer Taktperiode durch die Kette propagiert 
ist.

von Martin O. (ossi-2)


Lesenswert?

Dann würde ein 400 Bit Addierer aus 100 CARRY4 Stufen
ganz grob 100*50ps=5ns brauchen?

von S. N. (higgns)


Lesenswert?

Du kannst davon ausgehen, dass das mehr Zeit benötigt. Ein Addierer 
besteht ja aus mehr Logik als einer Carrychain (und schon drei mal bei 
400 Bit). Zudem wird der PAR Algorithmus sicherlich nicht so effizient 
sein wie ein manuell geplacetes Design.

Wenn es nur das ist, empfehle ich dir es einfach mal mit sehr engem 
Timing auszuprobieren und zu schauen was die Timinganalyse dir sagt.

von Vancouver (Gast)


Lesenswert?

Es macht bei einem FPGA im Allgemeinen wenig Sinn, mit den Delays 
einzelner Funtionseinheiten zu rechnen, weil ein erheblicher Teil der 
Zeit auf die Routing-Ressourcen fällt. Es ist besser, wenn Du 
entsprechend strenge Timing-Constraints vorgibst und es Vivado 
überlässt, das Timing zu erreichen. Wenn das nicht hinhaut, gibt es 
viele Schrauben, an denen Du drehen kannst (Pipelineregister, 
Effort-Levels, Parallelisierung, Placement-Constraints etc, siehe 
Constraints Guide). Die Critical-Path-Analyse ist nicht Deine Aufgabe, 
sondern die der Tools.

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.