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
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.
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.
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.