Forum: FPGA, VHDL & Co. LVDS Ausgabe


von Hans H. (hanshirsch)


Lesenswert?

Hallo,
ich möchte eine signal(z.B. einen heruntergeteilten Clock) als 
LVDS-Signale ausgeben. Was muss ich beachten? Wie ist die Syntax dafür?

Gruß
H.H.

von Antti Lukats (Gast)


Lesenswert?

fur unterschiedliche FPGA unterschiedlich :)

musst fur jeden typ manual lesen
lattice macht mit constraints, sonst muss man
meist vendor primitives benutzen

Antti

von Hans H. (hanshirsch)


Lesenswert?

ich habe das spartan 3A-Starter Kit, aus dem manual werden ich nicht 
schlau.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?


von Hans H. (hanshirsch)


Lesenswert?

Danke, für die Hilfe, nur bekomme ich jetzt folgende Fehlermeldung:

ERROR:Xst:528 - Multi-source in Unit <Difftest> on signal <XXXXX>; this 
signal is connected to multiple drivers.

Ich weiß nicht wo der Fehler liegt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich weiß nicht wo der Fehler liegt.
Das ist ein alter Hut. Der Fehler liegt im VHDL-Quellcode  ;-)

Das Signal <XXXXXX> wird aus mehreren Quellen (z.B. aus 2 Prozessen, 
oder aus einem Prozess und einer Concurrent-Zuweisung) getrieben.

von Hans H. (hanshirsch)


Angehängte Dateien:

Lesenswert?

Danke für die schnelle Antwort, aber da ich Anfänger bin, komme ich 
jetzt auf die schnelle nicht drauf.

Das kleine Testprogrogramm soll nur zur Ausgabe eines differentiellen 
Signals dienen, um damit den Umgang zu lernen. Es hat soll folgende 
Funktion haben:

Der Systemtakt des Boards wird zur einen Zähler heruntergetaktet und 
der neue Takt clk1x soll differentiell ausgegeben werden.
Parallel dazu soll eine LED angesteuert werden, die die Taktfrequenz 
anzeigt.

Die heruntertaktung funktioniert. (Habe sie in einem 8-Bit counter 
getestet)

Wo liegt mein Fehler?

von Nephilim (Gast)


Lesenswert?

also soweit ich es sehen konnte wird LED0 von 2 quellen aus getrieben. 
zum einen über den instatiierten buffer und dann nochmal über das divclk 
signal. beides gleichzeit geht natürlich nich

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Entsprechend
http://www.xilinx.com/itp/xilinx5/data/docs/lib/lib0317_301.html
hast du an die beiden Ausgänge O und OB des OBUFDS Signale 
angeschlossen.
Und zwar verbindest du den Ausgang O mit clk1x und gleichzeitig 
clkdiv(21) mit clk1x. Das kann nicht gehen. Gleiches gilt für das Signal 
LED0.

An den Eingang I des Buffers hast du gar nichts angeschlossen  :-o

Du willst clkdiv(21) auf FPGA-Pins ausgeben?
Also gehört clkdiv(21) an I und die Ausgänge O und OB an FPGA-Pins
(dort mußt du übrigens ein zusammengehöriges Pin-Pärchen verwenden).
1
OBUFDS_INSTANCE_NAME : OBUFDS
2
      port map (O  => clk_p,
3
                OB => clk_n,
4
                I  => clkdiv(21));

BTW:
BLVDS_25 gibt es laut der obigen Tabelle nicht für Spartan 3

von Hans H. (hanshirsch)


Angehängte Dateien:

Lesenswert?

Danke für die Hilfe,
ich habe es jetzt wie im Anhang, Syntaxchek ist auch ok. Kann es so 
funktionieren?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Kann es so funktionieren?
Ja, aber wie gesagt: jetzt muß noch die Pinzuordnung für clk1xpos und 
clk1xneg passen. Mehr dazu im Datenblatt ;-)

BTW:
VHDL-Files haben bei mir die Dateiendung vhd, nicht jpg   :-o

von Hans H. (hanshirsch)


Lesenswert?

Danke,
es funktioniert!

von Falk B. (falk)


Lesenswert?

@  Lothar Miller (lkmiller)

>BTW:
>VHDL-Files haben bei mir die Dateiendung vhd, nicht jpg   :-o

Ohje!

Mal wieder ein Kanditat für Deutschland sucht die Bildformate. ;-)

MFG
Falk

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.