Was ist die schnellste E/A-Planung für FPGA?

Es gibt viele Timing-Strategien, die die FPGA-Geschwindigkeit verbessern können (z. B. Timing-Einschränkungen, Planung der Taktregionen, ....). Eine dieser Strategien ist die Auswahl optimaler Stellen für I/O-Pins und die Grundrissplanung der Logik. Tatsächlich wählen wir zuerst die besten E/A-Plätze aus und können dann die Logik platzieren, .... Dieser Prozess beginnt mit der E/A-Platzierung, und ich weiß nicht, welche Strategie zur besten Leistung führt. Dies sind Strategien, an die ich als Ausgangspunkt
für die Pin-Platzierung gedacht habe :

1- Im Bild unten (Xilinx Spartan 3) kann man alle Ein-/Ausgänge in einer Bank (Pfeil-1) und eine globale Uhr zum Beispiel auf Bank-4 auswählen. Dies führt zu einem minimalen Abstand für alle Pins und auch zu einem minimalen Rauschen von den externen Leitungen des GCLK-Pins, aber es ist weit von der GCLK-Leitung entfernt.

2- Pfad-2: kreuzt den GCLK-Pfad, aber Ein- und Ausgänge sind weit voneinander entfernt (ich habe irgendwo gesehen, dass der horizontale Pfad zwischen Ein- und Ausgängen der schnellste Weg ist, kann mich aber nicht erinnern, wo ich ihn gelesen habe !!)

3- Pfad-3: In der Nähe des Clock-Pins kann es zu Rauschen von den EXTERNEN Leitungen und Komponenten kommen.

Es kann viele andere Strategien geben, die ich nicht kenne. Kann mir jemand einen Hinweis oder eine Denkweise als Ausgangspunkt geben?

Geben Sie hier die Bildbeschreibung ein1)

Ich glaube, Sie müssen möglicherweise jeden Ansatz ausprobieren und berichten, was Sie finden.
@BrianDrummond Ich habe darüber nachgedacht, aber mein Design enthält 70% der XC3S400-Tore und jeder Versuch kann 1-2 Monate dauern! Deshalb brauche ich einen Anfang!
Haben Sie eine ISE-Volllizenz oder verwenden Sie das Webpaket?
@FarhadA Webpack

Antworten (1)

Die globale Uhr hat per se keinen „Pfad“. Sie können in jeden der globalen Taktstifte auf dem Chip gehen und dann das Signal von dort auf eines der globalen Taktnetze leiten. Diese Netze sind fest zugeordnet, sodass es keine Rolle spielt, wie die anderen Signalnetze geroutet werden, da dies die globalen Taktnetze nicht beeinflusst. Außerdem beinhaltet die Verbindung zum globalen Taktnetz vom Pin nicht die allgemeine Routingstruktur des FPGA, solange der Pin in der Lage ist, ein globales Taktnetz direkt zu treiben.

Ich würde mir keine allzu großen Sorgen über den Einfluss des Takteingangs auf Leiterbahnen machen, die nicht unmittelbar neben dem Pin liegen. Wenn Sie sich große Sorgen um den Takteingang machen, verwenden Sie einen Oszillator mit niedrigerer Frequenz auf der Platine und erhalten Sie die benötigte Frequenz, indem Sie einen der DCMs im FPGA verwenden, um den Takt mit höherer Frequenz zu synthetisieren.

In Bezug auf die IO-Pin-Positionen finde ich normalerweise heraus, womit sie außerhalb des FPGA verbunden werden. Die Software kann Signale innerhalb des FPGA dorthin leiten, wo sie hin müssen. Und wenn Sie einige der Design-Faustregeln befolgen, sollten alle Ihre Ein- und Ausgänge IOB-Flip-Flops durchlaufen. Dies hilft der Platzierungs- und Routing-Phase sehr, indem es die Ein- und Ausgänge synchronisiert und einen Großteil der im Routing auftretenden Verzerrungen verbirgt. Der Aufwand ist ein Verzögerungstaktzyklus am Eingang und ein Verzögerungstaktzyklus am Ausgang, ein angemessener Preis für die Synchronisation.

Fazit: Die meisten Stifte können ohne Leistungseinbußen überall dort eingesetzt werden, wo es bequem ist. Die Toolchain kümmert sich um die Details. Nutzen Sie dies zu Ihrem Vorteil, um das Platinenlayout und das Trace-Routing außerhalb des FPGA zu vereinfachen.