www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Timing Verletzung innerhalb einer DDR I/O Zelle


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bekomme bei meinem Design eine Timing-Verletzung, die ich mir nicht 
erklären kann. Es geht um ein Interface zwischen zwei Stratix 3 FPGAs, 
es stehen vier Leitungen zur Verfügung, die ich als 1 x Takt, 1x Enable 
und 2 x Daten verwenden möchte. Zusätzlich soll mit DDR übertragen 
werden und ich möchte die DDR Register des FPGA benutzen. Auf der 
Empfängerseite sollen die DDR Register sowie ein Datenpuffer und eine 
wenig Logik zum Synchronisieren mit dem vom Sender geschickten Takt 
laufen, mit einer PLL möchte ich den Takt beim Sender optimal 
positionieren und damit auf recht hohe Taktraten (ab 125 MHz aufwärts) 
kommen. Der I/O-Standard ist LVCMOS, außerhalb des FPGA wird mit 
LVDS-Transceivern differentiell übertragen.

Soweit mal der Überblick, was das überhaupt werden soll.

In der Simulation läuft es aber in der Synthese bekomme ich 
Timing-Verletzungen auf den drei DDR Input-Registern, die aus meiner 
Sicht in der I/O-Zelle liegen. TimeQuest meldet folgendes (für einen der 
drei Eingänge):

Slack: -0.092
From Node: 
<Übergeordnete_Hierarchie>|spi_ddr_rx:spi_ddr_rx_stage|alt_iddr:\gen_dou 
t:1:alt_iddr_3|altddio_in:altddio_in_component|ddio_in_sqi:auto_generate 
d|ddio_ina[0]~DFFLO
To Node: 
<Übergeordnete_Hierarchie>|spi_ddr_rx:spi_ddr_rx_stage|alt_iddr:\gen_dou 
t:1:alt_iddr_3|altddio_in:altddio_in_component|ddio_in_sqi:auto_generate 
d|dataout_l[0]
Launch Clock: stage_in_clock
Latch Clock: stage_in_clock

Sorry, dass das so breit ist.

Es handelt sich um eine Hold Time Verletzung. Im altddio Megafunction 
User Guide gibt es auf Seite 12 ein Diagramm der DDR Inputzelle und ich 
nehme sehr an, dass die Timing Violation zwischen dem DFF und dem Latch 
im Low-Pfad auftritt. Nachdem ich nicht annehme, dass Altera ihre 
DDR-Zellen verpfuscht haben muss der Fehler wohl bei mir liegen. Aber 
welcher könnte es sein (und wie finde ich ihn dann)?

lg
Matthias

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es evtl sein, dass ich Schwammerl übersehen habe, dass gar nicht 
alle Pins DDR Input können? Jetzt wo ich einen Fehler bzgl dieser Pins 
in meinem SDC gefixt habe bricht der Fitter mit folgender Fehlermeldung 
ab:

Error: Can't assign node 
...|spi_ddr_rx:spi_ddr_rx_stage|alt_iddr:\gen_dout:1:alt_iddr_3|altddio_ 
in:altddio_in_component|ddio_in_sqi:auto_generated|ddio_ina[0]"  to 
location IOPAD_X91_Y42_N0 -- node is type Double data rate I/O input 
circuitry


Das würde evtl Sinn ergeben, dass es vorher in Logikzellen implementiert 
wurde und dann kann es wohl sein, dass es da zu einer Timing Violation 
kommt.


lg
Matthias

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja, die IO-Zellen des Stratix3 sind schon DDR-tauglich. Welcher Pin 
an welchem Device ist das denn?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Device ist EP3SL110F1152C3, der Pin ist N2.

Ich finde leider auch das Dokument nicht, wo das drinsteht.

lg
Matthias

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, sorry, der Fit-Fehler ist erklärt. Ich wollte mir das Problem im 
Chip Planner anschauen und habe dabei anscheinend unabsichtlich ein 
Location Assignment geändert. Damit erklärt sich die Fehlermeldung.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das eigentliche Problem habe ich noch nicht lösen können. Hat vielleicht 
jemand eine Idee, wie ich dem ganzen auf die Schliche komme?

lg
Matthias

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenn jetzt nicht das ganze Design (und will das auch gar nicht 
kennen) aber es sieht ja so aus als wären beide Nodes innerhalb der 
IO-Zelle und damit außerhalb deines Einflussbereichs. Und damit wäre das 
bei mir ein Fall für mySupport.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.