Hallo, ist es möglich, ein Taktsignal genau in der Mitte der "High-Phase" abzutasten? Wenn ja, wie? Mir sind nur Abfragen zur steigenden und fallenden Taktflanke bekannt (rising_edge(), 'event).
Indem Du mit einem schnelleren Takt (mind. 4x) das Signal abtastest. Stichwort: Oversampling Was genau hast du denn vor?
FPGA-Fragender schrieb im Beitrag #2431988: > ist es möglich, ein Taktsignal genau in der Mitte der "High-Phase" > abzutasten? Wenn ja, wie? Ja, man kann. Wenn man die Frequenz und das Tastverhältnis kennt. Dann wartet man einfach nach einer steigenden Flanke für eine bestimmte Zeit und liest dann den Pegel ein. > ist es möglich, ein Taktsignal genau in der Mitte der "High-Phase" > abzutasten? Wenn ja, wie? Was für ein Taktsignal? Woher? Welche Frequenz? Was ist dein Mastertakt? Was willst du machen? Was ist dein EIGENTLICHES Problem? > Mir sind nur Abfragen zur steigenden und fallenden Taktflanke bekannt > (rising_edge(), 'event). Du bist an der falschen Ecke unterwegs. Du weißt es nur noch nicht... Mit rising_edge() werden in VHDL keine Taktabfragen sondern einfach nur D-Flipflops beschrieben. Hier nochmal meine Postulate:
1 | Ein Design (insbesondere ein Anfängerdesign) hat genau 1 Takt, |
2 | der immer auf dieselbe Flanke aktiv ist. |
3 | Es gibt keinen (und schon gar keinen asynchronen) Reset. |
4 | Externe Signale werden über 2 Flipflops einsynchronisiert. |
5 | Jede Abweichung von diesen Regeln muß fundiert begründet werden können. |
Ein Takt ist alles, was mit xxx_edge() oder 'event zusammenhängt.
Ich möchte die Datenbits, die ein LVDS-Receiverbaustein liefert, verarbeiten. Der Baustein liefert ein Taktsignal mit. Laut Datenblatt liegen die neuen RGB- und Steuerbits immer in der Taktmitte der "High-Phase" an.
FPGA-Fragender schrieb im Beitrag #2432021: > Ich möchte die Datenbits, die ein LVDS-Receiverbaustein liefert, > verarbeiten. Der Baustein liefert ein Taktsignal mit. Laut Datenblatt > liegen die neuen RGB- und Steuerbits immer in der Taktmitte der > "High-Phase" an. Das Abtasten der Signale erfolgt dort, wo die Daten stabil sind, nicht dort wo sie wechseln!
FPGA-Fragender schrieb im Beitrag #2432021: > Ich möchte die Datenbits, die ein LVDS-Receiverbaustein liefert, > verarbeiten. Der Baustein liefert ein Taktsignal mit. Das ist so üblich (z.B. bei LVDS-Displays). > Laut Datenblatt liegen die neuen RGB- und Steuerbits immer in der > Taktmitte der "High-Phase" an. Wie lange? Welches Datenblatt? Warum immer diese Salamitaktik? http://de.wikipedia.org/wiki/Salamitaktik
Wenn schon unbedingt nötig, verschiebt man mittels der IDELAY Elemente o.ä. die Daten zum Takt.
SupaChris schrieb: > Wenn schon unbedingt nötig, verschiebt man mittels der IDELAY Elemente > o.ä. die Daten zum Takt. IDELAY? (iDelay - Apple??) Ist das was herstellerspezifisches oder warum kennt mein Synplify das nicht? (Der OP hat auch nicht erzählt, welchen Hersteller er verwendet...)
Stefan Wimmer schrieb: > Ist das was herstellerspezifisches Ja. > oder warum kennt mein Synplify das nicht? Du mußt die passende Komponente instatiieren... http://forums.xilinx.com/t5/Implementation/idelay/td-p/111632 ...oder ein passendes Constraint definieren, dann sollte das gehen. http://www.xilinx.com/support/answers/22313.htm
Ja, IDEALY ist bei Xilinx in den IOB drin. Deshalb hab ich extra noch das "o.ä." dazugeschrieben, weil das natürlich bei Altera oder Lattice anders heißt. Sowas geht übrigens sehr schick mit den ISERDES bei Xilinx abzutasten. Die sind da wie gemacht für, da kann man quasi ohne Logik gleich die parallelen Daten abgreifen. Ich mach sowas momentan für die neuen LTM90xx 8-fach ADC Module von LT. Die Appnote (XAPP1064) von Xilinx ist auf den ersten Blick nicht so recht zu durchschauen, aber ganz gut kommentiert. Und die rücken sich bei richtiger Einstellung die Daten auch noch gleich selber passend zum Takt.
Hallo Chris, Hallo Lothar, bevor Ihr mit ISERDES und IDELAY aufmunizioniert, sollten wir dem TO aber mitteilen, dass dies herstellerspezifische Hardwarefeatures sind um Signale weit jenseits von 100Mhz sauber sampeln zu koennen. der Ansatz des Oversamplings dagegen ist HDL codingstandard und ueberall einsetzbar Ungluecklicherweise hilft das nicht wirklich, da jedes Design welches IO Signale angewiesen ist, mittels herstellerspezifischer Constraints zurechtgerueckt werden muss. Hierzu haben alle FPGA Hersteller constraints, welche geeignet sind den Synthese & P&R Tools mitzuteilen von wann bis wann bezogen auf ein Taktsignal das Eingangssignal valide ist. Die Synthese und P&R Tools werden dies dann beruecksichtigen und mit geeigneter Platzierung von FF (IO Zelle oder Fabrik) das Timing einzuhalten. Erst wenn dies nicht funktioniert, gilt es die naechsten Schritte abzuwegen: Z.B. durch herstellerabhaengige Nutzung von FPGA Besonderheiten wie DCM/PLL das Clocksignal so hinzuschieben, dass Inputdelay und Clockdistribution und Eingangsampling Signal wieder alles ins Lot kommt. Erst wenn wir hier am Ende sind, kommen doch ISERDES und Co. ins Spiel ??? Gruss Vanilla
Naja, du hast natürlich recht. Seine rudimentäre Beschreibung des eigentlichen Problems lässt jedoch auf HighSpeed schließen. LVDs wird zwar auch für parallele RGB Anschlüsse verwendet, meistens aber für die serielle Variante. Er müsste dann schon mal mit ein paar mehr Infos rausrücken, was genau denn gemacht werden soll.
Vanilla schrieb: > Ungluecklicherweise hilft das nicht wirklich, da jedes Design welches IO > > Signale angewiesen ist, mittels herstellerspezifischer Constraints > > zurechtgerueckt werden muss ... und auch nicht alle FPGAs über derartige Eingänge verfügen!
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.