Hallo Community, ich möchte einen Takt (100 MHz) sowie 4 Datensignale die auf diesen referenziert sind über ein IDDR-FF mit 400 MHz abtasten. Das IDDR-FF liefert mir zur steigenden sowie zur fallenden Flanke einen Wert (Ausgänge Q0 und Q1). Meine Frage ist wie kann ich am einfachsten die Daten zum Takt rückgewinnen? Indem ich die Daten und den Takt von Q0 und Q1 (IDDR-Ausgänge) über mehrere FFs synchronisiere und auf die steigende bzw. fallende Flanke triggere? Wie löst man soetwas in der Praxis. Vielen Dank.
Zumindest bei Xilinx haben die IDDR-FF Optionen, dass sie dir Q0 und Q1 gleichzeitig z.B. zur steigenden Taktflanke zur Verfügung stellen. Somit brauchst du bei nachgeschalteter Logik nur noch auf eine Flanke (i.e. rising) reagieren und hast einfach einen doppelt so breiten Datenbus.
machbar mit Oversampling. Ggf. muss man noch mit einem Counter nachhelfen um auf den besten Samplepunkt zu kommen. Noch besser: Nutze deinen Takt um die Signale in ein asynchrones FIFO einzutakten. Dort kannst du diese wieder sauber rausziehen.
Hallo, danke für eure Antworten. Ich werde mich für die Variante mit dem async. FIFO entscheiden, welches ich mit meinem resynchronisierten Takt (100 MHz) auslese.