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
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
Na ja, die IO-Zellen des Stratix3 sind schon DDR-tauglich. Welcher Pin an welchem Device ist das denn?
Der Device ist EP3SL110F1152C3, der Pin ist N2. Ich finde leider auch das Dokument nicht, wo das drinsteht. lg Matthias
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.
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
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.
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.