Forum: FPGA, VHDL & Co. unterschiedliche Takte und IOs über Banken hinweg mischen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von FPGA-Frager (Gast)


Lesenswert?

Ich sitze an einem grösseren Design und frage mich, wie ich am Besten 
mit den Bussen klarkomme. Aufgrund der äusseren Umstände wird es nicht 
möglich sein, jeden Buss auf eine eigene Bank zu legen, d.h. Es müssen 6 
Busse auf 3 Banken verteilt werden und an einer Bank werden dann sogar 
mal 3 unterschiedliche Busse anliegen.

Jeder Buss hat seinen eigenen Takt, mit dem die Daten reingetaktet 
werden müssen (alle jenseits der 100MHz) und Ich frage mich wie das mit 
den Laufzeiten und den FlipFlops funktioniert.

Kann Ich an einer Bank dreiverschiedene Takte für die IO-FFs nehmen?
Wie finde Ich eine optimale Reihenfolge?
Kann theoretisch jedes FF jeden Takt zugeführt bekommen? Ich meine, dass 
es da Regionen gibt und Ich das sicher gruppieren muss.

Wie passt es dann mit den Laufzeiten der Signale von einem Buss über 2 
Banken, die mit demselben Takt verdrahtet werden?

Kriegt man das noch hin?

Gäbe es Vorzüge hinsichtlich dieser Problematik für Altera statt für 
Xilinx? D.h. welden FPGA würde man dafür nehmen?

Danke

von hodor (Gast)


Lesenswert?

Du kannst die Register in jeder Bank mit vier Takten betreiben. Mögliche 
Quellen sind: clock capable IO Pins (gibt es vier in jeden Bank), 
MMCM/PLL, und BUFMR.

von tja (Gast)


Lesenswert?

Das sollte kein Problem darstellen. Am Besten du machst dir nach deinen 
Vorgaben ein Trivial-Design mit entsprechender Logik - muss ja nicht 
viel sein, und dann überprüft du, wie dein Place&Route aussieht.

Aber der umgekehrte Fall ist deutlich kritischer: 1 Takt + Daten an 
verschiedenen Bänken.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Ob und was da geht, hängt vom FPGA ab. In jedem Fall ist das Eintakten 
über jeweils eine Bank ein guter Ansatz, wenn die Verdrahtung das 
hergibt, weil die Verschaltungsoptionen für manche Buffer an der 
Bankgrenze enden.

Welcher FPGA?

von Thomas R. (Firma: abaxor engineering) (abaxor)


Lesenswert?

Hallo,


als erstes kann man auf dem Board für gleiche Laufzeiten sorgen. Falls 
das nicht möglich ist, kannst du unterschiedliche Laufzeiten im FPGA 
ausgleichen. Bei Xilinx-FPGAs gibt es ein idelay, mit dem man Laufzeiten 
im Subnanosekunden Bereich einfügen kann. Bei Altera gibt es auch so 
etwas. Die Verzögerung stellt man dort über das SDC-File mit 
set_input_delay eine Verzögerung relativ zu einem Takt ein. Es hängt 
immer vom verwendeten FPGA ab, ob und wie es geht. Falls ihr bei einem 
deutschen Distributor kauft, kannst du auch dort mal bei einem FAE nach 
fragen.

Tom

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

Wenn man es ganz richtig macht, wird ERST das FPGA-Design gezimmert und 
DANN das Layout des PCB gemacht und angepasst.

Im Nachhinein die Leitungen verteilen ist Käse.

Es haben auch nicht alle FPGAs überall alle Typen von IOs.

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.