Forum: FPGA, VHDL & Co. Delay Line Ausgangssignal falsch


von Schrammler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich habe ein Problem mit meiner Delay Line, die ich mir aus 
IODELAY2-Blöcken im Spartan 6 zusammengebaut habe. In der Simulation 
funktioniert soweit auch alles korrekt. Sobald ich das Design aber auf 
dem FPGA laufen lasse geht mein Ausgangssignal DelayLineOut nicht mehr 
so oft auf 0 zurück wie es sollte (und in der Simulation auch tut).

Kann mir jemand erklären woran das liegt? Ich rätsel jetzt schon seit 
einigen Tage und komme auf keinen grünen Zweig.

Wenn weitere Informationen benötigt werden bitte nachfragen.
Ich bin für jeden Hinweis dankbar!

von Duke Scarring (Gast)


Lesenswert?

Schrammler schrieb:
> Wenn weitere Informationen benötigt werden bitte nachfragen.
Hast Du eine Testbench dazu?

Kannst Du mal einen Screenshot von der Simulation und einen von 
Oszi/Chipscope/Logicanalyzer machen?

Duke

von Thosch (Gast)


Lesenswert?

Der IODELAY2-Block bei Spartan 6 arbeitet nur bis zu bestimmten Delays 
korrekt, es gibt ein Design Advisory dazu:
<http://www.xilinx.com/support/answers/38408.html>;

In den Spartan 6 Errata ist es auch aufgeführt.

Schau also mal nach, ob du die Bedingungen einhältst...

von Schrammler (Gast)


Angehängte Dateien:

Lesenswert?

Hier nochmal der aktuelle Code mit den Screenshots dazu.

@ Thosch: Deinen Link habe ich mir angeschaut. Da meine maximale 
Datenrate aber unterhalb der 200Mg/s liegen sollte und mein maximales 
Delay 2 ns beträgt, dürfte das nicht die Ursache sein. Trotzdem Danke! 
;)

von Duke Scarring (Gast)


Lesenswert?

Schrammler schrieb:
> Sobald ich das Design aber auf
> dem FPGA laufen lasse geht mein Ausgangssignal DelayLineOut nicht mehr
> so oft auf 0 zurück wie es sollte (und in der Simulation auch tut).

"auf 0 zurück"  was meinst Du damit? Den Signalpegel oder die 
Verzögerungszeit?
Das untere Signal auf dem Oszi sieht doch prinzipiell ganz gut aus.

Duke

von Schrammler (Gast)


Lesenswert?

Das gelbe Signal auf dem Oszi entspricht dem DelayLineIn und das grüne 
dem DelayLineOut der Simulation.
Das DelayLineIn wird auch richtig ausgegeben. Nur beim DelayLineOut 
stimmt eben Simulation und Oszi/Chipscope nicht überein.

von Achim S. (Gast)


Lesenswert?

schreib doch anstelle von

 --Verzögerung ausgeben
    DelayLineOut <= '1' when (DelayOBUF1In = '1' or DelayCompOut(7) = 
'1') and (STATE = SetData or STATE = ResetData) else '0';

einfach nur ein

    DelayLineOut <=  DelayOut(0);

Dann kannst du zumindest mal unterscheiden, ob wirklich die IODelay das 
Problem machen oder die Logik. Momentan siehst du ein Gemisch von 
beidem.

von Schrammler (Gast)


Lesenswert?

Ok, habe den Fehler gefunden. Habe mich beim Ermitteln der IDELAY_VALUEs 
verrechnet.
Eine Frage hätte ich aber noch: Kann ich mit den IODELAY2-Blöcken keine 
Verzögerung von weniger als 5,32 ns erzeugen?
Auf der folgenden Seite heißt es: "This specification is essentially 
indicating that the minimum delay available in the IODELAY2 is 5.32nS."

http://www.xilinx.com/support/answers/35783.html

von Schrammler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

leider hat sich meine Aufgabe etwas geändert und ich muss euch noch 
einmal um Rat fragen.

Derzeit gebe ich einen 5 ns Impuls als Eingangssignal an 128 parallel 
verdrahtete IODELAY2-Blöcke. Alle Ausgangssignale der IODELAY2-Blöcke 
werden immer nacheinander mit einem Multiplexer an den Ausgang 
DelayLineOut gegeben. Einen Delay-Value habe ich für die IODELAY2-Blöcke 
nicht angegeben, sodass diese den Eingangsimpuls lediglich um 5,32 ns 
verzögern sollten.
Ich hätte somit erwartet, dass sich folgendes ergibt: Nach jedem gelben 
Eingangsimpuls im obigen Bild sollte immer genau 5,32 ns später ein 
grüner Impuls folgen. Leider verhält sich die Realität nicht so und ich 
erhalte das verwaschene grüne Ausgangssignal.

Simuliert habe ich das Ganze auch schon. Da verhält sich alles korrekt. 
Bei Bedarf kann ich auch noch die Testbench hochladen.

Es wäre toll, wenn mir jemand einen Tip geben könnte was die Ursache 
meines Problems ist, oder mir sogar sagen könnte wie ich es beheben 
kann.

Danke im vorraus!

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.