Forum: FPGA, VHDL & Co. LVDS mit Spartan 3


von FPGA-User (Gast)


Lesenswert?

Hallo,

hat einer Erfshrung mit LVDS-Übertragung mittel eines Spartan 3 ?

Es geht darum, Videosignale mittels LVDS direkt auf einen Spartan 3 zu
geben. Angeblich hat der FPGA bestimmte Pin-Kombinationen, die für LVDS
geeignet sind.

Hat jmd. Erfahrungen damit und kann mir mehr Informationen darüber
geben (z.B. welche Pins dazu geeignet sind, ob es generell geeignet
ist, störende Effekte etc.) ?

Wie lese ich die LVDS-Signale dann aus (RGB-Werte) ?

Danke und Gruß

von Tobias (Gast)


Lesenswert?

Schau mal unter ibuf_selectio.pdf in deinem ISE Verzeichniss nach, dort
sind dann die verschiedenen IO Buffer aufgelistet, die du je nach dem
welches IO Format du benutzt in dein Design einbinden musst.


component IBUF_selectIO
port (O : out STD_ULOGIC;
I : in STD_ULOGIC);
end component;

Das Auslesen geht so vonstatten wie du es gewöhnt bist.

Der Spartan hat eine Reihe von Bänken, je nach größe des FPGA
unterschiedlich viele. Du darfst nur ein bestimmtes IO Format auf einer
Bank benutzen, sonst meckert die ISE beim place and route.

Ich weiss allerdings nicht, ob nur bestimmte Pins einer Bank für LVDS
geeignet sind. Am besten machst du mal ein Probedesign mit fast leerer

Architectur. Du solltest allerding input pins lesen und Output pins mit
einem Signal beaufschlagen. Die gelesenen Pins irgendwie auswerten ,
sonst werden die IO Buffer herrausoptimiert und am besten wieder auf
die Ausgangsbuffer legen, sonst (Fehler bei Bitfile generation wenn ich
mich nicht irre).

Allerdings habe ich leider noch keine Erfahrung mit LVDS machen können.
Deine Erkenntnisse diesbezüglich würden mich aber schon interessieren.

G. Tobias

von Sven Johannes (Gast)


Lesenswert?

Moin...

Es gibt vordefinierte Paare die als p und n des jeweiligen LVDS Buffers
funktionieren. Wenn du die PACE Software von Xilinx benutzt kannst du
irgendwo die Option "shof diff. pairs" anwählen. Im Pinout werden
dann kleine Striche eingeblendet, das sind die Paare.

Die Einschränkung der IO Stds bezieht sich meistens nur auf Versorgung
und Termination. Also eine Spannung und eine Termination (oder keine)
pro Pin. Die Components die du brauchst sind IBUFDS und OBUFDS => siehe
Doku.

Du solltest dich aber auf jeden Fall auch um Terminierung,
Treiberanpassung und Leitungsimpedanz kümmern, sonst kannst du deine
Signale schätzen, nicht einlesen!

--
 Sven Johannes

von FPGA-User (Gast)


Lesenswert?

OK, da gibts also noch mehr FPGA-User, der Beitrag is nich von mir
:-)))

von Hoschi (Gast)


Lesenswert?

Hi FPGA-User,

wenn Du LVDS mit dem FPGA benutzen willst, mußt Du auch dran denken,
die speziellen VCCIO-Pins des FPGA's mit 1,8V zu versorgen (siehe PDF
von Xilinx).

Ich kann Dir aus eigener Erfahrung aber davon abzuraten die LVDS-Option
des FPGAs zu nutzen, benutze lieber 'normale'-IOs und schalte dahinter
LVDS-Treiber. Und wie von Sven schon angesprochen, vergiss nicht die
LVDS-Signale abschliessen (meist um die 100Ohm)

von FPGA-User (Gast)


Lesenswert?

Vieln Dank für die Beiträge, aber mir ist so einiges noch nicht klar:

- benötige ich wirklich die 1,8V zur Versorgung ? Wozu dient diese
Spannung ? Wo steht es, dass man diese Spannung braucht ?

- gibt es irgendwelche application notes von Xilinx, in denen die
Benutzung genauer beschrieben ist ?

- wie lese ich die LVDS-Kanäle aus. Ich will RGB-Daten direkt an das
FPGA übertragen(6Bit je Farbe über einen LVDS-Kanal und einmal Clock -
also insgesamt benötige ich 4 LVDS-Kanäle)

- wie und wo muss ich die Inputs definieren ?

Schon mal vielen Dank

von Sven Johannes (Gast)


Lesenswert?

Moin...

In dieser Reihenfolge:
- Spartan 3 Platform FPGA Handbook Seite 21. Allerdings unterstützt ein
S3 nur LVDS_25, also 2,5V an den Vcco, nur für Out. Wenn du nur lesen
willst brauchst du die Sapnnungen wohl nicht.

- Ja. Bei Xilinx lvds und ggf. spartan3 in die Suche klopfen und Feuer.


- Siehe Protokoll deines Senders. Die Bits werden ja wohl in
definierter Reihenfolgen auflaufen. CLK lieferst du mit, also hopp in
die Register.

- Instanziiere vier IBUFDS und ab dafür. Musst nur aufpassen das du die
Eingänge des Buffers an passende Pins hängst. (Constraints)

--
 Sven Johannes

von F01Qx (Gast)


Angehängte Dateien:

Lesenswert?

@FPGA-User:
Du willst wahrscheinlich ein digitales Videosignal (DVI oder
LVDS-Schnittstelle zum Notebook-TFT) einlesen.
Vielleicht helfen dir die Datei im Anhang und
www.mikrocontroller.net/attachment.php/215456/tft_xga_lvds.pdf

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.