Forum: FPGA, VHDL & Co. Quartus 2 clock domain LVDS input


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von STM32 (Gast)


Lesenswert?

Wie kann im Quartus 2 am einfachsten Glitchfrei die clk domäne 
gewechselt werden (Ip gen basiert)?
Hintergrund ist ein LVDS ADC welcher am FPGA angeschlossen ist und einen 
clk und ein D liefert. Mit dem LVDS IP Block kann dies einfach empfangen 
werden. Leider kann ich bei diesem IP Block von altera nicht auch gleich 
das Fifo buffer aktivieren welches ich mit dem system clk auslesen kann.

von Bonzo (Gast)


Lesenswert?

Dann müsstest du die DOC der IP lesen, wie das geht und welche Signal zu 
benutzen sind.

Generell kann man nur sagen, dass der Takt entweder vorgeben wird und 
die Daten direkt übernommen werden, oder er eben mit eingetaktet werden 
muss, also interpretiert wird.

Ich würde einfach einen manuell instanziierten FIFO einsetzen, wenn es 
nur um das synchen geht. Das hat man in 10min hingeschrieben.

von Markus F. (mfro)


Lesenswert?

STM32 schrieb im Beitrag #6012554:
> Wie kann im Quartus 2 am einfachsten Glitchfrei die clk domäne
> gewechselt werden (Ip gen basiert)?

Du kannst mit dem Parameter Editor einen DCFIFO erzeugen und den 
anschließend verbinden. Mit der Latenz musst Du eben umgehen.

von STM32 (Gast)


Lesenswert?

Markus F. schrieb:
> Du kannst mit dem Parameter Editor einen DCFIFO erzeugen und den
> anschließend verbinden. Mit der Latenz musst Du eben umgehen.

Danke, das DCFIFO scheint genau nach was ich gesucht habe. Wieviele Sync 
stages werden benötigt um sicherlich korrekte Daten zu haben?

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

STM32 schrieb im Beitrag #6014323:
> Danke, das DCFIFO scheint genau nach was ich gesucht habe. Wieviele Sync
> stages werden benötigt um sicherlich korrekte Daten zu haben?

Keine. Der Takt wird doch mitgeliefert, nach deiner Aussage. Der sollte 
direkt auf das FIFO gehen. Korrekt gesetzte Timing Contraints 
vorausgesetzt, wird er es auch so bauen, wenn der FPGA schnell genug 
ist. Du könntest noch eine FF-Bank vorsehen, die von den IO-FFs Gebrauch 
machen.

von STM32 (Gast)


Angehängte Dateien:

Lesenswert?

Habe gerade beim LVDS IP Block gesehen, dass er ebenfall syncen kann. 
Habe den nun so eingestellt. (ext pll, use Ram buffer)

Nun habe ich:

rx_inclk = lvds reveice clk? Kann direkt der LVDS clk input damit 
verbunden werden?

rx_syncclk = systemclk mit welchem der paralelle bus ausgelesen werden 
soll?

rx_readclk = ?????

Die Doku ist der Hammer:

Use external PLL
no description
Data rate
no description
Inclock frequency
no description
Enable rx_locked port
no description
Enable tx_locked port
no description
Enable pll_areset port
no description
Enable tx_data_reset port
no description
Enable rx_data_reset port
no description
Use common PLL(s) for receivers and transmitters.
no description
Enable self-reset on loss lock in PLL
no description
Desired transmitter inclock phase shift
no description
Desired receiver inclock phase shift
no description

usw...

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.