Gast
#695705
Hallo! Ich möchte mit einem Virtex-2 von Xilinx auf mehreren Ausgängen Impulse erzeugen, deren Startzeit mit einer Auflösung von einem viertel Takt angegeben werden soll. Beispiel: Bei einem Systemtakt von 100 MHz (Periode 10 ns) möchte ich auf dem ersten Kanal einen Impuls nach 20 ns und auf einem zweiten Kanal nach 22.5 ns erzeugen. (die Zeiten sind wählbar) Meine Lösung sieht bisher so aus: Ein DCM erzeugt aus den 100 MHz vier Takte (0°, 90°, 180° und 270° Phasenverschiebung). Pro Ausgangskanal habe ich eine Schaltung aus vier FlipFlops (siehe Anhang). Wobei jedes FlipFlop einen anderen Takt bekommt. Die Dateneingänge bekommen alle das gleiche Signal. Per Multiplexer (der Rest im Bild im Anhang) wähle ich ganz zu Beginn ein bestimmtes FlipFlop aus. Also z.B. bei 22.5 ns das FlipFlop, das den 90°-Takt bekommt. Wenn der Impuls dann schließlich kommen soll (ein Counter zählt nebenbei mit) gehen die Dateneingänge der FlipFlops auf High. Jedes der vier FlipFlops übernimmt zu seinem Takt und nur das gewünschte Signal kommt durch den Multiplexer. In der Theorie funktioniert das auch soweit :) In der Praxis reicht je nach Synthese-Ergebnis die Setup-Time von 2.5 ns nicht aus. Also bei steigender Flanke des Systemtakts (0°) setze ich die Dateneingänge und das FlipFlop übernimmt nach 2.5 ns (90°) nicht. Meine Fragen sind nun: Kann man da mit Timing-Constraints was machen? Und wenn ja, wie würde das konkret aussehen? Oder hat jemand vielleicht eine völlig andere Idee? Entschuldigt diese ewig lange Ausführung. Ich wollte möglichst detailiert beschreiben, um was es geht. Viele Grüße, Andreas
